Skip to main content

MCP Server for searching and reading arXiv papers

Project description

arXiv MCP Server

PyPI version Python License: MIT

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

arxiv_paper_mcp_server-0.1.2.tar.gz (57.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

arxiv_paper_mcp_server-0.1.2-py3-none-any.whl (8.6 kB view details)

Uploaded Python 3

File details

Details for the file arxiv_paper_mcp_server-0.1.2.tar.gz.

File metadata

File hashes

Hashes for arxiv_paper_mcp_server-0.1.2.tar.gz
Algorithm Hash digest
SHA256 77716a28759c82ef95710cd6fde35380d93ebfd7293217bcc1914984b127cf94
MD5 b39e9dc7920977b41ee80c8e301343cd
BLAKE2b-256 262cf7b1fea5b00da48c05301fca218705db6e837c7f781ea77c072bfa24e37f

See more details on using hashes here.

File details

Details for the file arxiv_paper_mcp_server-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for arxiv_paper_mcp_server-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d65c1d18a3c0e962ca8d148b0df59c8b28141e6d7b1bb7d5120317b3c9ffe930
MD5 3f84cd60c57fd6d58d8dab0c3a0c8e46
BLAKE2b-256 5eacdb553f5af22cd4264f776c668a332e8c2a02c7a04d56892a4ac5f176f39c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page