Web search and content fetching MCP server for AI agents. Provides tools to search the web via DuckDuckGo or Tavily, and fetch/extract page content via direct HTTP or Chrome DevTools Protocol.
Two tools with complete input schemas and descriptions, but significant gaps in output documentation and parameter guidance. Both tools have clear verb-noun naming (search, fetch_content) and non-empty descriptions (194 and 238 chars respectively, within baseline 34-392 range). However, neither tool documents its output schema, which violates pattern:tool and forces LLMs to guess at response structure. Parameter descriptions are present but lack constraints (enums, ranges, format specs). The 'engine' and 'method' parameters accept free-form strings with implicit defaults, inviting hallucinated values. Error handling returns plain text without recovery guidance. No tool annotations (readOnlyHint, idempotentHint) despite both being read-only operations.
Fetch a URL, convert HTML to readable text, and return content based on the prompt intent. Use 'method' parameter to select direct or cdp.
Search the web and return a list of results with URL, title, and snippet. Use the 'engine' parameter to select duckduckgo or tavily.
Output schemas not documented. LLMs cannot infer response structure (fields, types, pagination). Both tools return text blobs via FormatResult/FormatResults without specifying what fields are included.
Parameters accept free-form strings without enums or validation. 'engine' (duckduckgo|tavily), 'method' (direct|cdp), 'mode' (full|summary|title), and 'cdp_mode' (connect|system|bundled) should be declared as enums to prevent hallucinated values.
Error messages lack recovery guidance. Errors return plain text ('search failed: <error>', 'fetch failed: <error>') without suggesting next steps or categorizing as retryable/user-fixable/fatal.
No tool annotations despite both tools being read-only. Missing readOnlyHint and idempotentHint annotations prevent clients from optimizing caching and retry logic.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | <=2025-11-25 | v2 |
Parameter descriptions lack format/constraint details. 'url' has no format spec (must be valid HTTP/HTTPS). 'query' has no length limits. 'mode' description lists examples ('full', 'summary', 'title') instead of declaring them as enum values.