Academic paper search and retrieval MCP server integrating major scholarly sources through a unified interface.
Server has 8 tools with basic schemas and descriptions, but significant gaps prevent higher scoring. Tool names follow verb_noun convention (search_papers, fetch_paper, etc.), which is good. However, descriptions are generic (avg ~50 chars, well below the 194-char baseline for A+ tools). Input schemas are present but minimal, most parameters lack detailed constraints, enums, or format specifications. Output schemas are referenced in config files but not visible in provided source, so cannot be verified. No evidence of error handling guidance, recovery paths, or actionable error messages. Parameter descriptions are sparse (e.g., 'Search query string' for query param lacks format/length guidance). No tool annotations (readOnlyHint/destructiveHint) despite clear read/write distinction. The manage_cache tool is marked WRITE but has no confirmation or dry-run pattern.
Perform advanced search with complex query syntax
Fetch the latest papers from a specific category
Fetch detailed information about a specific paper
List available categories for a paper source
Manage the paper search cache
Search academic papers across multiple sources
Search papers using intelligent caching strategy
Descriptions are generic and under 50 characters. Baseline for A+ tools is 194 chars. Examples: 'Search academic papers across multiple sources' (50 chars) lacks WHEN to use, prerequisites, or distinction from advanced_search. LLMs cannot reliably select between search_papers and advanced_search.
Parameter descriptions lack actionable constraints. 'Search query string' does not specify length limits, format, or examples. 'Array of paper sources to search' does not enumerate valid sources (arxiv, openalex, scholar?). LLMs will hallucinate invalid values.
Output schemas not visible in provided source code. Config files reference outputSchema but definitions are not shown. Cannot verify if responses include chaining IDs (e.g., paper_id for fetch_paper), pagination fields, or structured error guidance.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 44 | 2025-06-18+ | v2 |
Analyze research trends for a given topic
No tool annotations (readOnlyHint/destructiveHint/idempotentHint) despite clear semantic differences. manage_cache is marked WRITE but no confirmation pattern or dry-run option. Agents cannot distinguish safe-to-retry tools from destructive ones.
No error handling guidance visible. If a paper source is unavailable or a search returns zero results, what does the tool return? How should the LLM recover? No recovery guides or actionable error messages documented.