Skip to content

AnnaSuSu/arxiv-mcp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

MCP server for searching and reading arXiv papers with LLMs

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages