MCP server for searching and analyzing academic papers on arXiv
The server defines 3 tools with clear, action-verb naming (search_papers, get_paper, search_by_category) and comprehensive descriptions (110-180 chars each, within the 10-1024 baseline). All tools have fully specified JSON Schema input parameters with type constraints, ranges, and enums. Descriptions include practical guidance ('When user wants to find papers', 'Useful for monitoring a research field') and examples. However, output schemas are not formally documented, only inferred from markdown formatting. Error handling returns contextual messages but lacks recovery guidance or error classification. Security is strong (read-only operations, no secrets exposed). Tool composition is clean (each does one thing), though pagination/limits are handled server-side without explicit documentation in response structure.
Get full details of a specific arXiv paper by its ID. Use this when the user wants to know more about a specific paper. The arXiv ID looks like: 2301.07041 or cs/0601099
Search papers in a specific arXiv category. Useful for monitoring a research field. Common categories: - cs.AI (Artificial Intelligence) - cs.LG (Machine Learning) - cs.CL (Computation and Language / NLP) - stat.ML (Statistics - Machine Learning) - eess.IV (Image and Video Processing) - physics.geo-ph (Geophysics)
Search for academic papers on arXiv. Use this tool when the user wants to find papers on a topic. Returns titles, authors, abstracts and links. Examples of good queries: - "AI policy governance regulation" - "geospatial deep learning remote sensing" - "large language models evaluation"
Output schemas not formally documented. Markdown formatting in responses is unstructured; downstream tools cannot programmatically parse results without pattern matching. LLMs must infer field names (title, authors, abstract, url, pdfUrl) from text.
No error classification or recovery guidance. Errors return a message string (e.g., 'Error searching arXiv: ...') but do not categorize as retryable, user-fixable, or fatal, nor suggest recovery actions.
Pagination not explicitly exposed to LLM. maxResults defaults to 10, max 50, but the tool does not document a next_cursor or pagination mechanism. If an LLM needs 100 results, it must call the tool multiple times without guidance on how.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 61 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 53 | - | v1 |
Parameter 'keywords' in search_by_category is optional but its role is underspecified. Description says 'Optional additional keywords to filter within the category', but does not explain filtering logic (AND vs OR with category, case sensitivity, supported operators).