Skip to main content

arXiv 논문 데이터를 Claude AI와 연동하는 MCP 서버

Project description

🧠 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.


S

✨ 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

1. Clone the repository

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

🔧 2. Install Dependencies

Use uv to install all dependencies in editable mode:

uv pip install -e .

⚙️ How to Run

▶️ Run the server (locally)

You can start the server in two ways:

uv run python -m server
or using the project script defined in pyproject.toml:
uv run arxiv-mcp

Project Structure

mcp-server-demo/
├── server.py               # Entry point
├── arxiv_mcp/              # Main package
│   ├── __init__.py
│   ├── app.py              # FastMCP app setup
│   ├── 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

arxiv_paper_mcp-0.1.0.tar.gz (9.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

arxiv_paper_mcp-0.1.0-py3-none-any.whl (11.0 kB view details)

Uploaded Python 3

File details

Details for the file arxiv_paper_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: arxiv_paper_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 9.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.12

File hashes

Hashes for arxiv_paper_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 7f7d679f4624eaf0e4f2667ddff9f63b561f9a9901080b918834ff1dcd33a8f7
MD5 b1ec6debe4f577d815b6520208430e0e
BLAKE2b-256 99f8cb829657ce5f15770135c284838dfe31e18e761491f61e240232619290f7

See more details on using hashes here.

File details

Details for the file arxiv_paper_mcp-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for arxiv_paper_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fc749a624e968a9de7cee42accaa5bcfbc43b7d7a50b49a37f4a4dadaadc260a
MD5 4e215dfff4fbe912be30baf7401b0d9b
BLAKE2b-256 4f20cdb011104efb9e94fe2f6117ae2e0a9a5f379aefba0fc6de2b65a28501b9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page