Async web search, fetch, crawl, and screenshot tooling with SDK, CLI, and MCP interfaces.
crawl-mcp provides 5 well-named, action-verb tools with complete input schemas and descriptions. Tool names (search_web, inspect_url, discover_site, extract_structured, capture_screenshot) follow verb_noun convention and are unambiguous. All tools have descriptions (50 - 150 chars, within baseline 34 - 392 range). Input schemas are present with typed parameters and enums where appropriate. However, output schemas are not documented in the provided source, LLMs cannot predict return structure. Parameter descriptions are present but terse (e.g., 'Page URL to inspect' lacks guidance on format, protocol, or error cases). No error handling guidance visible. Missing pagination/limit documentation for discovery tools that may return large result sets. Tool composition is sound (each does one thing), but chaining metadata (IDs needed for downstream calls) is not evident.
Capture a screenshot of one page for visual verification. Use this sparingly when layout, consent handling, or rendered state needs a visual check.
Map a site, run a bounded crawl, discover feeds, or aggregate technologies.
Run schema-driven extraction when you know the fields you want.
Inspect one page and return only the requested sections.
Search the web for URLs or run a deeper research pass over top results.
Output schemas not documented. LLMs cannot predict return structure, field names, or types. Breaks downstream tool chaining and forces agents to guess at response format.
Parameter descriptions lack actionable constraints. 'Page URL to inspect' does not specify format (http/https required?), max length, or error cases. 'Comma-separated list of views' lacks enum of valid view names.
No pagination or result-limit guidance for discover_site (strategy=crawl, strategy=map). If crawl returns 1000+ pages, context window exhaustion is likely. Missing max_results default and cap documentation.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | 2026-07-28+ | v2 |
No error handling guidance. Tools lack recovery hints (e.g., 'If URL is unreachable, try search_web first' or 'Invalid schema format, see docs for CSS selector syntax'). Agents cannot self-correct on failure.
extract_structured schema parameter lacks documentation of expected structure. 'CSS-based extraction schema with baseSelector, multiple, and fields' is too terse. LLMs need examples or formal schema definition.