Skip to main content
Glama

arxiv-mcp

CI License: MIT

An MCP server that exposes arXiv paper search, full-text HTML retrieval, and PDF download as tools. Built with FastMCP and served over SSE.

Tools

Tool

Description

search_papers

Search arXiv for papers matching a query. Returns titles, authors, abstracts, and links.

get_paper_html

Retrieve the full text of an arXiv paper as HTML via ar5iv.

download_pdf

Download an arXiv paper as PDF to a specified directory (default: ./downloads).

Quickstart

Requires Python 3.13+ and uv.

uv sync
uv run arxiv-mcp

The server starts on http://0.0.0.0:8613.

Options

Flag

Description

Default

--port

Port to listen on

8613

--output-dir

Default PDF download directory

./downloads

uv run arxiv-mcp --port 9000 --output-dir /tmp/papers

The output_dir parameter on the download_pdf tool overrides the server default when provided.

Docker Compose

docker compose up --build

Downloads are persisted to ./downloads on the host via a bind mount.

MCP client configuration

Add the server to your MCP client config:

{
  "mcpServers": {
    "arxiv": {
      "url": "http://localhost:8613/sse"
    }
  }
}

Development

uv sync                  # Install dependencies (including dev)
uv run pytest            # Run tests
uv run ruff check        # Lint
uv run ruff format       # Format
uv run pyright           # Type check

Architecture

src/arxiv_mcp/
  domain.py   - Pydantic models (Paper)
  client.py   - arXiv API wrapper (search, HTML via ar5iv, PDF download)
  server.py   - FastMCP server exposing the three tools
-
security - not tested
A
license - permissive license
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/dakl/arxiv-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server