Skip to main content

A flexible arXiv search and analysis service with MCP protocol support

Project description

ArXiv MCP Server ๐Ÿ“š

Stars License: MIT Python Version Tests

๐Ÿ” Empower AI models with direct access to academic research through an elegant MCP interface.

The ArXiv MCP Server bridges the gap between AI models and academic research by providing a sophisticated interface to arXiv's extensive research repository. This server enables AI assistants to perform precise paper searches and access full paper content, enhancing their ability to engage with scientific literature.

๐ŸŒŸ View Demo โ€ข ๐Ÿ“– Documentation โ€ข ๐Ÿค Contribute โ€ข ๐Ÿ“ Report Bug

โœจ Core Features

  • ๐Ÿ”Ž Advanced Search: Precise queries with date ranges and category filters
  • ๐Ÿ“ฅ Smart Downloads: Papers become instantly accessible MCP resources
  • ๐Ÿš€ Async Architecture: Built for performance and scalability
  • ๐Ÿ’พ Local Caching: Efficient repeated access to frequently used papers

๐Ÿš€ 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]"

๐Ÿ”Œ Claude Desktop Integration

Add this configuration to your Claude Desktop config file to enable ArXiv paper access:

๐Ÿ“ Click to view configuration
{
    "mcpServers": {
        "arxiv-mcp-server": {
            "command": "uv",
            "args": [
                "run",
                "arxiv-mcp-server",
                "--storage-path", "/path/to/paper/storage",
                "--max-results", "50",
                "--timeout", "30"
            ]
        }
    }
}

Make sure to adjust the storage path and other parameters according to your needs. This configuration enables Claude to search and access ArXiv papers directly through the MCP server.

๐Ÿ’ก Usage

Paper Search

Search with precision using multiple criteria:

# Example: Find recent AI papers
result = await call_tool("search_papers", {
    "query": "transformer architecture applications",
    "max_results": 10,
    "date_from": "2023-01-01",
    "categories": ["cs.AI", "cs.LG"],
})

# Response includes detailed metadata
{
    "total_results": 10,
    "papers": [
        {
            "id": "2401.12345",
            "title": "Example Paper Title",
            "authors": ["Author Name"],
            "abstract": "Paper abstract...",
            "categories": ["cs.AI"],
            "published": "2024-01-15T00:00:00Z",
            "resource_uri": "arxiv://2401.12345"
        }
    ]
}

Paper Download

Transform papers into accessible resources:

result = await call_tool("download_paper", {
    "paper_id": "2401.12345"
})

โš™๏ธ Configuration

Customize through environment variables:

Variable Purpose Default
ARXIV_STORAGE_PATH Paper storage location ~/.arxiv-mcp-server/papers
ARXIV_MAX_RESULTS Search results limit 50
ARXIV_REQUEST_TIMEOUT API timeout (seconds) 30

๐Ÿงช Development

Run the comprehensive test suite:

python -m pytest

The test suite provides:

  • โœ… Unit tests for components
  • ๐Ÿ”„ Integration tests for MCP compliance
  • ๐ŸŽญ Mock-based service testing
  • ๐Ÿ“Š Coverage reporting

๐Ÿ—๏ธ Technical Architecture

Our modular design consists of four key components:

  1. ๐Ÿ› ๏ธ Tool Layer: MCP protocol interface
  2. ๐Ÿ“š Resource Management: Paper storage and retrieval
  3. ๐Ÿ”Œ Service Layer: ArXiv API integration
  4. โš™๏ธ Configuration: Environment-based settings

๐Ÿค Contributing

We enthusiastically welcome contributions! To get started:

  1. ๐Ÿด Fork the repository
  2. ๐ŸŒฟ Create a feature branch
  3. โœจ Make your enhancements
  4. โœ… Ensure tests pass
  5. ๐Ÿ“ Update documentation
  6. ๐Ÿš€ Submit a pull request

๐Ÿ“ฆ Dependencies

Core

  • ๐Ÿ“š arxiv>=2.1.0
  • ๐Ÿ”Œ mcp>=1.0.0
  • ๐ŸŒ aiohttp>=3.9.1
  • โœจ pydantic>=2.8.0
  • ๐Ÿ“… python-dateutil>=2.8.2
  • ๐Ÿ“ aiofiles>=23.2.1

Development

  • ๐Ÿงช pytest>=8.0.0
  • โšก pytest-asyncio>=0.23.5
  • ๐Ÿ“Š pytest-cov>=4.1.0
  • ๐ŸŽญ pytest-mock>=3.10.0

๐Ÿ“„ License

Released under the MIT License. See the LICENSE file for details.


Made with โค๏ธ by the ArXiv MCP Server Team

If you find this project helpful, please consider giving it a star โญ

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_mcp_server-0.2.0.tar.gz (29.6 kB view details)

Uploaded Source

Built Distribution

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

arxiv_mcp_server-0.2.0-py3-none-any.whl (11.3 kB view details)

Uploaded Python 3

File details

Details for the file arxiv_mcp_server-0.2.0.tar.gz.

File metadata

  • Download URL: arxiv_mcp_server-0.2.0.tar.gz
  • Upload date:
  • Size: 29.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.5.4

File hashes

Hashes for arxiv_mcp_server-0.2.0.tar.gz
Algorithm Hash digest
SHA256 3cd81b50dbbfbef76290913f5b640970bdb59ceaae371295f17de2a8c3b015da
MD5 b748d31b3aaac4ece3cca8892ff97c2f
BLAKE2b-256 c71f88c8ff1174a7eadf39ec27181b7250ba18767a5ae355cc71525ba4d00060

See more details on using hashes here.

File details

Details for the file arxiv_mcp_server-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for arxiv_mcp_server-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ed24696a58b11bf9c6fad01e91ac8d3fa7400dd7c94ef4acbb5b5b2440032ee2
MD5 f3e836c96942930cbb72ec5cd89c43bb
BLAKE2b-256 48bc5548d05400d4b36e5622b94c50a05a6af20d0d08f82f117308ed786ef9d7

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