Search arXiv, download papers and read them in full.
- Started in our test
- ★ 3.2K GitHub stars
- 19K downloads a week
- Last commit 8 Oct 2026
At a glance
The server searches arXiv by query, date and category, downloads papers, converts them to text and keeps them in a local folder. The assistant can then read whole papers instead of abstracts, and list what you have already saved.
It also ships prompts for structured paper analysis.
- Made by
- Joe Blazick and contributors
- Licence
- Apache-2.0
- Latest version
- 0.8.2 (8 Oct 2026)
- PyPI package
- arxiv-mcp-server
- GitHub stars
- 3.2K
- Downloads
- 19K a week
- Last commit
- 8 Oct 2026
- Tools
- 19
- Runs on
- Your computer
Our check: We ran this exact config on 26 Oct 2026: it started and answered with 19 tools. The npm package called "arxiv-mcp-server" comes from a different repository (r-uben/arxiv-mcp-server). This project publishes to PyPI under that name, so it runs with uvx.
What's in the pod: its tools
We found 19 tools when we started it on 26 Oct 2026. 11 only read. The rest can change things, so keep your app's "ask before each tool call" setting on for them.
Changes things8 tools · Can create, edit, send or delete.
| Tool | What it is for |
|---|---|
check_alerts | Goes through every saved watch and reports just the new papers that appeared since you last looked. |
download_paper | Saves a paper locally and returns its text, using arXiv's HTML version where it exists and the PDF otherwise. |
get_paper_latex | Fetches the paper's original LaTeX source, in bounded chunks. |
get_paper_latex_section | Returns one section of the LaTeX source, with macros expanded. |
list_paper_latex_sections | Lists the headings in a paper's LaTeX source. |
reindex | Rebuilds the local search index over your downloaded papers. |
unwatch_topic | Deletes a saved topic watch. |
watch_topic | Saves a research topic so check_alerts can tell you about new papers on it. |
Only reads11 tools · Looks things up and changes nothing.
| Tool | What it is for |
|---|---|
citation_graph | Lists papers that cite a paper and papers it cites, using Semantic Scholar. |
export_citations | Writes BibTeX entries straight from arXiv's own metadata, so nothing is made up. |
get_abstract | Fetches a paper's title, authors and abstract without downloading it, to judge relevance first. |
get_paper_outline | Lists the headings of a downloaded paper with ids you can read section by section. |
list_papers | Lists the papers you have downloaded. |
list_watches | Lists your saved topic watches. |
read_paper | Reads a downloaded paper as Markdown, in pieces of about 12,000 characters. |
read_paper_section | Reads just one section of a downloaded paper. |
search_paper_text | Finds passages inside one downloaded paper that match a phrase. |
search_papers | Searches arXiv by keywords, author, title or category, with date ranges and sorting. |
semantic_search | Finds papers in your local library that are close in meaning to a question. |
Grouped and described by us. The README on GitHub lists the inputs each tool takes.
Set it up
Pick your app for the exact snippet and where it goes.
Where it goes: claude_desktop_config.json (Settings → Developer → Edit Config)
{
"mcpServers": {
"arxiv": {
"command": "uvx",
"args": [
"arxiv-mcp-server",
"--storage-path",
"/path/to/papers"
]
}
}
}Where it goes: Your terminal, in the project folder
claude mcp add-json arxiv '{"command":"uvx","args":["arxiv-mcp-server","--storage-path","/path/to/papers"]}'Where it goes: ~/.cursor/mcp.json, or .cursor/mcp.json in a project
{
"mcpServers": {
"arxiv": {
"command": "uvx",
"args": [
"arxiv-mcp-server",
"--storage-path",
"/path/to/papers"
]
}
}
}Where it goes: .vscode/mcp.json in your project
{
"servers": {
"arxiv": {
"type": "stdio",
"command": "uvx",
"args": [
"arxiv-mcp-server",
"--storage-path",
"/path/to/papers"
]
}
}
}Where it goes: ~/.codeium/windsurf/mcp_config.json
{
"mcpServers": {
"arxiv": {
"command": "uvx",
"args": [
"arxiv-mcp-server",
"--storage-path",
"/path/to/papers"
]
}
}
}Where it goes: Not supported
ChatGPT only connects to remote servers by URL. This one runs on your computer, so use Claude, Cursor or VS Code.
New to this? See the setup guides for Claude Code, Cursor, Claude Desktop and ChatGPT.
Settings
Names are exactly as the project spells them. Required ones are marked.
| Setting | What it does |
|---|---|
--storage-pathCommand line flag | Folder for downloaded papers, cached sources, alerts and the search index. Defaults to ~/.arxiv-mcp-server/papers.--storage-path /absolute/path/to/papers |
ARXIV_REQUEST_TIMEOUTEnvironment variable | Seconds to wait on each arXiv request. Defaults to 30. |
ARXIV_MAX_TOTAL_TIMEEnvironment variable | Overall seconds allowed for one tool call. Defaults to 50. |
ARXIV_MAX_RETRIESEnvironment variable | How many times to retry after a timeout or rate limit. Defaults to 2. |
What it can touch
It can read
- arXiv's public search, abstracts, HTML, PDFs and LaTeX
- Citation data from Semantic Scholar
It can change
- Saves papers, an index and your topic watches in the storage folder on your computer
Safer setup: It only reads public research. Point --storage-path at a folder you are happy to fill with papers.
Before you start
- uv (for uvx)
- A folder for downloaded papers
If it does not work
- A desktop client cannot find uvx
- Use the full path to uvx in the config, found with which uvx or where uvx.
- Newer tools such as the LaTeX readers are missing
- uvx keeps an old cached copy. Refresh it with uvx --refresh-package arxiv-mcp-server on Python 3.11, then restart your client.
- Downloads fail or time out
- arXiv throttles busy IP addresses. Wait a little, or raise ARXIV_MAX_TOTAL_TIME and ARXIV_REQUEST_TIMEOUT.
- semantic_search or PDF conversion is unavailable
- They are optional extras. Install arxiv-mcp-server[pdf] for PDF conversion or arxiv-mcp-server[pro] for local semantic search.
Peas in a pod: similar servers
How arXiv MCP Server lines up against other knowledge and work apps servers on the shelf.
| Server | Tools | Runs on | Licence | Stars |
|---|---|---|---|---|
| arXiv MCP Server | 19 | Your computer | Apache-2.0 | 3.2K |
| Notion | 24 | Your computer or hosted | MIT | 4.7K |
| MCP Atlassian (Jira and Confluence) | 98 | Your computer | – | 6K |
| Basic Memory | 27 | Your computer | AGPL-3.0-or-later | 4.4K |
| LinkedIn MCP Server | 20 | Your computer | Apache-2.0 | 4K |
Questions
Is it just a search wrapper?
No. Beyond search it downloads, stores and indexes papers, reads them section by section, follows citations and watches topics for new work.
Does it need an API key?
No. arXiv and Semantic Scholar are used without keys.
Can it make my bibliography?
Yes. export_citations writes BibTeX from arXiv's records rather than letting the model guess details.
What licence is it?
Apache 2.0.
Something wrong on this page? Tell us.