arXiv MCP Server
Busca y analiza artículos académicos en arXiv.
Documentación
arxiv-mcp-server
Un servidor MCP para buscar en arXiv, descargar artículos, leer texto completo limitado, recuperar el LaTeX original por secciones, seguir grafos de citas y mantener alertas de investigación.
Se ejecuta localmente sobre stdio de forma predeterminada. Los artículos y los índices permanecen en tu máquina; la búsqueda, la recuperación de fuentes, los grafos de citas y las descargas recurren a sus respectivos servicios externos.
Instalación
Las integraciones basadas en comandos requieren uv, que proporciona uvx. Elige tu cliente a continuación; no se requiere clonar el repositorio ni configurar un entorno de Python.
Claude Code
Añade el servidor MCP para todos los proyectos:
claude mcp add --transport stdio --scope user arxiv -- uvx arxiv-mcp-server
Para la integración de plugin más completa —que instala la conexión MCP junto con la habilidad de investigación de arXiv incluida— registra este repositorio como marketplace e instala el plugin:
claude plugin marketplace add blazickjp/arxiv-mcp-server
claude plugin install arxiv-mcp-server@arxiv-mcp
Verifica la instalación directa de MCP con claude mcp get arxiv. Reinicia Claude Code o ejecuta /reload-plugins después de instalar el plugin.
OpenAI Codex
Añade el servidor MCP:
codex mcp add arxiv -- uvx arxiv-mcp-server
O instala la conexión MCP y la habilidad de investigación incluida como plugin de Codex:
codex plugin marketplace add blazickjp/arxiv-mcp-server
codex plugin add arxiv-mcp-server@arxiv-mcp
Verifica la instalación directa de MCP con codex mcp get arxiv. Codex CLI, la extensión de Codex para IDE y Codex en la aplicación de escritorio de ChatGPT comparten esta configuración de MCP.
Hermes Agent
Añade el servidor, aprueba las herramientas descubiertas y prueba la conexión guardada:
hermes mcp add arxiv --command uvx --args arxiv-mcp-server
hermes mcp test arxiv
Kiro y VS Code
Usa el botón Añadir a Kiro, Instalar en VS Code o Instalar en VS Code Insiders de arriba.
Para la integración más completa de Kiro Power, abre el panel Powers, elige Añadir Power personalizado → Importar power desde GitHub e introduce:
https://github.com/blazickjp/arxiv-mcp-server
El Power instala la conexión MCP desde mcp.json y añade orientación centrada en la investigación de arXiv. Los usuarios de Kiro que prefieran la configuración manual pueden colocar la configuración genérica siguiente en .kiro/settings/mcp.json para un espacio de trabajo o en ~/.kiro/settings/mcp.json para todos los espacios de trabajo.
Paquete de Claude Desktop
Los usuarios de macOS pueden instalar una extensión .mcpb empaquetada desde la última versión de GitHub:
- Apple Silicon:
arxiv-mcp-server-darwin-arm64-<version>.mcpb - Intel:
arxiv-mcp-server-darwin-x86_64-<version>.mcpb
Haz doble clic en el paquete, arrástralo a Claude Desktop o abre Configuración → Extensiones → Ajustes avanzados → Instalar extensión…. El paquete incluye las dependencias del servidor y requiere CPython 3.11.x.
Otros clientes MCP
Añade esta configuración stdio a clientes que acepten la forma JSON mcpServers, como Claude Desktop y Kiro. Otros clientes pueden usar un objeto servers de nivel superior, TOML o su propia interfaz de configuración; consulta la documentación de MCP del cliente.
{
"mcpServers": {
"arxiv": {
"type": "stdio",
"command": "uvx",
"args": ["arxiv-mcp-server"]
}
}
}
El directorio de artículos predeterminado es ~/.arxiv-mcp-server/papers. Para elegir otro directorio, añade "--storage-path", "/absolute/path/to/papers" a args.
Para artículos antiguos que requieren conversión de PDF, ejecuta el paquete con su extra de PDF:
{
"mcpServers": {
"arxiv": {
"type": "stdio",
"command": "uvx",
"args": [
"--from",
"arxiv-mcp-server[pdf]",
"arxiv-mcp-server"
]
}
}
}
El paquete compatible se publica en PyPI. Un paquete npm no relacionado usa el mismo nombre, así que no instales este servidor con npm, pnpm ni npx arxiv-mcp-server.
Si una instalación existente carece de herramientas más recientes
uvx reutiliza entornos de herramientas en caché. Fuerza la resolución de la versión actual de PyPI con un intérprete compatible y luego reinicia tu cliente MCP:
uvx --python 3.11 --refresh-package arxiv-mcp-server arxiv-mcp-server
Si tu cliente aún lanza un entorno antiguo, añade "--python", "3.11" antes de "arxiv-mcp-server" en su array args.
Si un cliente de escritorio no encuentra uvx
Las aplicaciones de escritorio no siempre heredan el mismo PATH que tu terminal. Si uvx arxiv-mcp-server funciona en una terminal pero el cliente informa que el servidor no pudo conectarse, encuentra la ruta absoluta del ejecutable:
# macOS and Linux
command -v uvx
# Windows PowerShell
(Get-Command uvx).Source
Reemplaza "command": "uvx" con la ruta absoluta devuelta y luego reinicia el cliente. Mantén el valor de args sin cambios.
Instalación de comando persistente
Para colocar arxiv-mcp-server en tu PATH en lugar de lanzarlo a través de uvx:
uv tool install arxiv-mcp-server
Si el comando no está disponible de inmediato, ejecuta uv tool update-shell y reinicia la terminal. Después, usa "command": "arxiv-mcp-server" y omite el nombre del paquete en args.
Integraciones de plugins
El repositorio ahora empaqueta el mismo servidor MCP y la misma habilidad de investigación para ambos sistemas principales de plugins:
| Integración | Manifiesto | Marketplace |
|---|---|---|
| Claude Code | .claude-plugin/plugin.json | .claude-plugin/marketplace.json |
| OpenAI Codex / ChatGPT Work | .codex-plugin/plugin.json | .agents/plugins/marketplace.json |
| Kiro Power | POWER.md | mcp.json |
| Lanzamiento MCP compartido | .mcp.json para Claude y clientes locales del repositorio; .codex-mcp.json para plugins de Codex | uvx arxiv-mcp-server |
| Flujo de investigación compartido | skills/arxiv-mcp-server/SKILL.md | Se instala con cualquiera de los dos plugins |
La instalación directa de MCP es el camino más corto. Instala el plugin si también quieres el flujo de investigación que orienta al cliente hacia búsquedas centradas, lecturas limitadas, recorrido de citas y recuperación de LaTeX por secciones.
Herramientas
El servidor expone actualmente 14 herramientas.
| Herramienta | Propósito | Notas |
|---|---|---|
search_papers | Buscar en arXiv por consulta, categoría, fecha y orden de clasificación | API remota de arXiv |
get_abstract | Obtener metadatos y un resumen por ID de arXiv | No descarga el artículo |
download_paper | Descargar y convertir un artículo a Markdown local | HTML primero; el respaldo de PDF usa [pdf] |
list_papers | Listar artículos almacenados localmente | Devuelve IDs de arXiv |
read_paper | Leer contenido de artículos almacenados localmente | Admite start y max_chars |
get_paper_latex | Recuperar LaTeX limitado enviado por el autor | Archivo fuente remoto de arXiv |
list_paper_latex_sections | Devolver un esquema de LaTeX paginado | Admite start y max_sections |
get_paper_latex_section | Leer una sección de LaTeX limitada | Seleccionar por ID de esquema o título exacto |
citation_graph | Obtener referencias y artículos que citan | API remota de Semantic Scholar |
export_citations | Exportar BibTeX para uno o más IDs de arXiv | Metadatos autoritativos de arXiv |
watch_topic | Guardar o actualizar un seguimiento de tema de arXiv | Se almacena localmente |
check_alerts | Comprobar seguimientos guardados en busca de artículos nuevos | Devuelve artículos desde la última comprobación |
semantic_search | Buscar en artículos descargados por similitud semántica | Requiere [pro] |
reindex | Reconstruir el índice semántico local | Requiere [pro] |
Buscar e inspeccionar un artículo
Pide a tu cliente MCP que llame a search_papers con:
{
"query": "\"Kolmogorov-Arnold Networks\"",
"categories": ["cs.LG", "cs.AI"],
"max_results": 5,
"sort_by": "date"
}
Luego llama a get_abstract con:
{
"paper_id": "2404.19756"
}
Descargar y leer texto completo
Llama a download_paper con:
{
"paper_id": "2404.19756",
"max_chars": 12000
}
Luego recorre el contenido en caché con read_paper:
{
"paper_id": "2404.19756",
"start": 0,
"max_chars": 12000
}
Las respuestas de contenido grande incluyen content_length, returned_chars, next_start y is_truncated. Pasa next_start a la siguiente llamada para continuar leyendo.
Leer LaTeX original por sección
Llama a get_paper_latex con:
{
"paper_id": "1706.03762"
}
Obtén la primera página de su esquema de secciones con list_paper_latex_sections:
{
"paper_id": "1706.03762",
"start": 0,
"max_sections": 100
}
Luego llama a get_paper_latex_section usando un ID de ese esquema:
{
"paper_id": "1706.03762",
"section_id": "3.2",
"max_chars": 12000
}
Los archivos LaTeX se validan, se limitan en tamaño y se guardan en caché localmente antes de devolver el contenido.
Dependencias opcionales
Elige la variante de instalación que coincida con las funciones que necesitas:
# Base server
uv tool install arxiv-mcp-server
# Base server plus PDF conversion
uv tool install "arxiv-mcp-server[pdf]"
# Base server plus local semantic search
uv tool install "arxiv-mcp-server[pro]"
Si la herramienta base ya está instalada, reinstala la variante seleccionada:
uv tool install --force "arxiv-mcp-server[pdf]"
El extra pdf instala pymupdf4llm y pymupdf-layout para artículos sin HTML de arXiv utilizable. El extra pro añade dependencias de incrustación local para semantic_search y reindex; la búsqueda semántica solo opera sobre artículos ya descargados al directorio de almacenamiento configurado.
Prompts integrados
El servidor proporciona siete flujos de trabajo de prompt MCP. La disponibilidad de prompts depende del cliente; el servidor proporciona instrucciones de flujo de trabajo pero no ejecuta un modelo por separado.
| Prompt | Argumentos requeridos | Propósito |
|---|---|---|
research-discovery | topic | Mapear terminología, búsquedas, artículos, clústeres de investigación y una ruta de lectura |
deep-paper-analysis | paper_id | Analizar un artículo en profundidad |
summarize_paper | paper_id | Resumir métodos, resultados y limitaciones |
compare_papers | paper_ids | Comparar varios artículos |
literature_review | topic | Sintetizar un tema y un conjunto opcional de artículos |
literature-synthesis | paper_ids | Sintetizar temas, métodos, cronologías o brechas entre artículos |
research-question | paper_ids, topic | Formular preguntas de investigación fundamentadas y falseables |
HTTP transmisible (Streamable HTTP)
Para despliegues donde stdio no sea práctico:
TRANSPORT=http HOST=127.0.0.1 PORT=8080 \
uvx arxiv-mcp-server --storage-path /absolute/path/to/papers
PowerShell:
$env:TRANSPORT = "http"
$env:HOST = "127.0.0.1"
$env:PORT = "8080"
uvx arxiv-mcp-server --storage-path C:\absolute\path\to\papers
Conecta clientes a:
{
"mcpServers": {
"arxiv": {
"type": "http",
"url": "http://127.0.0.1:8080/mcp"
}
}
}
El servidor se vincula a 127.0.0.1 de forma predeterminada y habilita la protección contra rebote de DNS de MCP. Si un proxy inverso expone el servidor, mantén el proceso en una interfaz privada y proporciona autenticación y controles de red en el nivel superior. Usa ALLOWED_HOSTS y ALLOWED_ORIGINS para los valores de host y origen reenviados por el proxy.
Configuración
| Ajuste | Predeterminado | Propósito |
|---|---|---|
--storage-path | ~/.arxiv-mcp-server/papers | Almacenamiento de artículos, caché de fuentes, alertas e índices |
MAX_RESULTS | 50 | Límite del lado del servidor para conteos de resultados |
REQUEST_TIMEOUT | 60 | Tiempo de espera de descarga de respaldo de PDF en segundos |
TRANSPORT | stdio | stdio, http o streamable-http |
HOST | 127.0.0.1 | Host de vinculación HTTP |
PORT | 8000 | Puerto de vinculación HTTP |
ALLOWED_HOSTS | vacío | Valores adicionales aceptados de HTTP Host |
ALLOWED_ORIGINS | vacío | Valores adicionales aceptados de HTTP Origin |
Los nombres de las variables de entorno no distinguen entre mayúsculas y minúsculas mediante la configuración de Pydantic. --storage-path es una opción de línea de comandos en lugar de un ajuste de entorno.
Seguridad
El texto de los artículos y el LaTeX son contenido externo no confiable. Un artículo puede contener texto diseñado para manipular a un cliente de IA para que ignore sus instrucciones o llame a herramientas no relacionadas.
- No trates las instrucciones que se encuentran dentro de un artículo como comandos confiables.
- Usa controles de aprobación del cliente para herramientas de shell, navegador, sistema de archivos y mensajería.
- Revisa los resúmenes generados antes de realizar acciones externas.
- Mantén Streamable HTTP privado a menos que la autenticación se proporcione en el nivel superior.
Consulta SECURITY.md para conocer la política de reporte y los detalles de amenazas.
Desarrollo
git clone https://github.com/blazickjp/arxiv-mcp-server.git
cd arxiv-mcp-server
uv sync --extra test --extra dev
uv run pytest
uv run black --check .
Ejecuta la copia de desarrollo desde un cliente MCP con:
{
"mcpServers": {
"arxiv-dev": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/arxiv-mcp-server",
"run",
"arxiv-mcp-server"
]
}
}
}
Las contribuciones son bienvenidas. Lee CONTRIBUTING.md antes de abrir una solicitud de extracción y usa GitHub Issues para errores reproducibles o propuestas de funciones acotadas.
Licencia
Apache License 2.0. Consulta LICENSE.