MCP server to search the web and fetch page contents
This server has clear naming (search_web, fetch_page) and decent descriptions, but lacks critical documentation of output schemas, error handling guidance, and parameter descriptions. Both tools have appropriate input schemas with types, but the output structure is not formally documented, LLMs must infer it from the response. Parameter descriptions are minimal (e.g., 'limit' lacks guidance on when to use lower vs. higher values). Error handling returns JSON errors but offers no guidance for recovery. The tool set is minimal (2 tools) and narrowly scoped to web search/fetch, which is appropriate for the domain but limits composition potential.
Fetch a page and extract its readable content and title using Readability.
Search the web and return a list of result URLs and titles. Uses DuckDuckGo HTML.
Output schema not documented for either tool. LLMs must reverse-engineer return structure from implementation. search_web returns {url, title?, snippet?} array; fetch_page returns {url, title?, content}. Neither is formally specified in docstrings or schema definitions.
Parameter descriptions are generic and incomplete. 'limit' (search_web) lacks guidance: does 1 mean 'minimal, fast' vs 10 means 'thorough but slower'? When should an agent choose which? 'url' (fetch_page) lacks format hints beyond .url() validation.
Error handling returns JSON with {error: message} but offers no recovery guidance. If searchWebDuckDuckGo times out or fetch fails, the LLM sees only the error message, not what to do next. No indication of retryability or whether to try alternative tools.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 66 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 44 | - | v1 |
Transport is STDIO only. Not remotely accessible; cannot be used by hosted MCP clients. Hard cap at 50 for protocol readiness applies.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite both tools being READ_ONLY according to the spec. Annotations would signal to clients that these are safe to call without confirmation.