Skip to main content
Glama

arXiv MCP Server

MCP Compatible Python License

A Model Context Protocol (MCP) server that enables interacting with the arXiv API using natural language.

Features

  • Retrieve metadata about scholarly articles hosted on arXiv.org

  • Download articles in PDF format to the local machine

  • Search arXiv database for a particular query

  • Retrieve articles and load them into a large language model (LLM) context

Related MCP server: Model Context Protocol Python Server

Tools

  • get_article_url

    • Retrieve the URL of an article hosted on arXiv.org based on its title

      • title (String): Article title

  • download_article

    • Download the article hosted on arXiv.org as a PDF file

      • title (String): Article title

  • load_article_to_context

    • Load the article hosted on arXiv.org into context of a LLM

      • title (String): Article title

  • get_details

    • Retrieve metadata of an article hosted on arXiv.org based on its title

      • title (String): Article title

  • search_arxiv

    • Performs a search query on the arXiv API based on specified parameters and returns matching article metadata

      • all_fields (String): General keyword search across all metadata fields

      • title (String): Keyword(s) to search for within the titles of articles

      • author (String): Author name(s) to filter results by

      • abstract (String): Keyword(s) to search for within article abstracts

      • start (int): Index of the first result to return

Setup

MacOS

Clone the repository

git clone https://github.com/prashalruchiranga/arxiv-mcp-server.git
cd arxiv-mcp-server

Install uv package manager. For more details on installing, visit the official uv documentation.

# Using Homebrew
brew install uv

# or
curl -LsSf https://astral.sh/uv/install.sh | sh

Create and activate virtual environment.

uv venv --python=python3.13
source .venv/bin/activate

Install development dependencies.

uv sync

Windows

Install uv package manager. For more details on installing, visit the official uv documentation.

# Use irm to download the script and execute it with iex
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

Close and reopen the shell, then clone the repository.

git clone https://github.com/prashalruchiranga/arxiv-mcp-server.git
cd arxiv-mcp-server

Create and activate virtual environment.

uv venv --python=python3.13
source .venv\Scripts\activate

Install development dependencies.

uv sync

Usage with Claude Desktop

To enable this integration, add the server configuration to your claude_desktop_config.json file. Make sure to create the file if it doesn’t exist.

On MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json On Windows: %APPDATA%/Roaming/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "arxiv-server": {
      "command": "uv",
      "args": [
        "--directory",
        "/ABSOLUTE/PATH/TO/PARENT/FOLDER/arxiv-mcp-server/src/arxiv_server",
        "run",
        "server.py"
      ],
      "env": {
        "DOWNLOAD_PATH": "/ABSOLUTE/PATH/TO/DOWNLOADS/FOLDER"
      }
    }
  }
}

You may need to put the full path to the uv executable in the command field. You can get this by running which uv on MacOS or where uv on Windows.

Example Prompts

Can you get the details of 'Reasoning to Learn from Latent Thoughts' paper?
Get the papers authored or co-authored by Yann Lecun on convolutional neural networks
Download the attention is all you need paper
Can you get the papers by Andrew NG which have 'convolutional neural networks' in title?
Can you display the paper?
List the titles of papers by Yann LeCun. Paginate through the API until there are 30 titles

License

Licensed under MIT. See the LICENSE.

Available Tools

5 tools
download_articleB

Download the article hosted on arXiv.org as a PDF file. This tool searches for the article based on its title, retrieves the article's PDF, and saves it to a specified download location using the arXiv ID as the filename.

Args: title: Article title.

Returns: Success or error message.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It describes the download and save behavior but lacks critical details: authentication requirements, rate limits, file size constraints, error handling specifics, or whether the operation is idempotent. The mention of 'arXiv ID as filename' is helpful but insufficient for comprehensive behavioral understanding.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded with the core functionality. The Args/Returns sections are clear but could be integrated more seamlessly. Every sentence contributes meaning, though the structure could be more fluid.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and minimal schema coverage, the description provides basic operational context but lacks sufficient detail for a robust tool. It explains what happens but not how it happens under different conditions, error scenarios, or performance characteristics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage and only 1 parameter, the description adds significant value by explaining that the 'title' parameter is used to search for the article. However, it doesn't clarify format expectations (exact match vs. partial), search behavior, or what happens with ambiguous titles.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verbs ('download', 'searches', 'retrieves', 'saves') and resources ('article hosted on arXiv.org', 'PDF file'). It distinguishes from siblings by specifying the full download process rather than just getting URLs or details.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 'get_article_url', 'search_arxiv', or 'load_article_to_context'. It doesn't mention prerequisites, limitations, or comparative use cases with sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_article_urlA

