A streamlined Model Context Protocol for arxiv.org
353
Access the world's largest repository of academic papers through the Model Context Protocol
A streamlined Model Context Protocolโ server that connects AI assistants to arXiv's vast collection of academic papers. Search, analyze, and download research papers directly from your AI workflow.
# Pull and run the Docker image
docker run --rm -it ghcr.io/tejas242/arxiv-mcp:latest
# Or using docker-compose
git clone https://github.com/tejas242/arxiv-mcp.git
cd arxiv-mcp
docker compose up
# Clone and setup
git clone https://github.com/tejas242/arxiv-mcp.git
cd arxiv-mcp
uv sync
# Test the server
uv run main.py
| Function | Status | Description | Parameters |
|---|---|---|---|
search_papers | โ Working | Search arXiv papers with flexible query syntax | query, max_results, sort_by, sort_order |
get_paper_details | โ Working | Retrieve complete metadata for any arXiv paper | arxiv_id |
build_advanced_query | โ Working | Construct complex search queries with multiple fields | title_keywords, author_name, category, abstract_keywords |
get_arxiv_categories | โ Working | List all available arXiv subject categories | None |
search_by_author | โ ๏ธ Limited | Find papers by specific author (use search_papers instead) | author_name, max_results |
search_by_category | โ ๏ธ Limited | Browse papers by category (use search_papers instead) | category, max_results |
download_paper_pdf | ๐ง Needs Fix | Download paper PDFs (redirect handling issue) | arxiv_id, save_path |
search_papers - The primary search function
get_paper_details - Detailed paper information
build_advanced_query - Query construction helper
get_arxiv_categories - Category reference
search_by_author - Use search_papers('au:"Author Name"') instead
search_by_category - Use search_papers('cat:category_code') instead
download_paper_pdf - HTTP redirect handling needs improvement
For Local Installation:
Add to your Claude Desktop config file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"arxiv-mcp": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/arxiv-mcp",
"run",
"main.py"
]
}
}
}
For Docker Installation:
{
"mcpServers": {
"arxiv-mcp": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"ghcr.io/tejas242/arxiv-mcp:latest"
]
}
}
}
{
"mcp": {
"servers": {
"arxiv-mcp": {
"command": "uv",
"args": ["--directory", "/path/to/arxiv-mcp", "run", "main.py"]
}
}
}
}
# Search for papers about transformers
search_papers("transformer architecture")
# Advanced query with specific fields
search_papers('ti:"attention mechanism" AND cat:cs.LG')
# Author-specific search (recommended approach)
search_papers('au:"Geoffrey Hinton"')
# Category browsing (recommended approach)
search_papers('cat:cs.AI')
# 1. Find the famous "Attention" paper
search_papers('ti:"Attention Is All You Need"')
get_paper_details("1706.03762")
# 2. Explore related work
search_papers("transformer neural networks")
# 3. Build complex queries
query = build_advanced_query(
title_keywords="few-shot learning",
author_name="Tom Brown",
category="cs.LG"
)
search_papers(query)
| Code | Description | Example Topics |
|---|---|---|
cs.AI | Artificial Intelligence | Machine learning, neural networks, AI theory |
cs.LG | Machine Learning | Deep learning, reinforcement learning, statistical learning |
cs.CV | Computer Vision | Image processing, object detection, visual recognition |
cs.CL | Computation and Language | NLP, language models, text processing |
cs.CR | Cryptography and Security | Security protocols, encryption, privacy |
stat.ML | Machine Learning (Statistics) | Statistical learning theory, Bayesian methods |
physics.gen-ph | General Physics | Theoretical physics, quantum mechanics |
math.NA | Numerical Analysis | Computational mathematics, algorithms |
q-bio.NC | Quantitative Biology | Neuroscience, computational biology |
Use get_arxiv_categories() for the complete list of available categories.
Based on comprehensive testing of all functions:
search_papers('au:"Author Name"') instead of search_by_author()search_papers('cat:category') instead of search_by_category()arxiv-mcp/
โโโ src/arxiv_mcp/ # Main package
โ โโโ server.py # MCP server implementation
โ โโโ arxiv_client.py # arXiv API wrapper
โ โโโ models.py # Pydantic data models
โ โโโ utils.py # Helper functions
โโโ tests/ # Test suite
โโโ main.py # Entry point
โโโ pyproject.toml # Project config
uv run pytest tests/ -v
# Enable detailed logging
PYTHONPATH=src uv run python -c "
import logging
logging.basicConfig(level=logging.DEBUG)
from arxiv_mcp.server import main
main()
"
uv run main.pyget_arxiv_categories()search_papers() instead of specific search functionsContent type
Image
Digest
sha256:256f8ace3โฆ
Size
74 MB
Last updated
12 months ago
docker pull screenager/arxiv-mcp