Drive the Screaming Frog SEO Spider from any MCP client: headless crawls, a ranked issue register, derived analysis and a shareable report.
Strong tool naming (verb-first, clear intent) and comprehensive parameter descriptions. All 11 tools have explicit schemas with types and descriptions. Output structures are well-documented with caps and truncation rules. However, descriptions vary in depth, some are excellent (start_crawl, read_export), others are terse (check_install, list_crawls). No tool annotations (readOnlyHint/destructiveHint) despite clear risk levels. Error handling guidance is minimal; tools lack recovery hints for common failures (e.g., 'crawl not found' should suggest list_crawls). Parameter constraints are mostly implicit (e.g., 'export file name' lacks enum of valid exports). Composition is sound, tools chain well (start_crawl → crawl_status → get_issues/read_export).
Aggregate rows from a CSV export: count, sum, average, min, max, or list unique values.
List the export names the INSTALLED Screaming Frog build accepts. Filter names change between Screaming Frog versions and a single unknown name aborts an entire crawl, so never guess them.
Build a shareable HTML and Excel report from a finished crawl.
Report whether Screaming Frog is installed, whether it is licensed, and what the current limits are. Call this first if anything else fails.
Fold a crawl's CSV exports into the master workbook, then remove them. This is opt-in and irreversible.
Poll a running crawl. Returns immediately with the current state.
Missing tool annotations (readOnlyHint, destructiveHint, idempotentHint). Tools declare risk levels in comments but not in schema. LLMs cannot infer safety properties without explicit annotations.
Parameter constraints are implicit, not enumerated. 'kind' in available_filters accepts 'export-tabs' or 'save-report' but lacks enum constraint. 'aggregate' in aggregate_export accepts 'count|sum|average|min|max|list' but is free-form string. LLMs will hallucinate invalid values.
Error handling lacks recovery guidance. Tools reference internal state (e.g., 'crawl not found', 'no exports') but do not suggest next steps. Should return 'Crawl not found. Call list_crawls() to see available crawls.' instead of bare error.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 69 | 2026-07-28+ | v2 |
Run the full derived analysis suite on a finished crawl: depth, link equity, sitemap reconciliation, content, and performance.
Read the ranked issue register from a finished crawl. Issues are sorted by priority and type, then by count.
List all crawls in the audit root, with their status and summary.
Read a CSV export from a finished crawl, with optional filtering and column selection. Rows are capped and cells are truncated.
Start a headless Screaming Frog crawl in the background. Returns a job_id immediately. Poll it with crawl_status.
Descriptions vary in depth. check_install (65 chars), list_crawls (50 chars), full_analysis (70 chars) are terse and lack context for LLM selection. Baseline is 194 chars; these fall below p10. Should explain WHEN to call each tool and what it reveals.
consolidate_crawl is destructive (irreversible deletion) but lacks confirmation/dry-run pattern. Should support a 'confirm' parameter or require explicit acknowledgment before folding exports into workbook.