Arxiv Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Arxiv Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A Model Context Protocol (MCP) server that provides arXiv paper search and retrieval capabilities. This server enables LLMs to search for academic papers on arXiv and get cleaned titles, abstracts, authors, and content without dealing with complex HTML parsing.
searchSearch arXiv for papers matching a query.
| Argument | Type | Required | Description |
|---|---|---|---|
query | string | Yes | Search query (e.g., 'LLM', 'transformer') |
category | string | No | Filter by category (e.g., 'cs.AI', 'cs.LG') |
author | string | No | Filter by author name |
sort_by | string | No | Sort order: 'relevance', 'date_desc', 'date_asc' |
page | int | No | Page number (default: 1) |
page_size | int | No | Results per page, max 50 (default: 25) |
search_advancedAdvanced search with specific field filters.
| Argument | Type | Required | Description |
|---|---|---|---|
title | string | No | Search in paper titles |
abstract | string | No | Search in abstracts |
author | string | No | Search by author name |
category | string | No | Filter by category |
id_arxiv | string | No | Search by arXiv ID pattern |
date_from | string | No | Start date (YYYY-MM-DD) |
date_to | string | No | End date (YYYY-MM-DD) |
sort_by | string | No | Sort order |
page | int | No | Page number |
page_size | int | No | Results per page |
get_paperGet detailed information about a specific arXiv paper.
| Argument | Type | Required | Description |
|---|---|---|---|
id_or_url | string | Yes | arXiv ID (e.g., '2301.00001') or full URL |
get_contentGet the full text content of an arXiv paper using Jina Reader.
| Argument | Type | Required | Description |
|---|---|---|---|
id_or_url | string | Yes | arXiv ID or full URL |
get_recentGet recent papers from a specific arXiv category.
| Argument | Type | Required | Description |
|---|---|---|---|
category | string | No | Category code (default: 'cs.AI') |
count | int | No | Number of papers, max 50 (default: 10) |
list_categoriesList all common arXiv categories with their codes and names.
# Clone the repository
git clone https://github.com/Ray0907/arXiv-mcp.git
cd arXiv-mcp
# Install with uv
uv sync# Clone the repository
git clone https://github.com/Ray0907/arXiv-mcp.git
cd arXiv-mcp
# Create virtual environment
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install
pip install -e .Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"arxiv": {
"command": "uv",
"args": [
"--directory",
"/path/to/arXiv-mcp",
"run",
"arxiv-mcp"
]
}
}
}Add to your Claude Code MCP settings:
{
"mcpServers": {
"arxiv": {
"command": "uv",
"args": [
"--directory",
"/path/to/arXiv-mcp",
"run",
"arxiv-mcp"
]
}
}
}Search for recent papers about "large language models"Search for papers by "Yann LeCun" in the machine learning categoryGet the details of arXiv paper 2301.00001Show me the 10 most recent papers in cs.AIuv run pytestuv run arxiv-mcp| Code | Name |
|---|---|
| cs.AI | Artificial Intelligence |
| cs.CL | Computation and Language |
| cs.CV | Computer Vision and Pattern Recognition |
| cs.LG | Machine Learning |
| cs.NE | Neural and Evolutionary Computing |
| stat.ML | Machine Learning (Statistics) |
Use list_categories tool to get the full list.
Breaking Changes:
search_advanced, get_paper, get_content, get_recent, list_categories(existing client configurations referencing camelCase names must be updated)
Security:
get_content: non-arxiv.org URLs containing a valid arXiv ID in the path (e.g. https://evil.com/abs/2301.00001) are now correctly rejectedImprovements:
async def using httpx.AsyncClient{"error": "..."} dicts instead of raising exceptions, so the LLM can read and retryreadOnlyHint: true and openWorldHint: trueSearchResult now includes has_more: bool and next_page: int | null for easier paginationlist_categories pre-computes the category list at import time instead of on every callBreaking Changes:
arxiv-server.py to arxiv-mcp commandget tool to getContent for clarityNew Features:
searchAdvanced - Advanced search with title, abstract, date range filtersgetPaper - Get detailed paper metadata (authors, categories, dates, PDF URL)getRecent - Browse recent papers by categorylistCategories - List 33 common arXiv categoriespage, page_size parameters)relevance, date_desc, date_asc)Improvements:
pyproject.toml with uv for dependency managementrequests with httpx (async-ready)src/arxiv_mcp/)search and get toolsMIT License - see LICENSE for details.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.