Most bibliographic servers stop at metadata and leave you to open the paper yourself. Extracting the full text is the step that turns "find me papers about X" into "what does this paper's methodology section actually claim", and it is why the two heavier calls exist. The two transports matter for where it runs: stdio for a desktop client, SSE when the server lives in a container and something else connects to it.
An MCP server over the arXiv open-access preprint repository. It goes past metadata — the extraction call downloads the PDF and pulls out the text, so an assistant can work from what the paper says rather than from the abstract.
- Keyword search across arXiv, returning comprehensive summaries of the matches — `search_papers`
- Full detail for one paper from its arXiv ID — `get_paper_details`
- Download and text extraction from the paper's PDF, which is what makes section-level questions possible — `extract_paper_content`
- A generated summary over a paper's content — `analyze_paper`
No account and no key — arXiv is open access. Python 3.11 or higher. Install with `uv pip install -e .` from a clone, or build the Docker image `mcp/arxiv`. Transport is chosen with the `TRANSPORT` variable: stdio, where the client launches the server itself, or sse with `HOST` and `PORT` (8050 in the examples). The package is `arxiv-mcp` (0.1.0 in pyproject).
One command — docker run --rm -i -e TRANSPORT mcp/arxiv
