arXiv MCP Server
The arXiv MCP Server enables natural language interaction with the arXiv API for comprehensive scholarly article management. It allows users to:
• Search and retrieve: Perform flexible searches using keywords, authors, titles, or abstracts with pagination support, and retrieve detailed metadata including arXiv ID, title, authors, links, PDF URLs, timestamps, and summaries • Download articles: Save arXiv papers as PDF files to local storage • LLM integration: Load article content directly into Large Language Model context for analysis • Get URLs: Obtain direct links to articles hosted on arXiv.org based on title
Enables retrieving metadata about scholarly articles, searching the arXiv database, downloading articles as PDFs, and loading article content into LLM context for analysis.
Click on "Deploy 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 Server search for recent papers on large language models by Yann LeCun"
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
Related MCP server: Model Context Protocol Python Server
Tools
get_article_url
Retrieve the URL of an article hosted on arXiv.org based on its title
title(String): Article title
download_article
Download the article hosted on arXiv.org as a PDF file
title(String): Article title
load_article_to_context
Load the article hosted on arXiv.org into context of a LLM
title(String): Article title
get_details
Retrieve metadata of an article hosted on arXiv.org based on its title
title(String): Article title
search_arxiv
Performs a search query on the arXiv API based on specified parameters and returns 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 return
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.
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.
Available Tools
5 toolsdownload_articleB
Download the article hosted on arXiv.org as a PDF file. This tool searches for the article based on its title, retrieves the article's PDF, and saves it to a specified download location using the arXiv ID as the filename.
Args: title: Article title.
Returns: Success or error message.
Inputs: title (required).
get_article_urlA
Retrieve the URL of an article hosted on arXiv.org based on its title. Use this tool only for retrieving the URL. This tool searches for the article based on its title, and then fetches the corresponding URL from arXiv.org.
Args: title: Article title.
Returns: URL that can be used to retrieve the article.
Inputs: title (required).
get_detailsA
Retrieve information of an article hosted on arXiv.org based on its title. This tool searches for the article based on its title and retrieves arXiv ID, title, authors, link, direct PDF URL, published timestamp, last updated timestamp, and summary.
Args: title: Article title.
Returns: A JSON-formatted string containing article details if retrieval is successful; otherwise, a plain error message string.
Inputs: title (required).
load_article_to_contextB
Load the article hosted on arXiv.org into context. This tool searches for the article based on its title, retrieves the article content, and loads text content into LLM context.
Args: title: Article title.
Returns: Article as a text string or error message.
Inputs: title (required).
search_arxivB
Performs a search query on the arXiv API based on specified parameters and returns matching article metadata. This function allows for flexible querying of the arXiv database. Only parameters that are explicitly provided will be included in the final search query. Results are returned in a JSON-formatted string with article titles as keys and their corresponding arXiv IDs as values.
Args: all_fields: General keyword search across all metadata fields including title, abstract, authors, comments, and categories. title: Keyword(s) to search for within the titles of articles. author: Author name(s) to filter results by. abstract: Keyword(s) to search for within article abstracts. start: Index of the first result to return; used for paginating through search results. Defaults to 0.
Returns: A JSON-formatted string containing article titles and their associated arXiv IDs; otherwise, a plain error message string.
Inputs: all_fields, title, author, abstract, +1 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 5 tools
The tools have some functional overlap that could cause confusion, particularly between get_article_url, get_details, and load_article_to_context which all retrieve article information based on title. However, their specific purposes (URL retrieval, metadata details, and full text loading) are differentiated in their descriptions, which helps mitigate misselection risks.
Most tools follow a consistent verb_noun pattern (download_article, get_article_url, get_details, load_article_to_context) with clear action-oriented names. The only deviation is search_arxiv, which uses 'search' as a verb but follows the same general naming convention, maintaining good readability throughout the set.
With 5 tools, this server is well-scoped for arXiv article operations. Each tool serves a distinct purpose in the article retrieval and search workflow, from discovery (search_arxiv) to information retrieval (get_details, get_article_url) to content access (download_article, load_article_to_context), making the count appropriate for the domain.
The tool set covers core arXiv operations effectively: searching, retrieving metadata, accessing URLs, downloading PDFs, and loading text content. A minor gap exists in update/management operations (e.g., saving articles to collections or tracking reading history), but these are not essential for the basic arXiv interaction workflow that this server targets.
Maintenance
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
arXiv and OpenAlex/Crossref paper search (an open Google Scholar alternative) as agent tools.
Search arXiv/Semantic Scholar/OpenAlex + medical evidence (PubMed/Europe PMC) + LaTeX/PDF tools.
A Model Context Protocol server for Wix AI tools
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables AI agents to search, retrieve, and analyze academic papers from arXiv, supporting features like keyword search, paper details retrieval, content extraction, and paper analysis.6MIT
- FlicenseNot gradedqualityDmaintenanceA Python implementation of the Model Context Protocol (MCP) server that enables searching and extracting information from arXiv papers, designed to be extensible with additional MCP tools.-
- FlicenseAqualityDmaintenanceA Model Context Protocol server that provides tools for searching arXiv papers and managing research paper information with local storage capabilities.21-
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to search, retrieve, analyze, and export academic papers from arXiv.org using the Model Context Protocol.19MIT