A local MCP server for agent literature work. The differentiator is original-LaTeX section reads, BibTeX from arXiv metadata, and topic watches. Papers stay on disk. The working loop is paper ID → outline → one section → citations. Search is optional.
> /plugin marketplace add blazickjp/arxiv-mcp-server> /plugin install arxiv-mcp-server@arxiv-mcp
Repo: blazickjp/arxiv-mcp-server
What's inside
A local MCP server for agent literature work. The differentiator is original-LaTeX section reads, BibTeX from arXiv metadata, and topic watches. Papers stay on disk. The working loop is paper ID → outline → one section → citations. Search is optional.
The default install is uvx arxiv-mcp-server. Command-based integrations need uv, which provides uvx. No repository clone or Python environment setup is required.
uvx arxiv-mcp-server
Add this stdio configuration to clients that accept the mcpServers JSON shape, such as Claude Desktop and Kiro. Other clients may use a top-level servers object, TOML, or their own settings UI; consult the client's MCP documentation.
{
"mcpServers": {
"arxiv": {
"type": "stdio",
"command": "uvx",
"args": ["arxiv-mcp-server"]
}
}
}
The default paper directory is ~/.arxiv-mcp-server/papers. To choose another directory, append "--storage-path", "/absolute/path/to/papers" to args.
The supported package is published on PyPI as arxiv-mcp-server==0.7.2. An unrelated npm package uses the same name, so do not install this server with npm, pnpm, or npx arxiv-mcp-server.
Listed on the official MCP registry, latest 0.7.2.
Search, source retrieval, citation graphs, and downloads call their respective external services. What stays local is the literature loop: read author-submitted LaTeX one section at a time, export BibTeX from authoritative arXiv metadata, and keep topic watches on disk. The server runs locally over stdio by default.
Use the default JSON above unless your client has a one-line helper.
Add the MCP server for all projects:
claude mcp add --transport stdio --scope user arxiv -- uvx arxiv-mcp-server
For the richer plugin integration—which installs the MCP connection plus the bundled arXiv research skill—register this repository as a marketplace and install the plugin:
claude plugin marketplace add blazickjp/arxiv-mcp-server
claude plugin install arxiv-mcp-server@arxiv-mcp
Verify the direct MCP installation with claude mcp get arxiv. Restart Claude Code or run /reload-plugins after installing the plugin.
Add the MCP server:
codex mcp add arxiv -- uvx arxiv-mcp-server
Or install the MCP connection and bundled research skill as a Codex plugin:
codex plugin marketplace add blazickjp/arxiv-mcp-server
codex plugin add arxiv-mcp-server@arxiv-mcp
Verify the direct MCP installation with codex mcp get arxiv. Codex CLI, the Codex IDE extension, and Codex in the ChatGPT desktop app share this MCP configuration.
Add the server, approve the discovered tools, and test the saved connection:
hermes mcp add arxiv --command uvx --args arxiv-mcp-server
hermes mcp test arxiv
For the richer Kiro Power integration, open the Powers panel, choose Add Custom Power → Import power from GitHub, and enter:
https://github.com/blazickjp/arxiv-mcp-server
The Power installs the MCP connection from mcp.json and adds focused arXiv research guidance. Kiro users who prefer manual configuration can place the generic configuration above in .kiro/settings/mcp.json for one workspace or ~/.kiro/settings/mcp.json for all workspaces.
macOS users can install a bundled .mcpb extension from the v0.7.2 release or the latest GitHub release:
arxiv-mcp-server-darwin-arm64-0.7.2.mcpbarxiv-mcp-server-darwin-x86_64-0.7.2.mcpbDouble-click the bundle, drag it into Claude Desktop, or open Settings → Extensions → Advanced settings → Install Extension…. The bundle includes the server dependencies and requires CPython 3.11.x.
Other clients may use a top-level servers object, TOML, or their own settings UI; consult the client MCP documentation. Direct MCP installation is the shortest path. Install a plugin when you also want the research workflow that steers the client toward focused searches, bounded reads, citation traversal, and section-level LaTeX retrieval.
The same MCP server and research skill are packaged for both major plugin systems:
| Integration | Manifest | Marketplace |
|---|---|---|
| Claude Code | .claude-plugin/plugin.json | .claude-plugin/marketplace.json |
| OpenAI Codex / ChatGPT Work | .codex-plugin/plugin.json | .agents/plugins/marketplace.json |
| Kiro Power | POWER.md | mcp.json |
| Shared MCP launch | .mcp.json for Claude and repository-local clients; .codex-mcp.json for Codex plugins | uvx arxiv-mcp-server |
| Shared research workflow | skills/arxiv-mcp-server/SKILL.md | Installed with either plugin |
uvxDesktop applications do not always inherit the same PATH as your terminal. If uvx arxiv-mcp-server works in a terminal but the client reports that the server failed to connect, find the executable's absolute path:
# macOS and Linux
command -v uvx
# Windows PowerShell
(Get-Command uvx).Source
Replace "command": "uvx" with the returned absolute path, then restart the client. Keep the args value unchanged.
uvx reuses cached tool environments. Force it to resolve the current PyPI release with a supported interpreter, then restart your MCP client:
uvx --python 3.11 --refresh-package arxiv-mcp-server arxiv-mcp-server
If your client still launches an older environment, add "--python", "3.11" before "arxiv-mcp-server" in its args array.
To place arxiv-mcp-server on your PATH instead of launching it through uvx:
uv tool install arxiv-mcp-server
If the command is not immediately available, run uv tool update-shell and restart the terminal. Afterward, use "command": "arxiv-mcp-server" and omit the package name from args.
The server currently exposes 19 tools.
| Tool | Purpose | Notes |
|---|---|---|
search_papers | Search arXiv by query, category, date, and sort order | Default ≤5 compact results (abstract_mode=snippet); remote arXiv API |
get_abstract | Fetch metadata and an abstract by arXiv ID | Does not download the paper |
download_paper | Download and convert a paper to local Markdown | HTML first; PDF fallback uses [pdf]; force=true re-fetches; content bounded to 12,000 chars by default |
list_papers | List papers stored locally | Returns id, title, authors, published; compact for IDs only |
read_paper | Read locally stored paper content | Bounded to 12,000 chars by default; supports start/max_chars/return_full_text |
get_paper_outline | Paginated markdown heading outline | Stable hierarchical section IDs |
read_paper_section | Read one bounded markdown section | By outline ID or unique title |
search_paper_text | Bounded passage search in a paper | Source offsets; no Torch required |
get_paper_latex | Retrieve bounded author-submitted LaTeX | Remote arXiv source archive |
list_paper_latex_sections | Return a paginated LaTeX outline | Supports start and max_sections |
get_paper_latex_section | Read one bounded LaTeX section | Select by outline ID or exact title |
citation_graph | Fetch references and citing papers | Remote Semantic Scholar API (1 call per paper, cached on disk); optional free API key improves reliability |
export_citations | Export BibTeX for one or more arXiv IDs | Authoritative arXiv metadata |
watch_topic | Save or update an arXiv topic watch | Stored locally; omit categories to preserve on update, categories: [] to clear |
list_watches | List saved topic watches | Read-only; does not advance last_checked |
check_alerts | Check saved watches for new papers | Returns papers since the last check |
unwatch_topic | Delete a saved topic watch | Exact topic match; not-found if missing |
semantic_search | Search downloaded papers by semantic similarity | Requires [pro] |
reindex | Rebuild the local semantic index | Requires [pro] |
watch_topic)FAQ
arxiv-mcp-server is a Claude Code plugin with 1 hand-picked skill for data work, indexed on Flowy. Install it with the command on its page. It includes arxiv-mcp-server. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.
Is this plugin yours?
Claim it with GitHubSubmit a pluginPromote it