arxiv-mcp-server
Categories
Language:
Python
Stars:
91
Forks:
14
ArXiv MCP Server
๐ Enable AI assistants to search and access arXiv papers through a simple MCP interface.
The ArXiv MCP Server provides a bridge between AI assistants and arXiv's research repository through the Message Control Protocol (MCP). It allows AI models to search for papers and access their content in a programmatic way.
๐ค Contribute โข ๐ Report Bug
โจ Core Features
- ๐ Paper Search: Query arXiv papers with filters for date ranges and categories
- ๐ Paper Access: Download and read paper content
- ๐ Paper Listing: View all downloaded papers
- ๐๏ธ Local Storage: Papers are saved locally for faster access
- ๐ Prompts: A Set of Research Prompts
๐ Quick Start
Installing via Smithery
To install ArXiv Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install arxiv-mcp-server --client claude
Installing Manually
Install using uv:
uv tool install arxiv-mcp-server
For development:
# Clone and set up development environment
git clone https://github.com/blazickjp/arxiv-mcp-server.git
cd arxiv-mcp-server
# Create and activate virtual environment
uv venv
source .venv/bin/activate
# Install with test dependencies
uv pip install -e ".[test]"
๐ MCP Integration
Add this configuration to your MCP client config file:
{
"mcpServers": {
"arxiv-mcp-server": {
"command": "uv",
"args": [
"tool",
"run",
"arxiv-mcp-server",
"--storage-path", "/path/to/paper/storage"
]
}
}
}
For Development:
{
"mcpServers": {
"arxiv-mcp-server": {
"command": "uv",
"args": [
"--directory",
"path/to/cloned/arxiv-mcp-server",
"run",
"arxiv-mcp-server",
"--storage-path", "/path/to/paper/storage"
]
}
}
}
๐ก Available Tools
The server provides four main tools:
1. Paper Search
Search for papers with optional filters:
result = await call_tool("search_papers", {
"query": "transformer architecture",
"max_results": 10,
"date_from": "2023-01-01",
"categories": ["cs.AI", "cs.LG"]
})
2. Paper Download
Download a paper by its arXiv ID:
result = await call_tool("download_paper", {
"paper_id": "2401.12345"
})
3. List Papers
View all downloaded papers:
result = await call_tool("list_papers", {})
4. Read Paper
Access the content of a downloaded paper:
result = await call_tool("read_paper", {
"paper_id": "2401.12345"
})
โ๏ธ Configuration
Configure through environment variables:
Variable | Purpose | Default |
---|---|---|
ARXIV_STORAGE_PATH | Paper storage location | ~/.arxiv-mcp-server/papers |
๐งช Testing
Run the test suite:
python -m pytest
๐ License
Released under the MIT License. See the LICENSE file for details.
Made with โค๏ธ by the Pear Labs Team
Publisher info
Joe Blazick
Sr. Data Scientist working at Amazon