arxiv-smart-mcp
MCP server for searching and reading arXiv papers from AI assistants, with built-in rate limiting to avoid API blocks.
README
arXiv MCP Server and Rate Limiting Proxy
MCP server for searching and reading arXiv papers from AI assistants — self-rate-limited to avoid getting blocked by the arXiv API.
Why not a simple MCP server?
The arXiv API enforces strict rate limits. If you exceed them, your IP gets blocked. A naive MCP server that calls the arXiv API directly has no way to throttle requests — and AI agents tend to fire many requests in quick succession.
This project solves that by routing all requests through a local FastAPI proxy that enforces rate limiting automatically. Your AI assistant can call as many tools as it wants without getting banned.
AI assistant → MCP server → FastAPI proxy (rate-limited) → arXiv API
Tools
When connected, your AI agent gets access to these tools:
- search_papers — search arXiv by query with sorting options
- get_paper — get full metadata for a paper by arXiv ID
- download_pdf — download a paper's PDF
- get_paper_html — get the HTML rendering from ar5iv
- get_paper_markdown — get a markdown conversion of the paper
Setup
Prerequisites: Python 3.12+, uv, just
1. Initialize and start the proxy
just init
just start
The proxy must be running for the MCP tools to work. The MCP server connects to the proxy on http://127.0.0.1:7171 by default.
2. Connect the MCP server
Paste this to your AI assistant and ask it to add this MCP server:
{
"mcpServers": {
"arxiv-smart": {
"command": "npx",
"args": ["tsx", "mcp/arxiv-smart.ts"],
"cwd": "/path/to/arxiv-smart-mcp"
}
}
}
Replace /path/to/arxiv-smart-mcp with the actual path to this repository.
Configuration
The proxy is configured via config.yaml, which is created from config.yaml.template during just init. Key settings:
- port — proxy listen port (default: 7171)
- rate_limit_seconds — minimum interval between arXiv API calls (default: 3.0)
- request_timeout_seconds — timeout for arXiv API requests (default: 30.0)
If you change the port, set the REST_BASE environment variable in your MCP config so the MCP server can find the proxy:
{
"mcpServers": {
"arxiv-smart": {
"command": "npx",
"args": ["tsx", "mcp/arxiv-smart.ts"],
"cwd": "/path/to/arxiv-smart-mcp",
"env": {
"REST_BASE": "http://127.0.0.1:7171"
}
}
}
}
License
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.