blazickjp_arxiv-mcp-server

blazickjp_arxiv-mcp-server

0

The ArXiv MCP Server enables AI models to interact with arXiv's repository of research papers via the Message Control Protocol. It supports searching for academic papers, downloading, and locally storing them to improve research accessibility.

Python Version License: MIT

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

๐Ÿš€ Quick Start

Install using uv:

uv pip install git+https://github.com/blazickjp/arxiv-mcp-server.git

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": [
                "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:

VariablePurposeDefault
ARXIV_STORAGE_PATHPaper 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

ArXiv Server MCP server