Skip to main content
Glama
marfago

ArXiv Sync MCP Server

by marfago

Python Version License: Apache 2.0

ArXiv Sync MCP Server

πŸ” Enable AI assistants to search and access arXiv papers through a simple MCP interface.

πŸ“Œ About This Fork

This is a fork of the original arxiv-mcp-server by Joseph Blazick.

Why This Fork?

This fork simplifies the architecture and fixes issues found in the original:

Feature

Original

This Fork

Download method

Async background conversion

Synchronous download & conversion

API calls

Multiple (download β†’ poll status β†’ read)

Single call returns content

Status tracking

Required

Not needed

PDF cleanup

Manual

Automatic after conversion

Date filtering

Buggy

Fixed

Complexity

Higher

Simpler

Key improvements:

  • The get_paper_content tool now downloads, converts PDF to markdown, and returns the content in a single call

  • Date filtering in search_papers now works correctly:

    • Uses direct HTTP requests to arXiv API to bypass encoding issues with the Python arxiv library

    • Properly formats date ranges in arXiv's submittedDate:[YYYYMMDD0000+TO+YYYYMMDD2359] format

    • Correctly combines date filters with category and query filters using AND operators

The ArXiv Sync MCP Server provides a bridge between AI assistants and arXiv's research repository through the Model Context Protocol (MCP). It allows AI models to search for papers and access their content programmatically.

Related MCP server: ArXiv MCP Server

✨ Core Features

  • πŸ”Ž Paper Search: Query arXiv papers with filters for date ranges and categories

  • πŸ“„ Paper Access: Download and read paper content

  • πŸ“‹ Paper Listing: View all downloaded papers

  • πŸ—ƒοΈ Local Storage: Papers are saved locally for faster access

  • πŸ“ Prompts: A Set of Research Prompts

πŸš€ Quick Start

This fork is distributed via GitHub and is not published to PyPI.

Installing Manually

Install using uv:

uv tool install git+https://github.com/marfago/arxiv-sync-mcp-server.git

For development:

# Clone and set up development environment
git clone https://github.com/marfago/arxiv-sync-mcp-server.git
cd arxiv-sync-mcp-server

# Create and activate virtual environment
uv venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# Install with test dependencies
uv pip install -e ".[test]"

πŸ”Œ MCP Integration

Add this configuration to your MCP client config file:

{
    "mcpServers": {
        "arxiv-sync-mcp-server": {
            "command": "uv",
            "args": [
                "tool",
                "run",
                "--from",
                "git+https://github.com/marfago/arxiv-sync-mcp-server.git",
                "arxiv-sync-mcp-server",
                "--storage-path", "/path/to/paper/storage"
            ]
        }
    }
}

For Development:

{
    "mcpServers": {
        "arxiv-sync-mcp-server": {
            "command": "uv",
            "args": [
                "--directory",
                "/path/to/cloned/arxiv-sync-mcp-server",
                "run",
                "arxiv-sync-mcp-server",
                "--storage-path", "/path/to/paper/storage"
            ]
        }
    }
}

πŸ’‘ Available Tools

The server provides three simple tools:

Search for papers with optional filters:

result = await call_tool("search_papers", {
    "query": "transformer architecture",
    "max_results": 10,
    "date_from": "2023-01-01",
    "categories": ["cs.AI", "cs.LG"]
})

2. Get Paper Content

Get the full content of a paper, downloading and converting it if necessary:

result = await call_tool("get_paper_content", {
    "paper_id": "2401.12345"
})

3. List Papers

View all downloaded papers:

result = await call_tool("list_papers", {})

πŸ“ Research Prompts

The server offers specialized prompts to help analyze academic papers:

Paper Analysis Prompt

A comprehensive workflow for analyzing academic papers that only requires a paper ID:

result = await call_prompt("deep-paper-analysis", {
    "paper_id": "2401.12345"
})

This prompt includes:

  • Detailed instructions for using available tools (get_paper_content, search_papers, list_papers)

  • A systematic workflow for paper analysis

  • Comprehensive analysis structure covering:

    • Executive summary

    • Research context

    • Methodology analysis

    • Results evaluation

    • Practical and theoretical implications

    • Future research directions

    • Broader impacts

βš™οΈ Configuration

Configure through environment variables:

Variable

Purpose

Default

ARXIV_STORAGE_PATH

