arxiv-latex MCP Server
io.github.takashiishida/arxiv-latex-mcp
Overview
MCP server that fetches and processes arXiv LaTeX sources so LLM clients can inspect papers, abstracts, section lists, and specific sections with math-aware source text.
Documentation
arxiv-latex MCP Server
An MCP server for Claude Desktop, Claude Code, Cursor, and other MCP clients to access arXiv papers through their LaTeX source. It uses arxiv-to-prompt to download and process arXiv source archives, which helps LLMs handle mathematical expressions more accurately than PDF extraction.
Install and Launch
Default PyPI launch:
{
"mcpServers": {
"arxiv-latex-mcp": {
"command": "uvx",
"args": ["arxiv-latex-mcp"]
}
}
}
The package can also be installed with pip install arxiv-latex-mcp and launched as arxiv-latex-mcp, or run as python -m arxiv_latex_mcp. Local checkout use is documented with uv --directory /ABSOLUTE/PATH/TO/arxiv-latex-mcp run python -m arxiv_latex_mcp.
Capabilities
get_paper_prompt: fetch the full flattened LaTeX source of an arXiv paper.get_paper_abstract: fetch just the paper abstract.list_paper_sections: list section headings for a paper.get_paper_section: fetch a specific section by section path.
Requirements and Limitations
- Requires Python 3.10 or newer.
- Requires network access to arXiv and the dependencies
httpx,mcp[cli], andarxiv-to-prompt. - This is a stdio MCP server; no HTTP remote endpoint is documented.
- Tool calls require an
arxiv_id;get_paper_sectionalso requiressection_path. - Processing depends on arXiv source availability and the ability of arxiv-to-prompt to process the paper source.
Wardn Hub Source Review Notes
- Wardn import was called first but returned 404 with no usable imported serverJson; no imported transport fields were available to preserve.
- Package identifier and version are split: PyPI identifier
arxiv-latex-mcp, version0.2.2. - No application runtime environment variables are documented for the default PyPI launch.
manifest.jsoncontains a Desktop Extension bundle-internalPYTHONPATHvalue using.; it is not copied into the package launch env because placeholders are not allowed and the defaultuvxlaunch does not need it.