Retrieve the URL of an article hosted on arXiv.org based on its title. Use this tool only for retrieving the URL. This tool searches for the article based on its title, and then fetches the corresponding URL from arXiv.org.

Args: title: Article title.

Returns: URL that can be used to retrieve the article.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes

TDQS

A4.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses the behavioral process ('searches for the article based on its title, and then fetches the corresponding URL'), which is helpful. However, it lacks details on error handling, rate limits, or authentication needs, leaving some behavioral aspects unclear for a tool that interacts with an external service.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose, followed by usage guidelines and behavioral details, all in three concise sentences. The Args and Returns sections are structured and add necessary information without redundancy, making every sentence earn its place efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, 0% schema coverage, and no output schema, the description does well by explaining the tool's purpose, usage, process, and return value. However, it could be more complete by addressing potential issues like what happens if no article is found or if multiple matches exist, which are relevant for a search-based tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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. It adds meaningful context by explaining that the 'title' parameter is the 'Article title' used for searching, which clarifies its role beyond the bare schema. However, it doesn't specify format requirements (e.g., exact match vs. partial) or examples, leaving some ambiguity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Retrieve the URL'), resource ('article hosted on arXiv.org'), and mechanism ('based on its title'). It distinguishes this tool from siblings like download_article (which downloads content) and search_arxiv (which likely returns search results), making the purpose unambiguous and well-differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance: 'Use this tool only for retrieving the URL.' This clearly defines when to use it (for URL retrieval) and implies when not to use it (e.g., for downloading content, which is handled by download_article). It effectively distinguishes this tool from alternatives in the sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_detailsA

Retrieve information of an article hosted on arXiv.org based on its title. This tool searches for the article based on its title and retrieves arXiv ID, title, authors, link, direct PDF URL, published timestamp, last updated timestamp, and summary.

Args: title: Article title.

Returns: A JSON-formatted string containing article details if retrieval is successful; otherwise, a plain error message string.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses the tool's behavior (searches by title, returns JSON on success or error message on failure), but lacks details on error conditions, rate limits, authentication needs, or whether the search is exact or fuzzy.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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 clear sections for arguments and returns. Every sentence adds value without redundancy, making it efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (single parameter, no output schema, no annotations), the description is mostly complete. It covers purpose, usage, parameters, and return behavior, but could improve by addressing error specifics or search nuances for full completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaningful context beyond the schema, which has 0% coverage. It explains that the 'title' parameter is used to search for the article and retrieve its details, though it doesn't specify format expectations or search behavior (e.g., exact match, partial).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verb ('Retrieve information') and resource ('article hosted on arXiv.org'), and distinguishes it from siblings by specifying it searches by title and returns comprehensive metadata rather than downloading or loading content.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool (retrieving article details by title), but does not explicitly mention when not to use it or name specific alternatives among the sibling tools like search_arxiv or get_article_url.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

load_article_to_contextB

Load the article hosted on arXiv.org into context. This tool searches for the article based on its title, retrieves the article content, and loads text content into LLM context.

Args: title: Article title.

Returns: Article as a text string or error message.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden but provides minimal behavioral details. It mentions searching and retrieving content, but doesn't disclose error handling, rate limits, authentication needs, or what 'loads text content into LLM context' entails operationally. The return statement adds some value but remains vague.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and concise, with a clear purpose statement followed by Args and Returns sections. Each sentence adds value, though the return statement could be more specific about error conditions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and low schema coverage, the description is minimally adequate. It covers the basic purpose and parameter use but lacks details on behavioral traits, error handling, and output format beyond 'text string or error message', leaving gaps for a tool that interacts with an external service.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaningful context for the single parameter 'title' by specifying it's used to search for the article on arXiv.org. With 0% schema description coverage and only one parameter, this adequately compensates, though it doesn't detail format constraints like exact match requirements.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Load the article hosted on arXiv.org into context' with specific actions (search, retrieve, load text). It distinguishes from siblings like 'download_article' (which might save files) and 'search_arxiv' (which might return metadata), but doesn't explicitly contrast them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like 'download_article' or 'search_arxiv'. The description implies usage for loading article content into context, but lacks explicit when/when-not instructions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_arxivB

