The server's own search guidance is doing real work here: arXiv reads space-separated words as OR, so an unprefixed query floods, and list_categories exists because cat: codes have to be exact before they filter anything. The full-text path is deliberately a second decision rather than a default — it is slow, large, and complex equations and figures will most likely not survive the conversion to Markdown.
A server over arXiv's search and paper endpoints, with the category taxonomy stored locally and a PDF-to-Markdown converter for full text.
- Search with date bounds, sort field and order, and a result cap, built for arXiv's field prefixes — ti: for title, cat: for category — rather than bare keywords
- The valid category codes listed before you filter on them, and the stored taxonomy refreshed from arxiv.org when it drifts
- A paper's detail by id, including the abstract and the formats available for it
- The full paper downloaded and converted from PDF to Markdown when the abstract is not enough to answer the question
Uv with a Python for the server to run under, and nothing else — arXiv needs no account or key. Budget for get_full_paper_text separately: it takes 30-90 seconds depending on length and can return 10k-50k+ tokens, so it wants a paper id you have already settled on.
One command — uvx mcp-simple-arxiv
