MCP server that multiplexes web search, document fetching, and reasoning across multiple providers (Grok, Tavily, Exa, Firecrawl, TinyFish, Jina) with intelligent fallback routing
SourceMux exhibits significant definition quality gaps. While all 12 tools have names and descriptions, most descriptions are terse (10-50 chars, well below the 194-char baseline). Input schemas are minimal: most tools accept only 1-2 parameters with basic type info but lack detailed parameter descriptions, constraints, or output schema documentation. No tool declares enums, ranges, or validation rules. Error handling is absent from visible code. The server exposes multiple external API integrations (Exa, Tavily, Firecrawl, TinyFish, Jina) but provides no guidance on which tool to use when, no dependency hints, and no recovery paths. Tool composition is weak: search, exa_search_advanced, docs_search, and search_planning all perform search-like operations with no clear differentiation. No tool returns structured output schemas or pagination info. This is a typical community server in the 40-50 range.
Crawl a website using Tavily
Search documentation and source pages
Advanced Exa content retrieval with additional parameters
Advanced Exa search with additional parameters
Fetch and convert a URL to Markdown through configured fallback providers
Show current configuration and probe each configured Grok endpoint.
Retrieve cached source URLs for a session
Descriptions are too terse (10-50 chars vs 194-char baseline). Most lack WHEN to use, prerequisites, or differentiation from similar tools. E.g., 'Search documentation and source pages' does not explain when to call docs_search vs search vs exa_search_advanced.
Parameter descriptions are missing or minimal. 'query' appears in 6 tools with identical 1-line descriptions; no guidance on query format, length limits, or expected structure. 'url' and 'ids' parameters lack constraints or examples.
No output schemas documented. Tools return unstructured text or opaque results. LLMs cannot plan downstream calls or extract structured data. E.g., does search() return URLs, snippets, or full documents? Does get_sources() return an array or object?
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 40 | 2026-07-28+ | v2 |
Map a website structure using Tavily
Execute a bounded research workflow
Execute web search through configured Grok endpoints with fallback routing
Plan a search strategy
Generate a smart answer using research and reasoning
Tool composition is unclear. Six tools perform search-like operations (search, docs_search, exa_search_advanced, search_planning, research_run, smart_answer) with no documented differentiation. LLMs will struggle to choose the right one.
No error handling guidance. Code does not show error messages, recovery paths, or actionable feedback. If a search fails or a URL is unreachable, the LLM receives no guidance on what to try next.