A Model Context Protocol (MCP) server that provides AI assistants with a seamless, programmatic interface to search and read academic papers from the open-access arXiv repository.
This project is AI-Optimized, meaning the returned data is carefully formatted to remain within context windows and provide exactly what large language models need for efficient, hallucination-free research.
- API Documentation Focus: Detailed breakdown of the arXiv API tools, parameters, and rate limit protections.
- Client Configurations: Additional examples for running this server on different AI Clients.
- Agent Skill Pack: An official
agentskills.iocompliant instruction profile to teach AI assistants the most efficient way to chain thesearxiv_*MCP tools.
arxiv_search: Fast discovery tool. Pass a search string (like"quantum gravity") and get a lightweight list of IDs, Titles, and Authors.arxiv_search_trending_papers: Retrieves the newest papers for a specific category without keywords.arxiv_search_related_papers: Semantic discovery tool to find papers related to a specificpaper_id.arxiv_get_paper_details: In-depth reading tool. Pass a paper ID to retrieve the full abstract, categories, and author metadata neatly formatted in Markdown.arxiv_get_paper_summary: Provides an AI-ready prompt wrapper to generate a rapid summary of the thesis, methodology, and limitations of a paper.arxiv_get_paper_citations: Generates a perfectly formatted citation in BibTeX, APA, or MLA format for any paper.arxiv_download_paper: Direct integration tool. Pass a paper ID and a local system path to have the MCP server automatically download the full PDF to your machine.
This server is written in TypeScript and runs via node.
- Clone this repository (or install via your preferred package manager).
- Install dependencies:
npm install
- Build the TypeScript project:
npm run build
This server communicates over standard input/output (stdio). You can integrate it natively via Node or run it completely isolated using Docker.
Use the following command configuration in your MCP client:
node /path/to/arxic-mcp/build/index.jsWe provide a lightweight Alpine-based container. First, build the image:
docker build -t arxic-mcp .Then, run your MCP client using this command configuration:
docker run -i --rm -v /home/user/Downloads:/home/user/Downloads arxic-mcp(Note: Passing -v ensures the download_pdf tool has permission to save files to your local host machine!)
You can add this server to any MCP-compatible client.
Important: Replace
/absolute/path/to/with the actual path on your system.
This method ensures the arxiv_download_paper tool has permission to save PDFs to your machine via the -v volume mount. Because Docker handles permissions differently across operating systems, please use the correct configuration for your machine:
If you use Mac or Linux, you must pass your User ID -u 1000:1000 (or 501:20 for some Macs) so the downloaded PDF isn't locked as a root file.
{
"mcpServers": {
"arxic-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-u",
"1000:1000",
"-v",
"/Users/yourname/Downloads:/Users/yourname/Downloads",
"arxic-mcp"
]
}
}
}Windows Docker Desktop generally handles file mount translations automatically. You can safely omit the User ID flag, but be sure to use the proper /c/Users/... or WSL absolute path format.
{
"mcpServers": {
"arxic-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-v",
"/c/Users/yourname/Downloads:/c/Users/yourname/Downloads",
"arxic-mcp"
]
}
}
}If you prefer running natively without Docker:
{
"mcpServers": {
"arxic-mcp": {
"command": "node",
"args": [
"/absolute/path/to/arxic-mcp/build/index.js"
]
}
}
}Pro-Tip: Running natively enables the
arxiv_download_papertool to save PDFs to any folder on your actual system (like~/Downloads), removing the need to configure complex volume mounts!
- Antigravity: Add the JSON block above to your local
.gemini/configuration file. - Claude Desktop: Add to
~/Library/Application Support/Claude/claude_desktop_config.json(Mac) or%APPDATA%\Claude\claude_desktop_config.json(Windows). - Cursor: Navigate to Settings > Features > MCP Servers. Add a new command server using the raw commands above (e.g.,
node /path/to/index.js). - Claude Code (CLI): Run
claude mcp add arxic-mcp -- node /absolute/path/to/arxic-mcp/build/index.js - Windsurf: Add to
~/.codeium/windsurf/mcp_config.json - Zed: Add to
settings.jsonunder"experimental.mcp"
Thank you to arXiv for use of its open access interoperability. This project acknowledges and respects the hard work of the arXiv team and the scientific community they support.
Made with ❤️ by Traves Theberge