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.3.tar.gz (58.4 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.3-py3-none-any.whl (12.3 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for arxiv_mcp_server-0.2.3.tar.gz
Algorithm Hash digest
SHA256 a1822c4db47eb2bd33cd882f8683174f5162e2a867c0e0362659825c87d807ef
MD5 7e1e6c2c4fce0b07a136e929cd0a5d39
BLAKE2b-256 6544c4a1d992ea712d1b03794703e982126109f4a9c08c6f1f8edb9ffd6b8882

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for arxiv_mcp_server-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 8b4223b6d4c5a3c707abd9c9118cbddd034c04b19677f8744273e03d2f7ed436
MD5 c284ca35a5a0ccf6345cf77236efa713
BLAKE2b-256 94ce5d7b82026d091985646cd16369c89d6d02f4139572bf90c1037fefae63b0

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