Reliable MCP web search and web fetch for AI agents with Exa, Tavily, Camoufox, Firecrawl, provenance, caching, and SSRF guards
Server provides 6 tools with consistent naming (verb_noun pattern: web_search, web_fetch, research_*) and reasonable descriptions (80-150 chars). All tools are READ_ONLY, reducing security risk. However, input schemas are inferred from test files rather than directly visible in source code, and parameter descriptions lack detail on constraints, formats, and valid ranges. No output schemas documented. Error handling guidance absent.
Search Firecrawl's developer index for GitHub repositories and documentation
Fetch a specific research paper from Firecrawl's research index
Search Firecrawl's research-paper index
Find similar research papers using Firecrawl's research index
Full-page retrieval using Exa, optional local Camoufox renderer, optional Tavily Extract, and Firecrawl as the final backstop
General search using Exa by default or Tavily when selected, with Firecrawl as a search fallback
Tool definitions inferred from test files, not visible in main source. Cannot verify actual schema registration, parameter types, or descriptions in server code.
Parameter descriptions lack format constraints, valid ranges, and actionable guidance. E.g., 'mode' param lists options but no guidance on when to use each; 'max_chars' has no min/max bounds.
No documented output schemas. LLMs cannot predict response structure, field names, or types. Breaks downstream tool chaining and forces agents to guess field names.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2025-06-18+ | v2 |
No error handling guidance. Tools do not document what errors are retryable, what user-fixable errors look like, or how to recover from failures (e.g., API rate limits, network timeouts).
Parameter 'provider' in web_search accepts 'exa' or 'tavily' but no description explains when to choose each or what happens if neither is configured.