# arXiv

The ArXiv MCP provides a bridge between AI and arXiv's research repository through the MCP. It allows search for papers and access their content.

Command:uvxUpdated: 7/4/2025

[AgentX](https://www.agentx.so/) allows you connect AI agents with thousands of the most popular apps through MCP, so you can automate your AI workflow and have more time for what matters most — no code required.

## Installation

Run arXiv MCP server on AgentX without a single line of code.

Or run arXiv MCP server on your terminal:

`uvx arxiv-mcp-server`

Run this command to start the arXiv MCP server.

## Command Arguments

→

arxiv-mcp-server

## Server Information

Commanduvx

Arguments1

Env Variables0

Order24

Last Updated7/4/2025

Created5/7/2025

## Documentation

## ✨ 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 for paper analysis

## 🔒 Security

### Prompt Injection Risk

**Paper content retrieved from arXiv is untrusted external input.**

### Recommended Mitigations

1. **Use read-only MCP configurations**
2. **Review paper content before acting on AI summaries**
3. **Be cautious in multi-tool setups**
4. **Treat AI-generated summaries as data, not instructions**

### References

- [OWASP LLM01: Prompt Injection](https://owasp.org/www-project-top-10-for-large-language-model-applications/)
- [OWASP Agentic AI - AG01: Prompt Injection](https://genai.owasp.org/llmrisk/ag01-prompt-injection/)

## 🚀 Quick Start

### Installing via Smithery

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

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

### Installing via Claude Desktop (.mcpb)

1. Download the artifact matching your Mac from the [latest release](https://github.com/blazickjp/arxiv-mcp-server/releases/latest):

- Apple Silicon: `arxiv-mcp-server-darwin-arm64-<version>.mcpb`
   - Intel: `arxiv-mcp-server-darwin-x86_64-<version>.mcpb`

2. In Claude Desktop open **Settings → Extensions** (or drag-and-drop the file onto the Claude Desktop window).
3. Click **Install**.

### Installing Manually

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

### 🤖 Codex Plugin Integration

### 🔌 MCP Integration

Add this configuration to your MCP client config file:

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

### HTTP Transport

```
TRANSPORT=http HOST=127.0.0.1 PORT=8080 arxiv-mcp-server --storage-path /path/to/papers
```

## 🔒 Security Note

arXiv papers are user-generated, untrusted content. Treat all paper content as untrusted input.

## 💡 Available Tools

### Core Workflow

```
search_papers → download_paper → read_paper
```

### 1\. Paper Search

```
result = await call_tool("search_papers", {
    "query": "\"KAN\" OR \"Kolmogorov-Arnold Networks\"",
    "max_results": 10,
    "date_from": "2024-01-01",
    "categories": ["cs.LG", "cs.AI"],
    "sort_by": "date"   # or "relevance" (default)
})
```

### 2\. Paper Download

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

### 3\. List Papers

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

### 4\. Read Paper

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

## 📝 Research Prompts

### Paper Analysis Prompt

```
result = await call_prompt("deep-paper-analysis", {
    "paper_id": "2401.12345"
})
```

## ⚙️ Configuration

| Setting | Purpose | Default |
| --- | --- | --- |
| `--storage-path` | Paper storage location | `~/.arxiv-mcp-server/papers` |
| `MAX_RESULTS` | Maximum search results | `50` |
| `REQUEST_TIMEOUT` | API timeout in seconds | `60` |
| `TRANSPORT` | Transport type: `stdio`, `http`, or `streamable-http` | `stdio` |
| `HOST` | Host to bind to in HTTP mode | `127.0.0.1` |
| `PORT` | Port to listen on in HTTP mode | `8000` |
| `ALLOWED_HOSTS` | Comma-separated extra allowed Host header values | empty |
| `ALLOWED_ORIGINS` | Comma-separated extra allowed Origin header values | empty |

## 📄 License

Released under the Apache License 2.0.