Paper storage location

~/.arxiv-sync-mcp-server/papers

πŸ§ͺ Testing

Run the test suite:

python -m pytest

πŸ“„ License

Released under the Apache 2.0 License. See the LICENSE file for details.


Fork of arxiv-mcp-server by Joseph Blazick

Originally made with ❀️

Available Tools

3 tools
get_paper_contentA

Get the full content of a paper, downloading and converting it if necessary

ParametersJSON Schema
NameRequiredDescriptionDefault
paper_idYesThe arXiv ID of the paper to retrieve

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so description must disclose behavior. It mentions 'downloading and converting if necessary', which hints at side effects but lacks detail about conversion format, error scenarios, or performance impact. This is adequate but not thorough.

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?

A single concise sentence that efficiently communicates the tool's purpose and key behavioral aspect. No wasted words.

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 one parameter and no output schema, the description explains the main action but does not specify the return format (e.g., text, PDF) or any additional details about the content. The mention of download/conversion is helpful, but gaps remain.

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

Parameters3/5

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

Schema coverage is 100% and description of paper_id in schema is sufficient. The description adds no extra information about parameters, meeting the baseline for high coverage.

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 action ('Get the full content of a paper') and the resource ('paper'), distinguishing it from siblings like list_papers (metadata) and search_papers (search). The additional context 'downloading and converting it if necessary' clarifies the scope.

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 implies usage when full content is needed, but lacks explicit guidance on when not to use it or direct comparison with siblings. The context from sibling names makes it clear, but no exclusions are stated.

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

list_papersA

List all existing papers available as resources

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are present, so the description bears full responsibility for behavioral disclosure. It fails to mention that the operation is read-only, whether pagination exists, or any limits, which is insufficient for a listing tool.

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?

A single, front-loaded sentence with no unnecessary words. Every word is meaningful and succinct.

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

Completeness2/5

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

Given no output schema and no annotations, the description should compensate by describing return format or behavior. It only states 'papers' without any detail on what fields or structure is returned, leaving significant gaps.

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 zero parameters and 100% schema coverage, the baseline is 4. The description adds meaning by specifying the scope ('all existing papers, available as resources'), which is not present in the empty schema.

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 'List all existing papers available as resources' clearly states the action (list) and resource (papers), differentiating from siblings get_paper_content and search_papers which focus on individual paper content or search.

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

Usage Guidelines3/5

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

The description implies usage for obtaining a list of all papers, but does not provide when-to-use or when-not-to-use guidance relative to sibling tools, leaving the agent to infer context.

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

search_papersA

Search for papers on arXiv with advanced filtering and query optimization.

QUERY CONSTRUCTION GUIDELINES:

  • Use QUOTED PHRASES for exact matches: "multi-agent systems", "neural networks", "machine learning"

  • Combine related concepts with OR: "AI agents" OR "software agents" OR "intelligent agents"

  • Use field-specific searches for precision:

    • ti:"exact title phrase" - search in titles only

    • au:"author name" - search by author

    • abs:"keyword" - search in abstracts only

  • Use ANDNOT to exclude unwanted results: "machine learning" ANDNOT "survey"

  • For best results, use 2-4 core concepts rather than long keyword lists

ADVANCED SEARCH PATTERNS:

  • Field + phrase: ti:"transformer architecture" for papers with exact title phrase

  • Multiple fields: au:"Smith" AND ti:"quantum" for author Smith's quantum papers

  • Exclusions: "deep learning" ANDNOT ("survey" OR "review") to exclude survey papers

  • Broad + narrow: "artificial intelligence" AND (robotics OR "computer vision")

CATEGORY FILTERING (highly recommended for relevance):

  • cs.AI: Artificial Intelligence

  • cs.MA: Multi-Agent Systems

  • cs.LG: Machine Learning

  • cs.CL: Computation and Language (NLP)

  • cs.CV: Computer Vision

  • cs.RO: Robotics

  • cs.HC: Human-Computer Interaction

  • cs.CR: Cryptography and Security

  • cs.DB: Databases

EXAMPLES OF EFFECTIVE QUERIES:

  • ti:"reinforcement learning" with categories: ["cs.LG", "cs.AI"] - for RL papers by title

  • au:"Hinton" AND "deep learning" with categories: ["cs.LG"] - for Hinton's deep learning work

  • "multi-agent" ANDNOT "survey" with categories: ["cs.MA"] - exclude survey papers

  • abs:"transformer" AND ti:"attention" with categories: ["cs.CL"] - attention papers with transformer abstracts

