ArXiv-MCP
Busca y recupera artículos académicos de arXiv basados en palabras clave.
Documentación
ArXiv-MCP: Búsqueda de Artículos Académicos para Agentes de IA
Una implementación de servidor Model Context Protocol (MCP) que permite a los agentes de IA buscar, recuperar y analizar artículos académicos de arXiv, el popular repositorio de acceso abierto de preimpresiones electrónicas.
Descripción general
Este proyecto proporciona un servidor MCP que permite a los agentes de IA interactuar con el repositorio de arXiv, buscar artículos basados en palabras clave, recuperar información detallada sobre artículos específicos e incluso extraer y analizar el contenido de los artículos. Sirve tanto como una herramienta práctica para la asistencia en investigación como una implementación de referencia para construir servidores MCP.
La implementación sigue las mejores prácticas establecidas para construir servidores MCP, permitiendo una integración perfecta con cualquier cliente compatible con MCP.
Características
El servidor proporciona varias herramientas potentes para la investigación académica:
search_papers: Buscar artículos en arXiv usando palabras clave y obtener resúmenes completosget_paper_details: Recuperar información detallada sobre un artículo específico por su ID de arXivextract_paper_content: Descargar y extraer el texto completo del PDF de un artículoanalyze_paper: Analizar el contenido de un artículo y generar un resumen completo
Requisitos previos
- Python 3.11+
- Docker si se ejecuta el servidor MCP como contenedor (recomendado)
Instalación
Usando uv
-
Instala uv si no lo tienes:
pip install uv -
Clona este repositorio:
git clone https://github.com/kelvingao/arxiv-mcp.git cd arxiv-mcp -
Instala las dependencias:
uv pip install -e . -
Crea un archivo
.envbasado en.env.example:cp .env.example .env -
Configura tus variables de entorno en el archivo
.env(consulta la sección de Configuración)
Usando Docker (Recomendado)
-
Construye la imagen de Docker:
docker build -t mcp/arxiv --build-arg PORT=8050 . -
Crea un archivo
.envbasado en.env.exampley configura tus variables de entorno
Configuración
Las siguientes variables de entorno se pueden configurar en tu archivo .env:
| Variable | Descripción | Ejemplo |
|---|---|---|
TRANSPORT | Protocolo de transporte (sse o stdio) | sse |
HOST | Host al que vincularse al usar transporte SSE | 0.0.0.0 |
PORT | Puerto para escuchar al usar transporte SSE | 8050 |
Ejecutar el servidor
Usando uv
Transporte SSE
# Set TRANSPORT=sse in .env then:
python src/server.py
El servidor MCP se ejecutará como un endpoint de API al que puedes conectarte con la configuración que se muestra a continuación.
Transporte Stdio
Con stdio, el propio cliente MCP puede iniciar el servidor MCP, por lo que no hay nada que ejecutar en este punto.
Usando Docker
Transporte SSE
docker run --env-file .env -p 8050:8050 mcp/arxiv
El servidor MCP se ejecutará como un endpoint de API dentro del contenedor al que puedes conectarte con la configuración que se muestra a continuación.
Transporte Stdio
Con stdio, el propio cliente MCP puede iniciar el contenedor del servidor MCP, por lo que no hay nada que ejecutar en este punto.
Integración con clientes MCP
Configuración SSE
Una vez que tengas el servidor ejecutándose con transporte SSE, puedes conectarte a él usando esta configuración:
{
"mcpServers": {
"arxiv": {
"transport": "sse",
"url": "http://localhost:8050/sse"
}
}
}
Nota para usuarios de Windsurf: Usa
serverUrlen lugar deurlen tu configuración:{ "mcpServers": { "arxiv": { "transport": "sse", "serverUrl": "http://localhost:8050/sse" } } }
Nota para usuarios de n8n: Usa host.docker.internal en lugar de localhost, ya que n8n debe alcanzar fuera de su propio contenedor hacia la máquina host:
Entonces la URL completa en el nodo MCP sería: http://host.docker.internal:8050/sse
Asegúrate de actualizar el puerto si estás usando un valor diferente al 8050 predeterminado.
Python con configuración Stdio
Agrega este servidor a tu configuración MCP para Claude Desktop, Windsurf o cualquier otro cliente MCP:
{
"mcpServers": {
"arxiv": {
"command": "your/path/to/arxiv-mcp/.venv/bin/python",
"args": ["your/path/to/arxiv-mcp/src/main.py"],
"env": {
"TRANSPORT": "stdio"
}
}
}
}
Docker con configuración Stdio
{
"mcpServers": {
"arxiv": {
"command": "docker",
"args": ["run", "--rm", "-i",
"-e", "TRANSPORT",
"mcp/arxiv"],
"env": {
"TRANSPORT": "stdio"
}
}
}
}
Ejemplos de uso
Aquí hay algunos ejemplos de cómo usar el servidor MCP de arXiv con un agente de IA:
Buscar artículos
Find recent papers about quantum computing published in the last year.
Obtener detalles de un artículo
Get details for the paper with arXiv ID 2303.08774
Extraer contenido de un artículo
Extract the full text from the paper with arXiv ID 2303.08774
Analizar un artículo
Analyze the methodology section of the paper with arXiv ID 2303.08774
Construyendo tu propio servidor MCP
Esta implementación proporciona una base para construir servidores MCP más complejos. Para construir el tuyo propio:
- Agrega tus propias herramientas creando métodos con el decorador
@mcp.tool() - Crea tu propia función de ciclo de vida para agregar tus propias dependencias (clientes, conexiones de base de datos, etc.)
- Modifica las herramientas existentes o agrega nuevas para mejorar la funcionalidad
- Agrega prompts y recursos con
@mcp.resource()y@mcp.prompt()
Licencia
Agradecimientos
- arXiv por proporcionar acceso abierto a artículos de investigación
- El equipo de Model Context Protocol por crear el estándar MCP