arXiv Research Assistant MCP Server
# π§ arXiv Research Assistant MCP Server
[](https://smithery.ai/server/@daheepk/arxiv-paper-mcp)
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.
<table>
<tr>
<td>
<a href="https://glama.ai/mcp/servers/@daheepk/arxiv-mcp-server">
<img width="380" height="200" src="https://glama.ai/mcp/servers/@daheepk/arxiv-mcp-server/badge" alt="arXiv Research Assistant Server MCP server" />
</a>
</td>
<td style="vertical-align: top; padding-left: 10px;">
<a href="https://mseep.ai/app/daheepk-arxiv-paper-mcp">
<img src="https://mseep.net/pr/daheepk-arxiv-paper-mcp-badge.png" alt="MseeP.ai Security Assessment Badge" width="140" />
</a>
</td>
</tr>
</table>
## β¨ 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](https://github.com/modelcontextprotocol/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](https://smithery.ai/server/arxiv-paper-mcp):
```bash
npx -y @smithery/cli install arxiv-paper-mcp --client claude
```
### Installation from PyPI
```bash
uv pip install arxiv-paper-mcp
```
### π§ Clone the repository (for development)
```bash
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:
```bash
uv pip install -e .
```
## βοΈ How to Run
### βΆοΈ Run the server (locally)
```bash
arxiv-paper-mcp
```
## π Use with Claude
To use this MCP server with Claude, add the following JSON configuration to Claude's MCP settings:
```json
{
"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
```
TDQS
Scored across 4 tools
Each tool has a clearly distinct purpose: analyze_trends focuses on trends analysis, get_paper_info retrieves detailed paper information, scrape_recent_category_papers scrapes recent papers from a category, and search_papers searches by keywords. There is no overlap or ambiguity in their functions.
The tool names follow a consistent snake_case pattern and use descriptive verbs (analyze, get, scrape, search). However, scrape_recent_category_papers includes a Korean annotation '[ν¬λ‘€λ§]' in its description, which slightly deviates from the pure English naming convention, though this does not affect the tool name itself.
With 4 tools, the server is well-scoped for an arXiv research assistant, covering key operations like searching, scraping, analyzing trends, and fetching details. It is slightly lean but reasonable, as it handles core research workflows without unnecessary bloat.
The toolset covers essential functions for arXiv research, including search, scrape, analysis, and info retrieval. However, there are minor gaps such as no tools for filtering or sorting results, managing user preferences, or accessing advanced arXiv features like citation tracking, which could limit agent capabilities in complex scenarios.