Data as of

ArXiv MCP Server for Claude Desktop: Setup & Config

Claude Desktop: Search arXiv, download papers, and read their contents through an AI assistant.

What you can do with ArXiv in Claude Desktop

A focused arXiv workflow from filtered discovery to locally stored, readable papers.

  • Find papers within a topic, category, and date range.
  • Download papers into a reusable local collection.

Before you start: ArXiv in Claude Desktop

  • Python 3.11+
  • uv
  • An MCP-compatible client

Replace the example storage path with your paper directory. Install the [pdf] extra for PDF-only papers. The README also documents uvx and HTTP launch options.

ArXiv Claude Desktop configuration

  1. Choose Claude Desktop configuration scope

    For ArXiv MCP Server, open macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json. Merge under mcpServers via Settings → Developer → Edit Config when available.

  2. Add ArXiv MCP Server to Claude Desktop

    Use the arxiv-mcp-server entry below in mcpServers. Keep ArXiv MCP Server's documented stdio connection fields and your other Claude Desktop entries.

  3. Check ArXiv MCP Server in Claude Desktop

    ArXiv MCP Server: Fully quit and reopen Claude Desktop; check developer diagnostics.

Config file · macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

Windows: %APPDATA%\Claude\claude_desktop_config.json

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

ArXiv tools available to Claude Desktop

ArXiv's stored tool list documents 5 tools; compare it with Claude Desktop's connected tool list, because the stored list is not a live check.

search_papers

When Claude Desktop requests search_papers from ArXiv, review the action before approving it.

Find arXiv papers using topic queries and optional date or category filters.

download_paper

When Claude Desktop requests download_paper from ArXiv, review the action before approving it.

Fetch a paper into local storage, using HTML first and PDF when needed.

list_papers

When Claude Desktop requests list_papers from ArXiv, review the action before approving it.

List the identifiers of papers already downloaded locally.

read_paper

When Claude Desktop requests read_paper from ArXiv, review the action before approving it.

semantic_search

When Claude Desktop requests semantic_search from ArXiv, review the action before approving it.

ArXiv: full stored tool descriptions

Troubleshooting ArXiv in Claude Desktop

  • Fully quit and reopen Claude Desktop for ArXiv MCP Server. If uv is missing, check the desktop process's PATH, which may differ from your terminal.
  • ArXiv MCP Server uses stdio here: Claude Desktop must keep the configured process running; protocol output belongs on stdout and diagnostics on stderr.
  • Known limitation: PDF-only papers need the additional PDF dependency extra.
  • Known limitation: Local semantic search is experimental and requires extra dependencies.
  • Known limitation: Untrusted paper text can carry prompt-injection instructions.
  • General Claude Desktop troubleshooting lives in the /clients/claude-desktop guide.

ArXiv MCP Server — details. Claude Desktop guide

Frequently asked questions

Claude Desktop loads ArXiv MCP Server from claude_desktop_config.json: ~/Library/Application Support/Claude/ on macOS, or %APPDATA%\Claude\ on Windows. Open it via Settings → Developer → Edit Config when available.

Claude Desktop's arxiv-mcp-server example uses stdio.

ArXiv MCP Server's Claude Desktop configuration invokes uv.

ArXiv MCP Server's stored list contains 5 tools, including search_papers, download_paper, list_papers. Compare those names with Claude Desktop's connected tool list; the stored list is not a live check.

Yes. Downloads are saved in a configurable directory, and list_papers reports the local collection.

Yes. read_paper expects the paper to have been downloaded first.