MCP Server for searching and reading arXiv papers
Project description
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
First, 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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file arxiv_paper_mcp_server-0.1.1.tar.gz.
File metadata
- Download URL: arxiv_paper_mcp_server-0.1.1.tar.gz
- Upload date:
- Size: 56.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
86a57bb49bbd79c0254013b834166ece57ea96c6105cc48a7531ce69e0f95eff
|
|
| MD5 |
e6f3aa352db522984b16083e59e64e23
|
|
| BLAKE2b-256 |
b80335370af1a0c28d182f22d9acbfe6207d2f6653b39c77a5b315f78dbe6673
|
File details
Details for the file arxiv_paper_mcp_server-0.1.1-py3-none-any.whl.
File metadata
- Download URL: arxiv_paper_mcp_server-0.1.1-py3-none-any.whl
- Upload date:
- Size: 8.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3a10c570408d4cc4a76485584d0ff96a3c468b4b33bf05c2b294af014cd83bd4
|
|
| MD5 |
0f8d7dd2c453dc90466118e67ff9f01d
|
|
| BLAKE2b-256 |
87082ba70b0ac7a9a41270b549cb8291cc7a8aaec624349be3c0c5f851389639
|