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.4.tar.gz (59.5 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.4-py3-none-any.whl (14.3 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for arxiv_mcp_server-0.2.4.tar.gz
Algorithm Hash digest
SHA256 ca507eb4cdd7d91d7c7088f9bebd2942bff03cb7ea41cd981d20cce62384802d
MD5 89ddf9f47b41429e8aeedd90eb5fcb42
BLAKE2b-256 c2004ddc21fc0616245a3e9f07ee2eb978f594d4d6d8d17f1f8497b5e048df69

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for arxiv_mcp_server-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 d0886ef0fe430fda5c0d378577168d9a6e7e23800d023f2fa22664226b246fe7
MD5 7d8e978a21a07784dcfe0cae414f9da0
BLAKE2b-256 e5f23d9fcda0fd61e6e494f8c12c871affc13981d8cdd722a829d01695e5e829

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