DATE FILTERING: Use YYYY-MM-DD format for historical research:

  • date_to: "2015-12-31" - for foundational/classic work (pre-2016)

  • date_from: "2020-01-01" - for recent developments (post-2020)

  • Both together for specific time periods

RESULT QUALITY: Results sorted by RELEVANCE (most relevant papers first), not just newest papers. This ensures you get the most pertinent results regardless of publication date.

TIPS FOR FOUNDATIONAL RESEARCH:

  • Use date_to: "2010-12-31" to find classic papers on BDI, SOAR, ACT-R

  • Combine with field searches: ti:"BDI" AND abs:"belief desire intention"

  • Try author searches: au:"Rao" AND "BDI" for Anand Rao's foundational BDI work

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query using quoted phrases for exact matches (e.g., '"machine learning" OR "deep learning"') or specific technical terms. Avoid overly broad or generic terms.
max_resultsNoMaximum number of results to return (default: 10, max: 50). Use 15-20 for comprehensive searches.
date_fromNoStart date for papers (YYYY-MM-DD format). Use to find recent work, e.g., '2023-01-01' for last 2 years.
date_toNoEnd date for papers (YYYY-MM-DD format). Use with date_from to find historical work, e.g., '2020-12-31' for older research.
categoriesNoStrongly recommended: arXiv categories to focus search (e.g., ['cs.AI', 'cs.MA'] for agent research, ['cs.LG'] for ML, ['cs.CL'] for NLP, ['cs.CV'] for vision). Greatly improves relevance.
sort_byNoSort results by 'relevance' (most relevant first, default) or 'date' (newest first). Use 'relevance' for focused searches, 'date' for recent developments.

TDQS

A4.7/5.0
Behavior5/5

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

Despite no annotations, the description fully discloses behavioral traits: results sorted by relevance by default, date filtering format, category filtering recommendations, and query optimization. No contradictions or omissions.

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?

Well-structured with sections, examples, and readability. Slightly verbose but each section adds value. Front-loaded core purpose, but could be more concise without losing utility.

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

Completeness5/5

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

Completely covers all 6 parameters with usage patterns and examples. No output schema expected; description compensates by explaining result relevance and filtering. No missing critical information for a search tool.

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

Parameters5/5

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

Schema description coverage is 100%. The description adds significant value beyond schema by explaining query syntax, category codes, date formats, and sort behavior, enabling precise use.

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?

Clearly states the tool searches for papers on arXiv with advanced filtering. Distinguishes from sibling tools like get_paper_content and list_papers by emphasizing search and filtering capabilities.

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?

Provides extensive guidelines on query construction, category filtering, date filtering, and examples. However, it does not explicitly state when not to use the tool or directly mention alternatives, though sibling names imply use cases.

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. 3 tool updatesv0.3.2
    • First observedget_paper_content
    • First observedlist_papers
    • First observedsearch_papers

TDQS

A4.2/5.0
Disambiguation5/5

Each tool has a distinct purpose: listing, searching, and getting full content. There is no overlap or ambiguity between them.

Naming Consistency5/5

All tool names follow a consistent 'verb_noun' pattern in snake_case, making the set predictable and easy to understand.

Tool Count5/5

With 3 tools, the server is well-scoped for its purpose of syncing and retrieving arXiv papers. Each tool is necessary and sufficient.

Completeness4/5

The set covers listing, searching, and fetching content. Missing tools for updating or deleting are minor gaps given the sync context, but the core functionality is complete.

Maintenance

ActivityInactive
ResponsivenessSyncing

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
    B
    quality
    F
    maintenance
    Provides paper search, PDF link retrieval, and content parsing for arXiv research papers, enabling seamless access to scientific literature through the Model Context Protocol.
    4
    40
    24
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    Enables AI assistants to search and access arXiv papers through a Model Context Protocol interface, allowing for paper search, download, listing, and reading functionality.
    4
    2
    Apache 2.0
  • 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
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables searching and retrieving arXiv papers via the Model Context Protocol, providing tools for querying, structured search, and literature review prompts.
    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/marfago/arxiv-sync-mcp-server'

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