MCP server for searching and managing academic papers from arXiv with paper information storage and retrieval capabilities
This server has fundamental definition quality issues. While tool names follow verb conventions and the codebase is well-structured, parameter descriptions are nearly absent, input schemas lack proper constraints, and output documentation is missing. The server exposes file system operations with minimal safety guardrails and no error recovery guidance. Most tools fail basic documentation standards for production use.
Search for information about a specific paper across all topic directories.
Generate a prompt for Claude to find and discuss academic papers on a specific topic.
List all available topic folders in the papers directory. This resource provides a simple list of all available topic folders.
Get detailed information about papers on a specific topic.
Search for papers on arXiv based on a topic and store their information.
Output schemas not documented. All tools return strings or lists of strings with no JSON schema. LLMs cannot plan downstream tool calls or extract structured data.
Parameter descriptions are missing or insufficient. 'topic' appears in multiple tools but is never validated (case-sensitive? underscores? max length?). 'paper_id' format is undocumented (accepted format unknown).
No numeric constraints. 'max_results' and 'num_papers' default to 5 but lack min/max bounds in schema. LLMs could pass 0, -1, or 1000 without guidance.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 46 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 54 | - | v1 |
No error handling guidance. Tools fail silently or return plaintext errors ('There's no saved information related to paper {paper_id}.'). No actionable recovery steps documented.
File system exposure without validation. 'search_papers' creates arbitrary directories based on user input (topic.lower().replace(' ', '_')). No path traversal checks, symlink guards, or disk space limits.
Inconsistent resource/tool semantics. 'get_available_folders' and 'get_topic_papers' are decorated as @mcp.resource() but also appear to be tools. This confusion about interface type makes it unclear how clients should call them.
No tool-chaining support. 'search_papers' returns paper IDs but 'extract_info' requires exact paper_id format (unknown). 'get_topic_papers' requires 'topic' in a specific format (underscore-delimited) but 'search_papers' accepts free-form 'topic' string. Broken reference chains.