Research Papers MCP Server
Allows searching and retrieving academic papers from the arXiv repository, including tools for general search, author search, category browsing, and paper lookup by ID.
Click on "Deploy 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., "@Research Papers MCP ServerSearch for papers on large language models."
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.
Research Papers MCP Server
This project is a Model Context Protocol (MCP) server written in Python that acts as an intelligent interface to academic paper repositories, particularly the arXiv API. It allows Large Language Models (LLMs) like Claude to search for and retrieve academic papers.
Features
This server exposes a suite of tools to the LLM, enabling it to:
search_papers: Perform a general topic search for papers from sources like arXiv.find_papers_by_author: Find recent papers by a specific author from sources like arXiv.get_latest_from_category: Browse the newest submissions in a given arXiv category (e.g.,cs.LG).get_paper_by_id: Get full details for a single paper by its arXiv ID.get_papers_by_ids: Efficiently get details for a list of papers by their arXiv IDs.
Related MCP server: arXiv MCP Server
Requirements
Python 3.10+
uv (for environment and package management)
An MCP Host like Claude for Desktop
Setup and Installation
Installing via Smithery
To install this research papers MCP server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @candenizkocak/research-papers-mcp-server --client claudeManual Installation
Clone the repository:
git clone https://github.com/candenizkocak/research-papers-mcp-server.git research-papers-mcp-server cd research-papers-mcp-serverCreate a virtual environment and install dependencies:
uv venv source .venv/bin/activate # On Windows, use .venv\Scripts\activate uv sync(Note:
uv syncwill install dependencies from thepyproject.tomlfile).
Usage with Claude for Desktop
Find the absolute path to your
research-papers-mcp-serverdirectory.Open your Claude for Desktop configuration file (
claude_desktop_config.json):macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
Add the server configuration, replacing the placeholder with your absolute path:
{ "mcpServers": { "research-papers": { "command": "uv", "args": [ "--directory", "/ABSOLUTE/PATH/TO/research-papers-mcp-server", "run", "arxiv_server.py" ] } } }Completely restart Claude for Desktop.
Example Prompts
General Search: "Find papers about 'mixture of experts models'."
Author Search: "What are the most recent papers by Geoffrey Hinton?"
Category Search: "What's new in the cs.LG category on arXiv?"
Single ID Lookup: "Tell me about arXiv paper 1706.03762."
Multiple ID Lookup: "Give me details for papers 2307.09288 and 2203.02155."
Acknowledgements
Thank you to arXiv for use of its open access interoperability.
Compliance Notes
Developers and users of this project are responsible for familiarizing themselves with the official arXiv API Terms of Use, API Basics, and API User Manual to ensure full compliance with arXiv's policies, including any rate limits or usage restrictions.
Available Tools
5 toolsfind_papers_by_authorA
Finds recent academic papers by a specific author's name from sources like arXiv. Args: author_name: The full name of the author to search for (e.g., "Geoffrey Hinton"). max_results: Max number of papers to return.
| Name | Required | Description | Default |
|---|---|---|---|
| author_name | Yes | ||
| max_results | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It mentions 'recent' and 'sources like arXiv,' but fails to disclose search match behavior, rate limits, error handling, or return format. This is minimal behavioral disclosure for a search tool.
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 front-loaded with a concise, actionable sentence followed by a tight args list. Every word earns its place; no extraneous content.
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?
The tool is simple (2 params, no output schema), but the description omits return value details and usage guidance relative to sibling tools. Given no annotations and no output schema, the lack of behavioral and return information makes it slightly incomplete, though usable.
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%, so the description must compensate. The 'Args' section fully explains both parameters: author_name with an example ('Geoffrey Hinton') and max_results with its default. This adds clear 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 'Finds recent academic papers by a specific author's name from sources like arXiv,' using a specific verb and resource. It distinctively positions this tool as author-based lookup, differentiating it from siblings like search_papers and get_paper_by_id.
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 for author-based paper searches but does not explicitly contrast with sibling tools such as search_papers or get_latest_from_category. It lacks when-not-to-use guidance, so it only provides implied usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_latest_from_categoryA
Gets the most recently submitted papers from a specific arXiv category. Args: category: The category code to search (e.g., 'cs.LG', 'astro-ph.CO'). max_results: Max number of papers to return.
| Name | Required | Description | Default |
|---|---|---|---|
| category | Yes | ||
| max_results | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It only states the basic action and parameters, without disclosing return format, rate limits, whether it's read-only, or any other behavioral traits. This is a notable gap.
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 and front-loaded with the main purpose, followed by an efficient parameter list. Every sentence adds value with no fluff.
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?
The tool is simple with only two parameters, and the description covers the args well. However, there is no output schema and the description does not mention what the return value looks like, leaving some gaps for the agent.
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 description fully explains both parameters with useful details: 'category' includes an example code, and 'max_results' is defined as the maximum number of papers. Since the schema has no descriptions, this fully compensates for the 0% coverage.
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 function with a specific verb and resource: 'Gets the most recently submitted papers from a specific arXiv category.' It distinguishes from siblings by focusing on category-based retrieval of recent papers.
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 when you need the latest papers from a specific arXiv category, but it does not explicitly compare with sibling tools or provide exclusion criteria. It is clear enough but lacks explicit alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_paper_by_idB
Retrieves full details for a single paper using its arXiv ID.
| Name | Required | Description | Default |
|---|---|---|---|
| arxiv_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only says 'retrieves full details' without specifying what 'full details' means, how errors are handled, or any permissions/rate limits. This is a significant gap for a tool with zero annotation coverage.
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 with no wasteful words. It is appropriately brief for a simple tool, though it could be slightly expanded with useful details while maintaining conciseness.
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 one-parameter retrieval tool with no output schema and no annotations, the description is minimally adequate but leaves major gaps: it doesn't describe the return payload structure, behavior when the paper is not found, or any limitations. The phrase 'full details' is vague and incomplete.
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 a single parameter 'arxiv_id' with no description, and the description adds only 'using its arXiv ID', which essentially repeats the property name. It provides no format examples, constraints, or clarification on how the ID should be formatted (e.g., with or without the 'arXiv:' prefix).
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?
Clearly states the verb 'retrieves', the resource 'full details for a single paper', and the input method 'using its arXiv ID'. This differentiates it from sibling tools like get_papers_by_ids which handles multiple papers.
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 that this is the tool to use when you have a specific arXiv ID and want that paper's details, but it does not explicitly state when to use it over alternatives like search_papers or find_papers_by_author. No direct exclusions or alternative references are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_papers_by_idsA
Retrieves full details for a list of papers using their arXiv IDs from sources like arXiv. Args: arxiv_ids: A list of arXiv IDs (e.g., ['2307.09288', '1706.03762']).
| Name | Required | Description | Default |
|---|---|---|---|
| arxiv_ids | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility. It indicates a read operation ('Retrieves'), but provides no details about potential edge cases (e.g., invalid IDs, missing papers), rate limits, data source specifics ('from sources like arXiv' is vague), or the exact structure of the returned data.
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 exactly two sentences: the first sentence concisely states the primary purpose, and the second sentence provides a clear parameter definition with examples. No redundant or unnecessary 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?
The tool is simple (one parameter), but there is no output schema, and the description does not specify what 'full details' includes (e.g., fields, format) or how errors are handled. This is a gap for a tool that lacks output documentation, though the simplicity mitigates the impact.
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 only defines an array of strings without semantic meaning. The description compensates by explicitly identifying the parameter as arXiv IDs and giving concrete examples, making the parameter's purpose and format clear 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 states the verb 'Retrieves', the resource 'full details for a list of papers', and the method 'using their arXiv IDs'. It clearly distinguishes from the singular sibling 'get_paper_by_id' by specifying 'a list' and 'IDs'.
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 this tool is for fetching papers when a list of arXiv IDs is already known, but it does not explicitly compare with sibling tools like search_papers or get_paper_by_id, nor mention when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_papersA
General purpose search for academic papers from sources like arXiv. Best for complex queries. Args: query: Search query using arXiv syntax (e.g., 'ti:"quantum computing" AND au:"John Preskill"'). max_results: Max number of papers to return. sort_by: Sort order ('relevance', 'lastUpdatedDate', 'submittedDate'). sort_order: Sort direction ('ascending', 'descending').
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| sort_by | No | submittedDate | |
| sort_order | No | descending | |
| max_results | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the arXiv-specific query syntax with an example, explains sort fields and directions, and notes the source. This gives the agent useful behavioral context for constructing searches, though it doesn't describe return format or any edge cases like no results. It is substantial but not exhaustive.
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 and well-structured: a single-sentence overview followed by a clear bulleted list of parameters. Every sentence earns its place, with no filler or redundancy.
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 moderate complexity and the lack of annotations/output schema, the description provides essential context: the source (arXiv), query syntax, and parameter semantics. It doesn't explain the return shape, but the function name and sibling context make 'search' behavior predictable. Overall, it is nearly complete for a search tool.
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 provides only types and defaults, leaving the meaning of parameters entirely to the description. The description explains the query parameter with detailed arXiv syntax and an example, and defines max_results, sort_by (with valid values), and sort_order (with valid directions). This fully compensates for the 0% schema coverage.
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 is a 'General purpose search for academic papers from sources like arXiv' and notes it's 'Best for complex queries.' This uses a specific verb ('search') and resource ('academic papers'), and the 'general purpose' contrast distinguishes it from specialized siblings like find_papers_by_author or get_latest_from_category.
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 phrase 'Best for complex queries' provides clear context for when to use this tool, implying it's preferred over the more specialized sibling tools for complex or broad searches. However, it stops short of explicitly naming alternatives or stating when not to use it, so it doesn't fully meet the bar for explicit exclusions.
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
find_papers_by_author - First observed
get_latest_from_category - First observed
get_paper_by_id - First observed
get_papers_by_ids - First observed
search_papers
TDQS
Scored across 5 tools
Tools are mostly distinct: search, get by ID, get by author, get latest by category, and batch get by IDs. There is some overlap between search_papers and find_papers_by_author (since search can query by author), and between get_paper_by_id and get_papers_by_ids (single vs multiple), but descriptions help clarify the intended use.
Names follow a verb-first snake_case pattern (search, get, find). However, there is inconsistency in how the object is specified: some include 'papers' (search_papers, get_papers_by_ids), one uses the singular 'paper' (get_paper_by_id), and one omits the object entirely (get_latest_from_category). This minor variation is still readable and predictable.
With 5 tools, the set is well-scoped for a research paper retrieval server. Each tool addresses a distinct access pattern (search, single lookup, author lookup, category listing, batch retrieval) without unnecessary bloat.
The core retrieval needs are covered: general search, paper details, author-based lookup, category-based listing, and batch retrieval. Minor gaps exist, such as no way to list all papers in a category (only latest) or search by title specifically, but search_papers can work around these. Overall, the surface is reasonably complete for a read-only academic paper API.
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.
Search arXiv and ACL Anthology, retrieve citations and references, and browse web sources to accel…
Find academic papers across major sources like arXiv, PubMed, bioRxiv, and more. Download PDFs whe…
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables interaction with arXiv.org to search scholarly articles, retrieve metadata, download PDFs, and load article content directly into LLM context for analysis.53MIT
- 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
- AlicenseBqualityDmaintenanceEnables searching academic papers on arXiv and retrieving detailed information such as title, authors, summary, and PDF link.16MIT