An MCP server for searching arXiv papers and extracting paper information with resource and prompt support
This server has 2 tools with partial schema definitions and moderate description quality. Both tools have input schemas with basic type information, but parameter descriptions are sparse and lack actionability. The schema for search_papers includes a 'default' field in the JSON schema, which is good; extract_info has a minimal schema. Tool descriptions exist but are verbose (containing the Args/Returns breakdown inline rather than as separate response schema documentation). Neither tool description explicitly states whether it modifies state. Missing: output schemas, parameter constraints (e.g., max_results bounds), error handling guidance, and field-level descriptions. The server uses fastmcp (Python), and tool definitions are visible in research_server.py, but without seeing the actual implementation details (error handling, return structures), scores are conservative.
Search for information about a specific paper across all topic directories. Args: paper_id: The ID of the paper to look for Returns: JSON string with paper information if found, error message if not found
Search for papers on arXiv based on a topic and store their information. Args: topic: The topic to search for max_results: Maximum number of results to retrieve (default: 5) Returns: List of paper IDs found in the search
Output schemas not documented. Tool descriptions include Args/Returns inline but do not specify structured response fields, types, or pagination. LLMs cannot plan downstream calls without knowing return structure.
Parameter descriptions lack specificity and constraints. 'max_results' has no stated bounds; 'topic' has minimal guidance on format. LLMs may pass invalid values.
No error handling guidance. extract_info states it returns 'error message if not found', but no guidance on what to do next or what other tools to call. Per pattern:recovery-guide, error responses must tell LLM the next action.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 48 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 32 | - | v1 |
State modification not documented. search_papers description says 'store their information' but does not explicitly declare this is a WRITE operation or explain side effects. Per pattern:command-tool, tools that modify state must be clearly marked so agents know they have irreversible consequences.
No response field chaining. If search_papers returns paper_id + metadata, extract_info needs those same field names to chain calls. Currently unclear whether extract_info accepts the exact paper_id format returned by search_papers, risking mismatch.