mcp-arxiv-research-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| S2_API_KEY | No | Semantic Scholar API key; without it the gap is 3 s, with it 1 s. Optional, raises the Semantic Scholar rate limit. | |
| ARXIV_LIBRARY | No | Path to the reading list JSON file. | ~/.arxiv-research/library.json |
| ARXIV_CACHE_DIR | No | On-disk cache directory; `off` keeps the cache in memory only. | ~/.arxiv-research/cache |
| ARXIV_INTERVAL_MS | No | Gap between arXiv requests in milliseconds (arXiv's terms ask for one every 3 s). | 3000 |
| ARXIV_CACHE_TTL_HOURS | No | How long a cached answer is reused, in hours; `0` turns caching off. | 24 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
Research tools backed by arXiv and Semantic Scholar. Cite papers by their arXiv id. Prefer search_arxiv with a few specific words; use get_paper for the full abstract before summarizing a paper; never invent a citation that a tool did not return.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_arxivA | Search arXiv. Plain words are ANDed across all fields; arXiv field prefixes also work (ti:transformer AND au:vaswani, cat:eess.SP). Returns id, title, year, authors, category and the start of each abstract. |
| get_paperA | Full metadata and abstract for up to 20 arXiv papers. Accepts ids (1706.03762, 1706.03762v5, hep-th/9901001), arXiv: prefixes and abs/pdf URLs. |
| find_citationsB | Citation count, influential citations, citing papers per year and the top citing papers, from Semantic Scholar. Accepts an arXiv id, a DOI, or a Semantic Scholar id (CorpusId:123 also works). |
| export_bibtexA | BibTeX for up to 200 arXiv papers, ready for a .bib file: stable keys like vaswani2017attention, LaTeX special characters escaped, math in titles kept, acronyms protected. |
| library_addA | Save an arXiv paper to the local reading list with optional tags and a note. Adding it again merges the tags and replaces the note. |
| library_removeB | Remove a paper from the local reading list. |
| library_listB | The saved reading list, optionally filtered by tag, as text or as BibTeX. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 7 tools
Most tools target distinct actions: search discovery, metadata retrieval by id, citation lookup, BibTeX export, and library CRUD. The only real overlap is BibTeX output, which both library_list and export_bibtex can produce, though the descriptions frame them differently (reading-list dump vs. .bib export for arbitrary paper sets).
Two conventions coexist: verb_noun for arXiv operations (search_arxiv, get_paper, find_citations, export_bibtex) and noun_verb for the local library (library_list, library_add, library_remove). Readable and arguably intentional grouping, but not a single predictable pattern.
Seven tools is well-scoped for an arXiv research workflow: discovery, retrieval, citation analysis, export, and a three-operation local reading list. No tool feels redundant or tacked on.
Core research lifecycle is covered end-to-end: search, fetch metadata, check citations, export BibTeX, and save/remove from a reading list, with library_add acting as an upsert for tags/notes. Minor gaps: no way to update or inspect a single saved entry without listing, and find_citations only covers citing papers, not the paper's own references.