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

arXiv Logo

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:

  1. search_papers: Buscar artículos en arXiv usando palabras clave y obtener resúmenes completos
  2. get_paper_details: Recuperar información detallada sobre un artículo específico por su ID de arXiv
  3. extract_paper_content: Descargar y extraer el texto completo del PDF de un artículo
  4. analyze_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

  1. Instala uv si no lo tienes:

    pip install uv
    
  2. Clona este repositorio:

    git clone https://github.com/kelvingao/arxiv-mcp.git
    cd arxiv-mcp
    
  3. Instala las dependencias:

    uv pip install -e .
    
  4. Crea un archivo .env basado en .env.example:

    cp .env.example .env
    
  5. Configura tus variables de entorno en el archivo .env (consulta la sección de Configuración)

Usando Docker (Recomendado)

  1. Construye la imagen de Docker:

    docker build -t mcp/arxiv --build-arg PORT=8050 .
    
  2. Crea un archivo .env basado en .env.example y configura tus variables de entorno

Configuración

Las siguientes variables de entorno se pueden configurar en tu archivo .env:

VariableDescripciónEjemplo
TRANSPORTProtocolo de transporte (sse o stdio)sse
HOSTHost al que vincularse al usar transporte SSE0.0.0.0
PORTPuerto para escuchar al usar transporte SSE8050

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 serverUrl en lugar de url en 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:

  1. Agrega tus propias herramientas creando métodos con el decorador @mcp.tool()
  2. Crea tu propia función de ciclo de vida para agregar tus propias dependencias (clientes, conexiones de base de datos, etc.)
  3. Modifica las herramientas existentes o agrega nuevas para mejorar la funcionalidad
  4. Agrega prompts y recursos con @mcp.resource() y @mcp.prompt()

Licencia

Licencia MIT

Agradecimientos