5 tools with explicit schemas and descriptions visible in src/ddg_mcp/server.py. All tools have input schemas with required/optional fields properly specified. Descriptions present but generic and do not explain WHEN to use each tool vs alternatives or what state changes occur. Parameter descriptions are present but minimal (avg 30-50 chars). No output schemas documented. Tools follow verb_noun naming but descriptions lack depth. One prompt feature implemented but shallow. No error handling guidance visible in code. Overall in the C range, definitions are structurally present but lack LLM optimization and production-grade guidance.
Chat with DuckDuckGo AI
Search the web for images using DuckDuckGo
Search for news articles using DuckDuckGo
Search the web for text results using DuckDuckGo
Search for videos using DuckDuckGo
Minimal tool descriptions (35-55 chars) lack WHEN/WHY guidance. Descriptions state WHAT but not when to prefer this tool over alternatives (text vs image vs news vs video). LLMs cannot disambiguate without explicit guidance.
No output schemas documented anywhere. Code shows tools return results via duckduckgo_search library but LLMs don't know what fields to expect. Violates pattern:tool baseline requirement that 100% of A+ tools document return types.
No error handling visible. Code does not show try/catch blocks, validation, or error response guidance. Pattern:recovery-guide requires error responses tell LLM what to do next, stack traces or bare API errors seen here provide no guidance.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 59 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 19 | - | v1 |
Parameter 'keywords' is ambiguous. Named 'keywords' in all tools but semantically means query/search_term/prompt. 'ddg-ai-chat' passes 'keywords' as a 'Message or question', this overloads the semantics. Should be 'query' for search tools, 'message' or 'prompt' for chat.
No pagination visible for search tools. If DuckDuckGo returns 1000+ results and max_results=10, agents cannot retrieve beyond the first 10. Pattern:paginated-result requires offset/limit and total count or next_cursor for tools returning lists.
Tool 'ddg-ai-chat' uses confusing parameter naming: 'keywords' for a message/prompt is misleading. LLMs expect 'message', 'prompt', or 'query'. Also no description of which model to choose when, all 5 models listed in enum but no guidance on performance/cost/speed tradeoffs.
Prompt feature 'search-results-summary' performs a search inline and concatenates results as text. No mention of token limits, truncation, or what happens if results are very long. Risk of context explosion if results exceed LLM window.