arXiv MCP Server
A Model Context Protocol (MCP) server that enables LLMs to search, download, and read arXiv papers. Gives AI assistants direct access to scientific literature.
Features
- Search papers - Search by title, keywords, author, or arXiv ID
- Read full text - Download PDFs and extract text automatically
- Section extraction - Get specific sections (abstract, introduction, methods, conclusion)
- Local caching - Downloaded papers are cached locally for fast re-access
- Zero configuration - Works out of the box with sensible defaults
Getting Started
Prerequisites
This MCP server uses uvx to run. First, install uv:
# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Or using Homebrew
brew install uv
After installation, restart your terminal.
Installation
Install the arXiv MCP server with your client.
Standard config works in most tools:
{
"mcpServers": {
"arxiv": {
"command": "uvx",
"args": ["arxiv-paper-mcp-server"]
}
}
}
Amp
amp mcp add arxiv -- uvx arxiv-paper-mcp-server
Claude Code
claude mcp add arxiv-server -- uvx arxiv-paper-mcp-server
Claude Desktop
Add to your claude_desktop_config.json:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"arxiv": {
"command": "uvx",
"args": ["arxiv-paper-mcp-server"]
}
}
}
Codex
codex mcp add arxiv -- uvx arxiv-paper-mcp-server
Cursor
Add to ~/.cursor/mcp.json:
{
"mcpServers": {
"arxiv": {
"command": "uvx",
"args": ["arxiv-paper-mcp-server"]
}
}
}
Factory
Add to Factory MCP settings:
{
"mcpServers": {
"arxiv": {
"command": "uvx",
"args": ["arxiv-paper-mcp-server"]
}
}
}
Gemini CLI
gemini mcp add arxiv -- uvx arxiv-paper-mcp-server
Goose
Run goose configure, then add to ~/.config/goose/config.yaml:
extensions:
arxiv:
command: uvx
args:
- arxiv-paper-mcp-server
Kiro
Add to Kiro MCP settings:
{
"mcpServers": {
"arxiv": {
"command": "uvx",
"args": ["arxiv-paper-mcp-server"]
}
}
}
LM Studio
Add to LM Studio MCP settings:
{
"mcpServers": {
"arxiv": {
"command": "uvx",
"args": ["arxiv-paper-mcp-server"]
}
}
}
opencode
opencode mcp add arxiv -- uvx arxiv-paper-mcp-server
Qodo Gen
Add to Qodo Gen MCP configuration:
{
"mcpServers": {
"arxiv": {
"command": "uvx",
"args": ["arxiv-paper-mcp-server"]
}
}
}
VS Code
Add to .vscode/mcp.json in your workspace:
{
"mcpServers": {
"arxiv": {
"command": "uvx",
"args": ["arxiv-paper-mcp-server"]
}
}
}
Warp
Add to Warp MCP settings:
{
"mcpServers": {
"arxiv": {
"command": "uvx",
"args": ["arxiv-paper-mcp-server"]
}
}
}
Windsurf
Add to ~/.windsurf/mcp.json:
{
"mcpServers": {
"arxiv": {
"command": "uvx",
"args": ["arxiv-paper-mcp-server"]
}
}
}
Using pip
pip install arxiv-paper-mcp-server
arxiv-mcp-server
Tools
| Tool | Description |
|---|---|
search |
Search arXiv papers by title, keywords, or arXiv ID (e.g., 2401.12345) |
get_paper |
Download and read the full text of a paper, with optional section filtering |
list_downloaded_papers |
List all locally cached papers |
Tool Details
search(query, max_results=10)
Search for papers on arXiv. Supports:
- Keywords:
"transformer attention mechanism" - Paper ID:
"2401.12345"or"arXiv:2401.12345" - Author:
"Yann LeCun"
Returns paper ID, title, authors, publication date, and abstract preview.
get_paper(paper_id, section="all")
Download and extract text from a paper.
| Section | Description |
|---|---|
all |
Full paper text (default) |
abstract |
Abstract only |
introduction |
Introduction section |
method |
Methods/Approach section |
conclusion |
Conclusion/Discussion section |
list_downloaded_papers()
List all papers that have been downloaded and cached locally.
Configuration
| Environment Variable | Description | Default |
|---|---|---|
ARXIV_STORAGE_DIR |
Directory for downloaded papers | ~/.arxiv-mcp/papers |
Usage Examples
Search for papers:
User: Find recent papers about prompt compression
Claude: [Uses search("prompt compression", max_results=5)]
Found 5 papers:
- 2504.16574: PIS: Linking Importance Sampling...
- ...
Read a specific paper:
User: Read the introduction of paper 2401.12345
Claude: [Uses get_paper("2401.12345", section="introduction")]
[Returns the introduction section]
Review cached papers:
User: What papers have I downloaded?
Claude: [Uses list_downloaded_papers()]
You have 3 papers cached locally:
- 2401.12345: Paper Title...
Development
# Clone the repository
git clone https://github.com/AnnaSuSu/arxiv-mcp.git
cd arxiv-mcp
# Install dependencies
uv sync
# Run server locally
uv run arxiv-mcp-server
Requirements
- Python 3.10+
- Dependencies:
mcp,arxiv,pymupdf
License
MIT License - see LICENSE for details.
Metadata
Release files for arxiv-paper-mcp-server 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| arxiv_paper_mcp_server-0.1.2.tar.gz | 57.0 kB | Without provenance | Details for arxiv_paper_mcp_server-0.1.2.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| arxiv_paper_mcp_server-0.1.2-py3-none-any.whl | Python 3 | none | any | Details for arxiv_paper_mcp_server-0.1.2-py3-none-any.whl |
Total release size: 65.6 kB
Release files / arxiv_paper_mcp_server-0.1.2.tar.gz
| Download URL | arxiv_paper_mcp_server-0.1.2.tar.gz |
|---|---|
| Size | 57.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
77716a28759c82ef95710cd6fde35380d93ebfd7293217bcc1914984b127cf94
|
|
BLAKE2b-256 checksum How to use checksums |
262cf7b1fea5b00da48c05301fca218705db6e837c7f781ea77c072bfa24e37f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.6.9
|
Release files / arxiv_paper_mcp_server-0.1.2-py3-none-any.whl
| Download URL | arxiv_paper_mcp_server-0.1.2-py3-none-any.whl |
|---|---|
| Size | 8.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d65c1d18a3c0e962ca8d148b0df59c8b28141e6d7b1bb7d5120317b3c9ffe930
|
|
BLAKE2b-256 checksum How to use checksums |
5eacdb553f5af22cd4264f776c668a332e8c2a02c7a04d56892a4ac5f176f39c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.6.9
|
Security for arxiv-paper-mcp-server 0.1.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.