DA

daheepk/arxiv-paper-mcp

Developer tools
19 stars 7 forks Quality 62 Trend 22MIT

This project is an arXiv paper retrieval and search service implemented through a custom MCP (Multi-Capability Provider) framework.

Overview

This project is an MCP (Model Context Protocol) server built to interact with the vast arXiv.org paper database. It allows clients like to search, explore, and compare arXiv papers efficiently — all through a custom-built, local server. It’s built with and the framework, and uses for lightweight package management. - Search arXiv papers by keywords, with options to sort by relevance or most recent. - Specify an arXiv category code (e.g., cs.AI, math.AP) to fetch the most recent papers in that field. - Fetch detailed metadata using a paper's arXiv ID: title, authors, abstract, categories, DOI, PDF link, and more. - Retrieve a list of papers published by a specific author. - Get an overview of trending keywords or topics based on recent papers in a category (currently uses mock data). - Dynamically generate prompts that help LLMs summarize a selected paper more effectively.

README

🧠 arXiv Research Assistant MCP Server

This project is an MCP (Model Context Protocol) server built to interact with the vast arXiv.org paper database.

It allows clients like Claude AI to search, explore, and compare arXiv papers efficiently — all through a custom-built, local server. It’s built with Python and the FastMCP framework, and uses uv for lightweight package management.

✨ Features

  • 🔍 Keyword-based Paper Search
    Search arXiv papers by keywords, with options to sort by relevance or most recent.

  • 📚 Latest Papers by Category
    Specify an arXiv category code (e.g., cs.AI, math.AP) to fetch the most recent papers in that field.

  • 📄 Paper Details Lookup
    Fetch detailed metadata using a paper’s arXiv ID: title, authors, abstract, categories, DOI, PDF link, and more.

  • 🧑‍🔬 Author-based Paper Search
    Retrieve a list of papers published by a specific author.

  • 📊 Trend Analysis (Experimental)
    Get an overview of trending keywords or topics based on recent papers in a category (currently uses mock data).

  • 📝 Summarization Prompt Generator
    Dynamically generate prompts that help LLMs summarize a selected paper more effectively.

  • 🆚 Comparison Prompt Generator
    Provide two paper IDs to generate a structured prompt for comparing their content.


🛠️ Tech Stack

  • Python 3.11+
  • FastMCP
  • uv (for dependency & environment management)
  • requests (for API communication)
  • xml.etree.ElementTree (for parsing XML responses)

🚀 Getting Started

Installing via Smithery

To install arXiv Research Assistant MCP Server for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install arxiv-paper-mcp --client claude

Installation from PyPI

uv pip install arxiv-paper-mcp

🔧 Clone the repository (for development)

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

🔧 Install Dependencies (for development)

Use uv to install all dependencies in editable mode:

uv pip install -e .

⚙️ How to Run

▶️ Run the server (locally)

arxiv-paper-mcp

🔌 Use with Claude

To use this MCP server with Claude, add the following JSON configuration to Claude’s MCP settings:

{
  "mcpServers": {
    "arXivPaper": {
      "command": "uv",
      "args": [
        "tool",
        "run",
        "arxiv-paper-mcp"
      ]
    }
  }
}

Project Structure

arxiv-mcp-server/
├── arxiv_mcp/              # Main package
│   ├── __init__.py
│   ├── app.py              # FastMCP app setup
│   ├── server.py           # Server entry point
│   ├── utils.py            # arXiv API communication logic
│   ├── resources/          # MCP resources (categories, authors, etc.)
│   ├── tools/              # MCP tools (search, detail lookup, trends)
│   └── prompts/            # Prompt templates (summarize, compare)
├── pyproject.toml          # Project config & dependencies
└── README.md               # This file
View the full README on GitHub

Install

npx -y @smithery/cli install arxiv-paper-mcp --client claude
New to MCP? Start with the mcpskill.org guide →

Configuration

{ "mcpServers": { "arXivPaper": { "command": "uv", "args": [ "tool", "run", "arxiv-paper-mcp" ] } } }