mcp-simple-arxiv
The mcp-simple-arxiv server provides access to arXiv papers through its API, enabling:
Search for papers: Search by title, abstract, author, or category using advanced syntax (e.g.,
ti:"neural networks" AND cat:cs.AI)Get paper details: Retrieve information about specific papers, including title, authors, abstract, and links to PDF/HTML formats
List categories: View available arXiv categories for use in search queries
Update categories: Fetch the latest arXiv category taxonomy from arxiv.org
Provides access to scientific papers on arXiv through their API, allowing users to search for papers by title and abstract content, retrieve paper metadata and abstracts, access links to available paper formats (PDF/HTML), and explore arXiv categories.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-simple-arxivsearch for recent papers on quantum computing"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-simple-arxiv
An MCP server that provides access to arXiv papers through their API.
Features
This server allows LLM clients (like Claude Desktop) to:
Search for scientific papers on arXiv by title and abstract content
Filter search results by submission date range
Control search result sorting (by submission date, update date, or relevance)
See total matching results count to gauge search specificity
Get paper metadata and abstracts
Retrieve full paper text as Markdown (converted from PDF)
Access links to available paper formats (PDF/HTML)
Browse and search arXiv subject categories
To use the web version just add this connector to Claude.ai https://mcp.andybrandt.net/arxiv . You can also install & use it locally.
Related MCP server: Research Paper Agent
Installation and Deployment
This server can be run in two modes: as a local stdio server for desktop clients or as a network-accessible web server.
Installing via Smithery
To install Simple Arxiv for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install mcp-simple-arxiv --client claudeManual Installation
pip install mcp-simple-arxivUsage with Claude Desktop
Add this configuration to your claude_desktop_config.json:
(Mac OS)
{
"mcpServers": {
"simple-arxiv": {
"command": "python",
"args": ["-m", "mcp_simple_arxiv"]
}
}
}(Windows version):
{
"mcpServers": {
"simple-arxiv": {
"command": "C:\\Users\\YOUR_USERNAME\\AppData\\Local\\Programs\\Python\\Python311\\python.exe",
"args": [
"-m",
"mcp_simple_arxiv"
]
}
}
}After restarting Claude Desktop, the following capabilities will be available:
Searching Papers
You can ask Claude to search for papers using queries like:
Can you search arXiv for recent papers about large language models?The LLM can sort results by submission date, update date, or relevance:
Search arXiv for papers about transformers, sorted by relevance.Date filtering lets you focus on specific time periods:
Find papers about quantum computing published in 2024.
Search for recent machine learning papers from the last 6 months.Search results include:
Total number of matching papers (e.g., "Found 15,234 total results, showing first 10")
Paper title, authors, and arXiv ID
Categories (primary and additional)
Publication date
Abstract preview
Getting Paper Details
Once you have a paper ID, you can ask for more details:
Can you show me the details for paper 2103.08220?This will return:
Full paper title
Authors
Publication and update dates
Journal reference (if available)
Paper abstract
Links to available formats (PDF/HTML)
For web deployment see WEB_DEPLOYMENT.md.
Development
To install for development:
git clone https://github.com/andybrandt/mcp-simple-arxiv
cd mcp-simple-arxiv
pip install -e .arXiv API Guidelines
This server follows arXiv API usage guidelines:
Rate limiting to max 1 request per 3 seconds
Single connection at a time
Proper error handling and retry logic
License
MIT
Available Tools
4 toolsget_paper_dataGet arXiv Paper DataBRead-only
Get detailed information about a specific paper including abstract and available formats.
| Name | Required | Description | Default |
|---|---|---|---|
| paper_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, indicating a safe, read-only operation with open-world assumptions. The description adds some context by specifying the type of information retrieved ('abstract and available formats'), but does not disclose additional behavioral traits like rate limits, error handling, or authentication needs. No contradiction with annotations exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence: 'Get detailed information about a specific paper including abstract and available formats.' It is front-loaded with the core purpose and includes key details without unnecessary words, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (one parameter) and the presence of annotations (readOnlyHint, openWorldHint) and an output schema (which handles return values), the description is reasonably complete. It specifies the information retrieved, but lacks usage guidelines and parameter details, which are minor gaps in this context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the parameter 'paper_id' is undocumented in the schema. The description does not add any semantic details about this parameter, such as expected format (e.g., arXiv ID like '2401.12345') or examples. With one parameter and no schema documentation, the description fails to compensate, resulting in a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get detailed information about a specific paper including abstract and available formats.' It specifies the verb ('Get'), resource ('paper'), and scope ('detailed information'), but does not explicitly differentiate it from sibling tools like 'search_papers' or 'list_categories', which prevents a score of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention sibling tools like 'search_papers' for broader searches or 'list_categories' for category listings, nor does it specify prerequisites or exclusions, such as requiring a specific paper ID format.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_categoriesList arXiv CategoriesARead-only
List all available arXiv categories and how to use them in search.
| Name | Required | Description | Default |
|---|---|---|---|
| primary_category | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, indicating this is a safe read operation with a closed set of results. The description adds that it lists categories and how to use them in search, which provides some behavioral context beyond annotations, but doesn't detail aspects like response format, pagination, or error handling. No contradiction with annotations exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that efficiently conveys the core purpose and an additional use case ('how to use them in search'). It's front-loaded with the main action and avoids unnecessary words, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (read-only, 1 optional parameter), annotations covering safety, and the presence of an output schema (which handles return values), the description is mostly complete. It explains what the tool does and adds search usage context. However, it misses explaining the optional parameter, which is a minor gap in an otherwise adequate description for this context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage and 1 parameter, the description carries the burden of explaining parameters. It doesn't mention the 'primary_category' parameter at all, which is a gap. However, since there's only one optional parameter with a default null value, and the tool likely functions without it (listing all categories), the description's omission is less critical. Baseline for 0 parameters would be 4, but with 1 undocumented parameter, it's slightly penalized.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List all available arXiv categories') and the resource ('arXiv categories'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'update_categories' or 'search_papers', which would require a 5. The phrase 'and how to use them in search' adds useful context but doesn't fully distinguish it from alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'search_papers' or 'update_categories'. It mentions 'how to use them in search' which implies a connection to searching, but doesn't specify if this should be used before searching, for filtering, or as a reference. No explicit when/when-not instructions or named alternatives are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_papersSearch arXiv PapersARead-only
Search for papers on arXiv by title and abstract content.
You can use advanced search syntax:
Search in title: ti:"search terms"
Search in abstract: abs:"search terms"
Search by author: au:"author name"
Combine terms with: AND, OR, ANDNOT
Filter by category: cat:cs.AI (use list_categories tool to see available categories)
Examples:
"machine learning" (searches all fields)
ti:"neural networks" AND cat:cs.AI (title with category)
au:bengio AND ti:"deep learning" (author and title)
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| max_results | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and openWorldHint=true, indicating a safe, read-only operation with open-world data. The description adds valuable behavioral context beyond annotations by detailing advanced search syntax, examples, and the ability to filter by category, which helps the agent understand how to construct effective queries. However, it does not mention rate limits, pagination, or error handling, leaving some behavioral aspects uncovered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded with the core purpose, followed by syntax details and examples. Every sentence earns its place by providing essential information without redundancy, making it efficient and easy to parse for an AI agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (search with advanced syntax), low schema coverage (0%), and the presence of an output schema (which handles return values), the description is complete enough. It covers purpose, usage, parameters, and examples, leaving no critical gaps for the agent to operate effectively in context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, so the description fully compensates by explaining the semantics of the 'query' parameter in detail (e.g., advanced syntax, examples) and implies the use of 'max_results' through examples like limiting results. It adds significant meaning beyond the bare schema, making parameter usage clear and actionable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Search for papers on arXiv') and resource ('by title and abstract content'), distinguishing it from sibling tools like 'get_paper_data' (likely for retrieving specific papers), 'list_categories' (for listing categories), and 'update_categories' (for updating categories). It provides a verb+resource+scope combination that is precise and differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides usage guidance by naming an alternative tool ('use list_categories tool to see available categories') and includes examples that illustrate when to use specific syntax (e.g., for title, abstract, author, category filtering). It effectively guides the agent on how to apply the tool in different contexts without being misleading.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_categoriesUpdate arXiv CategoriesA
Update the stored category taxonomy by fetching the latest version from arxiv.org
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=false (indicating mutation) and openWorldHint=true (suggesting external data fetching). The description adds valuable behavioral context: it specifies that this tool fetches from arxiv.org (external source) and updates stored data. This goes beyond annotations by revealing the external dependency and the 'fetch-and-update' nature of the operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that efficiently conveys the entire operation: action (update), target (stored category taxonomy), method (fetching), and source (arxiv.org). No wasted words, perfectly front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless tool with annotations covering mutation/external access and an output schema present, the description provides exactly what's needed: it explains what the tool does, where it gets data, and what it updates. The presence of an output schema means return values don't need explanation in the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage (empty schema). The description doesn't need to explain parameters, but it implicitly confirms there are no required inputs by describing a self-contained fetch operation. This is appropriate for a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('update'), the resource ('stored category taxonomy'), and the source ('fetching the latest version from arxiv.org'). It distinguishes from siblings like 'list_categories' (which presumably reads existing data) and 'get_paper_data'/'search_papers' (which work with papers rather than taxonomy).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context: when you need to refresh the locally stored taxonomy with the latest from arxiv.org. It doesn't explicitly state when NOT to use it or name alternatives, but the context is clear enough for an agent to infer this is for maintenance/update operations rather than regular queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose: get_paper_data retrieves specific paper details, list_categories shows available categories, search_papers performs searches, and update_categories refreshes category data. There is no overlap in functionality that would cause confusion.
All tools follow a consistent verb_noun naming pattern (get_paper_data, list_categories, search_papers, update_categories). The naming is uniform and predictable throughout the set.
With 4 tools, this server is well-scoped for arXiv paper access. Each tool serves a clear purpose (retrieval, listing, searching, updating) without being too sparse or bloated, making it efficient for the domain.
The tools cover core arXiv operations: searching, retrieving paper details, and managing categories. A minor gap is the lack of tools for downloading papers or handling user-specific features like saved papers, but the basic workflow is well-supported.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Academic research MCP server for paper search, citation checks, graphs, and deep research.
An MCP server that provides congressional transcripts
An MCP server that gives your AI access to the source code and docs of all public github repos
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceThis MCP server enables users to search for scientific papers on arXiv and retrieve detailed metadata for specific papers. It provides tools to perform search queries and fetch in-depth information using paper IDs.3Apache 2.0
- FlicenseNot gradedqualityDmaintenanceA remote MCP server for searching arXiv papers, extracting paper details, and generating structured prompts for LLM agents.1
- FlicenseAqualityDmaintenanceA streamlined MCP server that connects AI assistants to arXiv's vast collection of academic papers, enabling search, retrieval, and analysis of research papers.71
- AlicenseAqualityBmaintenanceMCP server for searching and retrieving arXiv papers with full-text PDF extraction.52MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/andybrandt/mcp-simple-arxiv'
If you have feedback or need assistance with the MCP directory API, please join our Discord server