Skip to main content
Glama
huanongfish

ArXiv MCP Server

by huanongfish
README.md
[![Twitter Follow](https://img.shields.io/twitter/follow/JoeBlazick?style=social)](https://twitter.com/JoeBlazick)
[![smithery badge](https://smithery.ai/badge/arxiv-mcp-server)](https://smithery.ai/server/arxiv-mcp-server)
[![Python Version](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![PyPI Downloads](https://img.shields.io/pypi/dm/arxiv-mcp-server.svg)](https://pypi.org/project/arxiv-mcp-server/)
[![PyPI Version](https://img.shields.io/pypi/v/arxiv-mcp-server.svg)](https://pypi.org/project/arxiv-mcp-server/)

# 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.

<div align="center">
  
๐Ÿค **[Contribute](https://github.com/blazickjp/arxiv-mcp-server/blob/main/CONTRIBUTING.md)** โ€ข 
๐Ÿ“ **[Report Bug](https://github.com/blazickjp/arxiv-mcp-server/issues)**

</div>

## โœจ 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
- ๐Ÿ“ **Prompts**: A Set of Research Prompts

## ๐Ÿš€ Quick Start

### Installing via Smithery

To install ArXiv Server for Claude Desktop automatically via [Smithery](https://smithery.ai/server/arxiv-mcp-server):

```bash
npx -y @smithery/cli install arxiv-mcp-server --client claude
```

### Installing Manually
Install using uv:

```bash
uv tool install arxiv-mcp-server
```

For development:

```bash
# 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:

```json
{
    "mcpServers": {
        "arxiv-mcp-server": {
            "command": "uv",
            "args": [
                "tool",
                "run",
                "arxiv-mcp-server",
                "--storage-path", "/path/to/paper/storage"
            ]
        }
    }
}
```

For Development:

```json
{
    "mcpServers": {
        "arxiv-mcp-server": {
            "command": "uv",
            "args": [
                "--directory",
                "path/to/cloned/arxiv-mcp-server",
                "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:

```python
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:

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

### 3. List Papers
View all downloaded papers:

```python
result = await call_tool("list_papers", {})
```

### 4. Read Paper
Access the content of a downloaded paper:

```python
result = await call_tool("read_paper", {
    "paper_id": "2401.12345"
})
```

## โš™๏ธ Configuration

Configure through environment variables:

| Variable | Purpose | Default |
|----------|---------|---------|
| `ARXIV_STORAGE_PATH` | Paper storage location | ~/.arxiv-mcp-server/papers |

## ๐Ÿงช Testing

Run the test suite:

```bash
python -m pytest
```

## ๐Ÿ“„ License

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

---

<div align="center">

Made with โค๏ธ by the Pear Labs Team

<a href="https://glama.ai/mcp/servers/04dtxi5i5n"><img width="380" height="200" src="https://glama.ai/mcp/servers/04dtxi5i5n/badge" alt="ArXiv Server MCP server" /></a>
</div>

TDQS

B3.3/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: download_paper fetches new papers, list_papers shows existing resources, read_paper accesses stored content, and search_papers finds papers on arXiv. There is no overlap in functionality, making tool selection straightforward for an agent.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with snake_case (e.g., download_paper, list_papers, read_paper, search_papers). The naming is predictable and readable, with no deviations in style or convention.

Tool Count4/5

With 4 tools, the count is reasonable for an arXiv server, covering core operations like search, download, list, and read. It is slightly lean but well-scoped, as each tool serves a distinct and essential function without unnecessary bloat.

Completeness4/5

The toolset covers key workflows for arXiv interaction: searching, downloading, listing, and reading papers. Minor gaps exist, such as no update or delete operations for stored papers, but these are not critical for the domain, and agents can work effectively with the provided tools.

Maintenance

ActivityInactive
ResponsivenessNo issues