ArXiv MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ARXIV_STORAGE_PATH | No | Paper storage location | ~/.arxiv-mcp-server/papers |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_papers | Search for papers on arXiv with advanced filtering and query optimization. QUERY CONSTRUCTION GUIDELINES:
ADVANCED SEARCH PATTERNS:
CATEGORY FILTERING (highly recommended for relevance): Computer Science:
EXAMPLES OF EFFECTIVE QUERIES:
DATE FILTERING: Use YYYY-MM-DD format for historical research:
RESULT QUALITY: Default sort is RELEVANCE (most pertinent results first). Use sort_by: "date" to get newest papers first. Choose relevance for focused topic searches; choose date for monitoring recent developments. RATE LIMITING: arXiv enforces a 3-second minimum between requests. This server handles that automatically. If you see a rate limit error, wait 60 seconds before retrying — do not call the tool repeatedly in a loop. TIPS FOR FOUNDATIONAL RESEARCH:
|
| download_paperA | Download a paper from arXiv and return its text content. Tries the HTML version first for clean extraction; falls back to PDF conversion if HTML is unavailable. Stores the paper locally and supports start/max_chars pagination for very large papers. |
| list_papers | List all papers that have been downloaded and stored locally via download_paper. Returns arXiv IDs only — use read_paper to access content. Returns an empty list if no papers have been downloaded yet. Workflow: search_papers -> download_paper -> list_papers -> read_paper. |
| read_paperA | Read the text content of a paper that was previously downloaded via download_paper. Returns the paper in markdown format and supports start/max_chars pagination for large papers. Will fail with a clear error if the paper has not been downloaded yet — call download_paper first. Workflow: search_papers -> download_paper -> read_paper. |
| get_abstractA | Fetch the abstract and metadata of an arXiv paper by ID, WITHOUT downloading the full paper. Use this before download_paper to assess relevance and save tokens. Returns: title, authors, abstract, categories, published date, and PDF URL. Workflow tip: search_papers -> get_abstract (check relevance) -> download_paper (if needed) -> read_paper. |
| semantic_searchA | Semantic similarity search over papers you have already downloaded locally via download_paper. Supports free-text queries (e.g. 'attention mechanisms for long sequences') or finding papers similar to a given paper_id. IMPORTANT: only searches your local downloaded collection — will return empty results if no papers have been downloaded yet. Use search_papers to find papers on arXiv, then download_paper to add them to the local index before using this tool. Requires pro dependencies: uv pip install -e ".[pro]" |
| reindexB | Rebuild the local semantic index for downloaded papers. |
| citation_graph | Return papers citing an arXiv paper and papers that it references using Semantic Scholar's citation graph. |
| export_citationsA | Export BibTeX citations for one or more arXiv papers using authoritative arXiv metadata (title, authors, year, primary category), never model-generated fields. Version suffixes (e.g. '2401.12345v2') are preserved and citation keys are deterministic. Returns the rendered BibTeX plus per-paper status/error. BibTeX only; RIS/CSL-JSON are not yet supported. |
| watch_topicA | Save or update a persistent research topic watch. When checked via check_alerts, returns only papers published since the last check — acting as a standing alert for new work on a topic. The topic string uses the same query syntax as search_papers (quoted phrases, field specifiers, boolean operators). Examples: '"diffusion models" AND ti:"video generation"', 'au:"LeCun" AND cs.LG'. Calling watch_topic with the same topic string updates the existing watch rather than creating a duplicate. Pair with check_alerts to poll for new papers. |
| check_alerts | Check all saved topic watches for newly published papers since the last check. Omitting the topic parameter runs ALL saved watches and returns new papers for each. Passing a topic string checks only that specific watch. Updates each watch's last_checked timestamp after running, so subsequent calls only return newer papers. Use watch_topic to register topics before calling this. Returns a summary with new paper counts and full paper metadata per topic. |
| get_paper_latex | Download, safely process, cache, and return bounded original LaTeX source. Use section tools for targeted reading. |
| list_paper_latex_sections | Return a compact outline of headings from original LaTeX source. |
| get_paper_latex_sectionA | Return one bounded LaTeX section by outline ID or exact title. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| research-discovery | Begin research exploration on a specific topic |
| deep-paper-analysis | Analyze a specific paper in detail |
| summarize_paper | Summarize a paper with key methods, results, and limits |
| compare_papers | Compare two or more papers on methods and results |
| literature_review | Synthesize a literature review for a topic and paper set |
| literature-synthesis | Synthesize findings across multiple papers |
| research-question | Formulate research questions based on literature |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/blazickjp/arxiv-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server