MCP server that provides a unified research tool for web and academic searches, follows relevant links, and returns comprehensive information to Claude. This server integrates DuckDuckGo for web search and Semantic Scholar for academic content.
Single tool 'deep_research' has moderate definition quality but significant gaps. Tool name starts with verb (positive), description is present and substantive (~150 chars), but lacks critical structure. Input schema is visible with types and defaults, but lacks proper parameter descriptions and validation guidance. Output is unstructured free-text string rather than documented schema. No error handling guidance. No tool annotations. Overall, this is a fair but unpolished implementation typical of community servers.
Perform comprehensive research on a topic and return detailed information.
Output is unstructured plain-text string with no documented schema. LLM must parse free-form text to extract research results, sources, URLs, and summaries. This violates the response-shaper pattern and wastes tokens on parsing.
Parameter descriptions lack critical details. 'sources' param description does not explain when to use 'web' vs 'academic' vs 'both'. 'num_results' description is vague about what 'sources to examine' means in context of web vs academic APIs. LLM cannot reason about parameter selection.
No error handling guidance in tool description or code. Tool can fail on network errors, invalid queries, missing sources, HTML parsing errors, but LLM receives only raw exception text (truncated to 100 chars). No recovery steps offered (e.g., 'Try a different query', 'Increase num_results').
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 47 | <=2025-11-25 | v2 |
No idempotency guarantee or retry semantics. Tool makes real HTTP requests to external services and modifies nothing, but no documentation states this is safe to retry. For edge cases (partial failures), unclear if retry is safe.
Parameter 'sources' accepts 'web', 'academic', 'both' but is documented as free-form string. Should be declared as an enum constraint in schema, not just in description. LLM may hallucinate invalid values like 'books', 'papers', 'news'.
No input validation or example in description. LLM has no guidance on query length, prohibited topics, or example queries that work well. 'Perform comprehensive research on a topic' is too generic.