arXiv Reader MCP
Search and retrieve papers from arXiv, including full-text PDF extraction, with tools for searching by keyword/author/category, fetching metadata, and downloading PDFs.
MCP server for searching and retrieving papers from arXiv, including full-text PDF extraction.
Features
search_arxiv: Search papers by keyword, author, category, and/or date range
search_papers: Quick search by query text with optional category and date filters
get_paper: Fetch full metadata (title, authors, abstract, PDF link) for a specific arXiv ID
get_recent: Get the most recent papers in a given category
fetch_pdf: Download and extract full text from a paper's PDF by arXiv ID
Related MCP server: arXiv MCP Server
Available Tools
Tool | Inputs | Returns |
|
| Numbered list of papers with title, ID, authors, date, PDF link |
|
| Numbered list of matching papers with title, ID, authors, date, PDF link |
|
| Title, ID, authors, published date, abstract, PDF URL |
|
| Numbered list of recent papers with title, ID, authors, date, PDF link |
|
| Full extracted text content of the paper PDF |
Usage
Clone and run
git clone https://github.com/younesbensafia/arxiv-mcp-server
cd arxiv-mcp-server
uv run arxiv-mcp-serverTest with MCP Inspector
Run the server:
uv run arxiv-mcp-serverOpen MCP Inspector or run
npx @modelcontextprotocol/inspectorSet transport to STDIO
Command:
uvArgs:
run arxiv-mcp-serverWorking directory: path to this repo
Click Connect -- all tools appear on the left
Connect to Claude.ai
Add to your MCP settings:
{
"mcpServers": {
"arxiv": {
"command": "uv",
"args": ["run", "--directory", "/path/to/arxiv-mcp-server", "arxiv-mcp-server"]
}
}
}arXiv Category Codes
Code | Area |
| Artificial Intelligence |
| Computation and Language |
| Computer Vision and Pattern Recognition |
| Information Retrieval |
| Machine Learning |
| Neural and Evolutionary Computing |
| Software Engineering |
| Audio and Speech Processing |
| Statistics Theory |
| Chemical Physics |
| Optics |
| Biomolecules |
| Statistical Finance |
| Quantum Physics |
| Machine Learning (Statistics) |
| Statistics Theory |
Full list at arxiv.org/category_taxonomy.
Examples
Ask Claude (or any MCP-compatible assistant):
"Find the latest papers on RAG from the last 3 months"
"Summarise arxiv paper 2301.07041"
"What are the most recent cs.LG papers today?"
"Find all papers by Andrej Karpathy"
"Read the full text of 1706.03762 and explain the methodology"
Don't have an MCP-compatible client? Try Claude Code or the MCP Inspector with
uv run arxiv-mcp-server.
Demo
search_papers
get_paper
fetch_pdf
Contributing
See CONTRIBUTING.md.
Available Tools
5 toolsfetch_pdfA
Download the PDF for a given arXiv ID and extract its full text content, including tables formatted as markdown. Tables are extracted from the best available source: ar5iv.org HTML → LaTeX source → PDF/Camelot. Use when the user needs to read the full paper text, not just the abstract. The arXiv ID is required (e.g. 2301.07041).
| Name | Required | Description | Default |
|---|---|---|---|
| arxiv_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries full burden. It discloses table extraction sources and fallback order, and clarifies that the tool extracts full text content.
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 concise with three sentences, each adding essential information. It is front-loaded with the main action, followed by extraction details and usage guidance.
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 has one required parameter and an output schema likely describes return format, the description covers purpose, usage, parameter example, and extraction details, making it complete.
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 schema has no parameter description, so the description compensates by providing a format example ('e.g. 2301.07041') and stating the ID is required. It adds meaning beyond the schema.
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 downloads the PDF and extracts full text with tables formatted as markdown. It distinguishes itself from siblings by specifying it is for reading full paper text, not just the abstract.
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?
It explicitly says 'Use when the user needs to read the full paper text, not just the abstract,' providing clear context for use. However, it does not directly name sibling tools as alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_paperA
Fetch a single paper by its arXiv ID (e.g. 2301.07041). Use when the user provides a specific arXiv ID and wants full metadata including title, authors, publication date, abstract, and PDF link. IDs can be with or without version suffix (e.g. 2301.07041v2).
| Name | Required | Description | Default |
|---|---|---|---|
| arxiv_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It mentions that IDs can be with or without version suffix, which is helpful. It does not disclose error handling or rate limits, but for a simple read operation these are less critical. It lacks explicit mention of being read-only, but it's implied.
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?
Two sentences, no wasted words. Front-loaded with action and example. Every sentence adds value.
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 that an output schema exists (not shown but stated), the description doesn't need to explain return values. It covers tool purpose, usage context, and parameter formatting completely for a simple fetch operation.
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 coverage is 0%, so the description must compensate. It does so excellently by providing an example ID format (e.g. 2301.07041) and explaining the parameter's purpose (arxiv_id) including version suffix behavior.
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 it fetches a single paper by arXiv ID and lists the metadata returned (title, authors, etc.). It distinguishes itself from sibling tools like search_arxiv (search) and get_recent (recent papers) by focusing on a specific ID lookup.
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 says when to use: when the user provides a specific arXiv ID and wants full metadata. It does not explicitly state when not to use, but the context makes it clear that this is for individual paper retrieval, not for search or listing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_recentA
Get the most recent papers in a given category (e.g. cs.AI, quant-ph). Use when the user wants to see the latest submissions in a specific arXiv category, sorted by submission date (newest first). Ideal for 'what is new' style queries.
| Name | Required | Description | Default |
|---|---|---|---|
| category | 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?
No annotations provided, so description carries the burden. It discloses sorting behavior (by submission date, newest first) and gives example categories. However, it does not mention any limits, pagination, authentication, or rate limits. Adequate but not comprehensive.
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?
Two sentences, concise and front-loaded. Every sentence adds value: first states purpose, second gives usage guidance. No wasted words.
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 simple retrieval tool with 2 params, the description is mostly complete. It covers the main purpose, sorting, and category examples. Minor gap: does not explain the 'max_results' parameter, but the default is visible in schema. Output schema exists, so return details are not needed.
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 coverage is 0%. Description provides examples for 'category' (e.g., cs.AI, quant-ph) which adds context. However, 'max_results' parameter is not explained, only a default is shown in schema. Partial improvement via category examples.
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 retrieves the most recent papers in a given arXiv category, sorted by submission date. It uses a specific verb ('Get') and resource ('recent papers'), and distinguishes from sibling tools by focusing on recency and sorting.
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?
Explicitly states when to use ('when the user wants to see the latest submissions', 'Ideal for 'what is new''). Does not explicitly exclude other use cases or mention alternatives, but the context of sibling tools implies its niche.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_arxivA
Search arXiv papers by keyword, author, category, and/or date range. Use when the user wants to find papers matching specific terms, by a specific author, in a specific category, or within a date range. Supports Boolean-like searches via keyword. Returns a numbered list with title, arXiv ID, authors, publication date, and PDF link.
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | No | ||
| author | No | ||
| category | No | ||
| date_from | No | ||
| date_to | No | ||
| max_results | No | ||
| start | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It mentions 'Supports Boolean-like searches via keyword' but does not disclose behavior like pagination, error handling, or any side effects. The behavioral transparency is moderate.
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 concise with three sentences, front-loading the main action. No superfluous text.
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?
With 7 parameters and an output schema, the description explains the return format (numbered list with fields) but lacks details on parameter usage like 'start' and 'max_results' defaults. It is moderately complete given the output schema exists.
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 coverage is 0%, so the description must compensate. It mentions keyword, author, category, and date range but does not explain parameters like 'start', 'max_results', or the exact format for dates. The description adds some meaning but is incomplete for all 7 parameters.
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 searches arXiv papers by various criteria like keyword, author, category, and date range. It specifies the resource and filtering options. However, it does not differentiate from the sibling tool 'search_papers', which likely has overlapping functionality.
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 says 'Use when the user wants to find papers...' providing clear usage context. It does not mention when not to use or alternatives, but the guidance is sufficient for correct invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_papersA
Search papers by query text, with optional category filter and date range. Simpler than search_arxiv - just a search query plus optional category and date_from. Use when the user provides a natural language query like 'papers about transformers' and optionally a category or start date. The query searches across all fields (title, abstract, authors).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| category | No | ||
| max_results | No | ||
| date_from | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses search scope (all fields) and hints at simplicity relative to search_arxiv, but omits behaviors like pagination, sorting, or error handling. Adequate but not comprehensive.
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?
Three sentences, well-structured with purpose first. Efficient but could be slightly more concise by omitting redundant clarifications like 'just a search query plus...'.
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?
Despite having an output schema, description covers only 3 of 4 parameters, missing max_results entirely. No guidance on category values or date_from format. The tool has moderate complexity (4 params) but description leaves significant gaps.
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%, yet description only adds meaning for query, category, and date_from. It fails to explain max_results parameter or the expected format for date_from (e.g., YYYY-MM-DD). Parameter semantics are incomplete.
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 'Search papers by query text, with optional category filter and date range' and mentions it searches across all fields. It distinguishes itself from search_arxiv, providing a specific verb and resource.
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?
Explicitly tells when to use: 'Use when the user provides a natural language query like...' and contrasts with search_arxiv. This gives clear context for selecting this tool over siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
v0.1.0- First observed
fetch_pdf - First observed
get_paper - First observed
get_recent - First observed
search_arxiv - First observed
search_papers
TDQS
Scored across 5 tools
Most tools have distinct purposes: fetching PDFs, getting metadata, recent papers, and two search tools. However, search_arxiv and search_papers overlap in their search functionality; while they differ in complexity and parameters, an agent might be uncertain which to use for a given query.
All tool names follow a consistent verb_noun pattern (fetch_pdf, get_paper, get_recent, search_arxiv, search_papers) using snake_case, making the set predictable and easy to understand.
Five tools is well-scoped for a server focused on arXiv papers, covering key operations without being excessive or too sparse.
The tool set covers all major arXiv interactions: retrieving metadata, searching, fetching recent papers, and downloading PDFs with extracted text. No obvious gaps for common user requests.
Maintenance
Related MCP Connectors
Search arXiv/Semantic Scholar/OpenAlex + medical evidence (PubMed/Europe PMC) + LaTeX/PDF tools.
Search arXiv, fetch paper metadata, and read full-text content.
Find academic papers across major sources like arXiv, PubMed, bioRxiv, and more. Download PDFs whe…
Discover the latest arXiv papers by category and keyword. Control how many results you get to spee…
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables searching and retrieving academic papers from arXiv by various criteria including title, author, and category, with support for extracting full text content from PDFs.4MIT
- AlicenseAqualityBmaintenanceEnables searching and retrieving academic papers from arXiv with support for advanced filtering by author, category, and date, plus full paper content extraction.614MIT
- AlicenseNot gradedqualityCmaintenanceEnables natural language search and analysis of arXiv academic papers with AI-powered relevance ranking, full-text extraction, and support for multiple integrations like Claude and LangChain.MIT
- AlicenseNot gradedqualityCmaintenanceEnables agents to search, analyze, and explore arXiv academic papers with advanced multi-field search, author lookup, category browsing, citation extraction, and bibliography export.26Apache 2.0