Skip to main content

arxiv-latex MCP Server

PyPI version License: MIT GitHub Release Trust Score

An MCP server that enables Claude Desktop, Claude Code, Cursor, or other MCP clients to directly access and process arXiv papers by fetching the LaTeX source. It uses arxiv-to-prompt under the hood to handle downloading and processing the LaTeX.

Why use the LaTeX source instead of uploading PDFs? Many PDF chat applications often struggle with mathematical content and equation-heavy papers. By utilizing the original LaTeX source code from arXiv papers, the LLM can accurately understand and handle equations and notations. This approach is particularly valuable for fields like computer science, mathematics, and engineering where precise interpretation of mathematical expressions is crucial.

Installation

If you are using Claude Desktop, you can utilize Desktop Extensions by double-clicking on the .mcpb file to install. Download the .mcpb file from here. The extension needs Python 3.10+ with pip. On first launch, and whenever its dependency requirements or Python runtime change, it downloads wheels into a private cache inside the extension. This requires internet access; subsequent launches reuse that cache. Restart your MCP client after installing an updated extension. Supported on macOS, Windows, and Linux.

Otherwise, you can run the server directly from PyPI with uvx:

{
  "mcpServers": {
    "arxiv-latex-mcp": {
      "command": "uvx",
      "args": ["arxiv-latex-mcp"]
    }
  }
}

You can also install it with pip install arxiv-latex-mcp and run arxiv-latex-mcp, or use:

python -m arxiv_latex_mcp

If you prefer to run from a local checkout, add the following configuration to your config file:

{
  "mcpServers": {
      "arxiv-latex-mcp": {
          "command": "uv",
          "args": [
              "--directory",
              "/ABSOLUTE/PATH/TO/arxiv-latex-mcp",
              "run",
              "python",
              "-m",
              "arxiv_latex_mcp"
          ]
      }
  }
}

You may need to replace the command field with the full path of uv: check this by running which uv (MacOS/Linux) or where uv (Windows).

Restart the application after saving the above.

For Claude Desktop, click on the hammer icon, and you should see the following in the list of "Available MCP tools":

  • get_paper_prompt — Get the full flattened LaTeX of a paper
  • get_paper_abstract — Get just the abstract
  • list_paper_sections — List section headings of a paper
  • get_paper_section — Get a specific section by its title from list_paper_sections (Section > Subsection for a subsection)
  • search_papers — Discover papers by topic, title, or author, optionally filtered by category and submission date

Searching for papers

Use search_papers when you do not yet have an arXiv ID. It returns paper IDs, titles, authors, abstracts, categories, submission dates, and PDF links. Pass a returned id to get_paper_prompt to read its LaTeX source. If you already have an ID, call the reading tools directly.

For example, search with {"query": "ti:\"neural networks\"", "categories": ["cs.LG", "stat.ML"], "date_from": "2026-01-01", "max_results": 10, "sort_by": "date"}. Categories are combined with OR and restrict the query. date_from and date_to are inclusive submission dates in YYYY-MM-DD format (UTC). Searches return 10 papers by default, up to 50, sorted by relevance or by newest submission date. Search requests share a three-second throttle; rate-limit errors ask you to wait before retrying.

Caching

Paper sources are kept in arxiv-to-prompt's cache (the same one its CLI uses), so repeated calls on the same paper do not download it again. Unversioned IDs such as 2403.12345 are re-downloaded once their copy is older than 7 days, so revised papers are picked up. Versioned IDs such as 2403.12345v2 never change. If a refresh fails, the cached copy is used. To change this, set environment variables in the server's MCP config ("env": {...}):

Variable Default Effect
ARXIV_LATEX_MCP_CACHE 1 0 turns caching off
ARXIV_LATEX_MCP_CACHE_TTL_DAYS 7 Age after which unversioned IDs are re-downloaded
ARXIV_LATEX_MCP_CACHE_DIR arxiv-to-prompt's default Cache location (default ~/.cache/arxiv-to-prompt, or %LOCALAPPDATA%\arxiv-to-prompt on Windows)

Example

Try asking questions about a paper from arXiv, e.g., "Explain the first theorem in 2202.00395"

Example of using arXiv LaTeX MCP with Claude Desktop

Metadata

Release files for arxiv-latex-mcp 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for arxiv-latex-mcp 0.3.0
File Size Uploaded Provenance
arxiv_latex_mcp-0.3.0.tar.gz 81.5 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for arxiv-latex-mcp 0.3.0
File Interpreter ABI Platform
arxiv_latex_mcp-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 100.1 kB

Release files / arxiv_latex_mcp-0.3.0.tar.gz

Download URL arxiv_latex_mcp-0.3.0.tar.gz
Size 81.5 kB
Tags Source
SHA-256 checksum
How to use checksums
6541839700712ca34fb888f94dad3d166a45d7874167e09a8e093e28b1b5b630
BLAKE2b-256 checksum
How to use checksums
3836f12383c8f386e83cc8147bbd39db10b68f515f2832afb68cfdcdab9c620c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

Release files / arxiv_latex_mcp-0.3.0-py3-none-any.whl

Download URL arxiv_latex_mcp-0.3.0-py3-none-any.whl
Size 18.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d0e540db8d44fb2f53362661e76cb259cc28851350c46a9f36f76d70912f0f67
BLAKE2b-256 checksum
How to use checksums
0ad050dfdb0c56b25541a2995143f9b7a57a1259125580b894bec25eeec147c6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

Security for arxiv-latex-mcp 0.3.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for arxiv_latex_mcp-0.3.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page