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.2.tar.gz (55.8 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.2-py3-none-any.whl (10.3 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for arxiv_mcp_server-0.2.2.tar.gz
Algorithm Hash digest
SHA256 1f67253d12d162eadc78c516e593fba2286ff153eeb40b853d6311855e30ce58
MD5 97ad21f1871ad558424894dd5a692736
BLAKE2b-256 850ae3270fe2cbf03cac74b94583fb02217d24fe92e56e8b2adc630bae65acf5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for arxiv_mcp_server-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 2a15eeedd8e227fa8442a702578d3b48ff826c103eef9b1b23ad0325875cc045
MD5 f6a793710ad239c1376e1c15ca3981ad
BLAKE2b-256 d50b420928457e3655ddc1613ac2039e3763ffb60000f0ef9230c5799941f467

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