Enables searching the arXiv database, retrieving article metadata and details, downloading papers as PDFs, and loading article text into context for analysis by LLMs.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@arXiv MCP Serversearch for recent papers about large language models"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
arXiv MCP Server
A Model Context Protocol (MCP) server that enables interacting with the arXiv API using natural language.
Features
Retrieve metadata about scholarly articles hosted on arXiv.org
Download articles in PDF format to the local machine
Search arXiv database for a particular query
Retrieve articles and load them into a large language model (LLM) context
Tools
get_article_url
Retrieve the direct PDF URL by title or arXiv ID
title(String, optional)arxiv_id(String, optional)
download_article
Download the article as a PDF
title(String, optional)arxiv_id(String, optional)
load_article_to_context
Load article text into context (partial extraction supported)
title(String, optional)arxiv_id(String, optional)start_page(Int, optional, 1-based)end_page(Int, optional, 1-based)max_pages(Int, optional)max_chars(Int, optional)preview(Bool, optional; HEAD check only)
get_details
Retrieve metadata by title or arXiv ID
title(String, optional)arxiv_id(String, optional)
search_arxiv
Search arXiv and return matching article metadata
all_fields(String): General keyword search across all metadata fieldstitle(String): Keyword(s) to search for within the titles of articlesauthor(String): Author name(s) to filter results byabstract(String): Keyword(s) to search for within article abstractsstart(Int): Index of the first result to returnmax_results(Int, default 10, up to 50)
Setup
MacOS
Clone the repository
git clone https://github.com/prashalruchiranga/arxiv-mcp-server.git
cd arxiv-mcp-serverInstall uv package manager. For more details on installing, visit the official uv documentation.
# Using Homebrew
brew install uv
# or
curl -LsSf https://astral.sh/uv/install.sh | shCreate and activate virtual environment.
uv venv --python=python3.13
source .venv/bin/activateInstall development dependencies.
uv syncWindows
Install uv package manager. For more details on installing, visit the official uv documentation.
# Use irm to download the script and execute it with iex
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"Close and reopen the shell, then clone the repository.
git clone https://github.com/prashalruchiranga/arxiv-mcp-server.git
cd arxiv-mcp-serverCreate and activate virtual environment.
uv venv --python=python3.13
source .venv\Scripts\activateInstall development dependencies.
uv syncUsage with Claude Desktop
To enable this integration, add the server configuration to your claude_desktop_config.json file. Make sure to create the file if it doesn’t exist.
On MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json On Windows: %APPDATA%/Roaming/Claude/claude_desktop_config.json
{
"mcpServers": {
"arxiv-server": {
"command": "uv",
"args": [
"--directory",
"/ABSOLUTE/PATH/TO/PARENT/FOLDER/arxiv-mcp-server/src/arxiv_server",
"run",
"server.py"
],
"env": {
"DOWNLOAD_PATH": "/ABSOLUTE/PATH/TO/DOWNLOADS/FOLDER"
}
}
}
}You may need to put the full path to the uv executable in the command field. You can get this by running which uv on MacOS or where uv on Windows.
Deployment
Hosted platforms such as Smithery require HTTP transport. Set
MCP_TRANSPORT=http; the server will bind to thePORTenvironment variable provided by the platform. The provided Docker/Smithery config also pins the SSE endpoints to/.well-known/mcp/sseand/.well-known/mcp/messages/for spec compliance.Hosted deployments expose Streamable HTTP at
/mcpand serve a JSON schema at/.well-known/mcp-configso Smithery can provision per-session settings (currently just an optionaldownloadPath).For local stdio integrations, no additional configuration is required—the server defaults to STDIO when
PORTis not set.
Example Prompts
Can you get the details of 'Reasoning to Learn from Latent Thoughts' paper?Get the papers authored or co-authored by Yann Lecun on convolutional neural networksDownload the attention is all you need paperCan you get the papers by Andrew NG which have 'convolutional neural networks' in title?Can you display the paper?List the titles of papers by Yann LeCun. Paginate through the API until there are 30 titlesLicense
Licensed under MIT. See the LICENSE.
Resources
Looking for Admin?
Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to access the admin panel.