Performs a search query on the arXiv API based on specified parameters and returns matching article metadata. This function allows for flexible querying of the arXiv database. Only parameters that are explicitly provided will be included in the final search query. Results are returned in a JSON-formatted string with article titles as keys and their corresponding arXiv IDs as values.

Args: all_fields: General keyword search across all metadata fields including title, abstract, authors, comments, and categories. title: Keyword(s) to search for within the titles of articles. author: Author name(s) to filter results by. abstract: Keyword(s) to search for within article abstracts. start: Index of the first result to return; used for paginating through search results. Defaults to 0.

Returns: A JSON-formatted string containing article titles and their associated arXiv IDs; otherwise, a plain error message string.

ParametersJSON Schema
NameRequiredDescriptionDefault
all_fieldsNo
titleNo
authorNo
abstractNo
startNo

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses that results are JSON-formatted with titles as keys and arXiv IDs as values, and mentions pagination via the 'start' parameter. However, it lacks details on rate limits, error handling beyond 'plain error message string,' or authentication needs, leaving behavioral gaps 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a purpose statement, parameter explanations, and return details in separate sections. It's appropriately sized but includes some redundancy (e.g., repeating 'JSON-formatted string'). Every sentence adds value, though it could be more front-loaded with key usage information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, 0% schema coverage, and no output schema, the description does a decent job covering parameters and basic behavior. However, for a search tool with 5 parameters and sibling alternatives, it lacks context on error specifics, result limits, or when to choose this over other tools, making it minimally adequate but incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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. It effectively explains all five parameters: 'all_fields' searches across metadata, 'title' searches titles, 'author' filters by author, 'abstract' searches abstracts, and 'start' is for pagination. This adds clear meaning beyond the schema's basic titles, though it doesn't cover default behaviors or input formats in depth.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool 'performs a search query on the arXiv API' and 'returns matching article metadata,' providing a specific verb (search) and resource (arXiv database). It distinguishes from siblings like download_article or get_details by focusing on search functionality, though it doesn't explicitly contrast with them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 get_details or load_article_to_context. It mentions 'flexible querying' but offers no explicit when/when-not scenarios or prerequisites, leaving the agent to infer usage from context alone.

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. Dates show when Glama detected each change.

  1. 5 tool updates
    • First observeddownload_article
    • First observedget_article_url
    • First observedget_details
    • First observedload_article_to_context
    • First observedsearch_arxiv

TDQS

A3.6/5.0
Disambiguation3/5

The tools have some functional overlap that could cause confusion, particularly between get_article_url, get_details, and load_article_to_context which all retrieve article information based on title. However, their specific purposes (URL retrieval, metadata details, and full text loading) are differentiated in their descriptions, which helps mitigate misselection risks.

Naming Consistency4/5

Most tools follow a consistent verb_noun pattern (download_article, get_article_url, get_details, load_article_to_context) with clear action-oriented names. The only deviation is search_arxiv, which uses 'search' as a verb but follows the same general naming convention, maintaining good readability throughout the set.

Tool Count5/5

With 5 tools, this server is well-scoped for arXiv article operations. Each tool serves a distinct purpose in the article retrieval and search workflow, from discovery (search_arxiv) to information retrieval (get_details, get_article_url) to content access (download_article, load_article_to_context), making the count appropriate for the domain.

Completeness4/5

The tool set covers core arXiv operations effectively: searching, retrieving metadata, accessing URLs, downloading PDFs, and loading text content. A minor gap exists in update/management operations (e.g., saving articles to collections or tracking reading history), but these are not essential for the basic arXiv interaction workflow that this server targets.

Maintenance

ActivityInactive
ResponsivenessUnresponsive

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

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that enables AI agents to search, retrieve, and analyze academic papers from arXiv, supporting features like keyword search, paper details retrieval, content extraction, and paper analysis.
    4
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    A Python implementation of the Model Context Protocol (MCP) server that enables searching and extracting information from arXiv papers, designed to be extensible with additional MCP tools.
    -
  • A
    license
    Not graded
    quality
    F
    maintenance
    Enables AI assistants to search, retrieve, analyze, and export academic papers from arXiv.org using the Model Context Protocol.
    19
    MIT

Latest Blog Posts

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/prashalruchiranga/arxiv-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server