Web search and fetch MCP server with support for HTML, PDF, Office documents, YouTube transcripts, and Twitter/X content
The server provides 2 well-named tools with clear, concise descriptions and proper input schemas. Tool naming (web_search, web_fetch) follows verb_noun convention and is unambiguous. Descriptions are LLM-optimized (50-150 chars) and explain WHAT each tool does and WHEN to use it. Input schemas include proper type definitions and field descriptions. However, output schemas are not documented, LLMs cannot infer what fields to expect from results. Error handling is present but minimal (no recovery guidance). Parameter ranges are specified in descriptions but not formally constrained in the schema (e.g., max_results lacks enum or minimum/maximum). The 'char' parameter uses a custom UnmarshalJSON type to accept both string and number, which is clever but not self-documenting for LLMs. Overall: solid definitions with room for output schema documentation and error guidance.
Fetch a URL as Markdown, with optional semantic re-ranking against a query. Supports Office documents and YouTube transcripts. Call this tool multiple times in parallel to fetch several URLs at once.
Search the web and return relevant results with embedded page highlights, not just snippets.
Output schemas not documented. LLMs cannot infer what fields searchResult or fetch response contain, forcing them to guess whether results include highlights, scores, or URLs.
Parameter constraints (max_results [5,50], char [2000,64000]) are documented in descriptions but not expressed formally in schema as minValue/maxValue or enum. LLMs cannot parse these from text and may pass invalid values.
Error handling is present (via error reporting feature flag) but no recovery guidance in tool descriptions. If a search times out or fetch fails, LLMs have no actionable next step.
The 'char' parameter accepts both string and number via custom UnmarshalJSON, but this polymorphic behavior is not documented in the parameter description. LLMs may not understand that '2000' and 2000 are both valid.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 60 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 36 | - | v1 |
No pagination support documented for web_search results. If the result set is large, LLMs have no way to fetch additional pages or limit memory consumption.