Single tool 'search' has a clear verb-noun name and acceptable parameter schema with types and descriptions. However, the tool description is minimal (23 chars: 'Web search via DuckDuckGo'), falling below the 50-200 char LLM-optimized baseline. No output schema is documented, the code returns raw DDGS results but the MCP tool definition does not specify what fields the agent should expect. No error handling guidance (e.g., what happens on network failure, rate limiting, or empty results). The tool lacks context on when to use it vs alternatives, prerequisites, or what the response structure contains. Parameter descriptions are present but terse (e.g., 'Search query' for 'query', 'Max results (default: 10)' for 'max_results'). The 'period' enum is well-defined but the 'domain' parameter lacks format guidance (should it be 'github.com' or 'site:github.com'?). No tool annotations (readOnlyHint, idempotentHint) despite being a read-only, idempotent operation.
Web search via DuckDuckGo
Tool description is 23 characters ('Web search via DuckDuckGo'), below the 50-200 char LLM-optimized baseline. LLMs cannot determine when to select this tool vs alternatives or what it returns.
Output schema is not documented in the MCP tool definition. Code returns raw DDGS result objects, but the agent has no formal specification of response fields (title, href, body, etc.), forcing it to infer structure.
No error handling guidance. Tool does not document what happens on network failure, rate limiting, empty results, or invalid queries. Agent receives no recovery hints.
Parameter 'domain' lacks format guidance. Description says 'Filter by domain (e.g. github.com)' but does not clarify whether the agent should pass 'github.com' or 'site:github.com', the code appends 'site:' internally, but this is not documented.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | 2026-07-28+ | v2 |
Tool lacks annotations. Despite being read-only and idempotent, the tool definition does not include readOnlyHint or idempotentHint, missing an opportunity to guide agent planning.