Minimal web search MCP server using DDGS (DuckDuckGo)
Single tool with clear naming (web_search) and basic schema. Description is adequate (71 chars) but lacks context on when to use vs alternatives. Input schema is complete with proper types and defaults. However, output schema is undocumented, LLMs cannot predict the structure of returned results. No error handling guidance, no parameter constraints beyond defaults, and no mention of rate limits or timeout behavior. Follows basic tool patterns but misses several production-grade details.
Search the web using DuckDuckGo. No API key required.
Output schema not documented. LLMs cannot predict result structure (title, href, body fields, formatting). Agents must infer from trial calls.
No error handling guidance. TimeoutError and generic Exception are caught but returned as plain text. LLMs receive no recovery hints (retry? check internet? try different query?).
Description lacks context on when to use this tool. No mention of DuckDuckGo limitations, no API key requirement stated as a feature, no guidance on query format or result quality.
max_results parameter lacks constraints. No minimum/maximum bounds documented. LLMs could pass 0, negative, or extremely large values causing unexpected behavior.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | <=2025-11-25 | v2 |
No pagination support. If results exceed max_results, no cursor or offset mechanism to fetch additional pages. Large result sets could exhaust context.