Paper Search MCP

Buscar y descargar artículos académicos de

Documentación

Paper Search MCP

Un servidor de Model Context Protocol (MCP) para buscar y descargar artículos académicos de múltiples fuentes. El proyecto sigue una estrategia de prioridad gratuita: prioriza fuentes de datos abiertas y públicas, admite claves API opcionales cuando mejoran la estabilidad o la cobertura, y mantiene conectores específicos por fuente extensibles para usuarios avanzados.

PyPI License Python smithery badge


Tabla de Contenidos


Descripción General

paper-search-mcp es una herramienta basada en Python para buscar y descargar artículos académicos de diversas plataformas. Proporciona herramientas para buscar artículos, descargar PDFs y extraer texto, lo que lo hace ideal para investigadores y flujos de trabajo impulsados por IA. Puede usarse como servidor MCP (para Claude Desktop y otros clientes MCP) o como skill de Claude Code con interfaz CLI.

Principios del Proyecto

  • Prioridad Gratuita: Las fuentes públicas y abiertas son la hoja de ruta predeterminada. Las fuentes de pago o restringidas no son la dirección central de este proyecto.
  • Claves API Opcionales: Las claves API solo se admiten cuando mejoran la estabilidad, los límites de tasa o la calidad de los metadatos. El MCP debería seguir siendo utilizable sin ellas siempre que sea posible.
  • Recuperación Amigable para LLM: Los resultados de búsqueda deben estar estandarizados, deduplicados y ser lo más completos posible para flujos de trabajo posteriores con LLM.
  • Transparencia de Fuentes: Diferentes fuentes tienen diferentes fortalezas. El MCP debe hacer explícitas esas compensaciones en lugar de pretender que cada fuente admite recuperación de texto completo.

Características

  • Arquitectura de Dos Capas:
    • Capa 1 (Herramientas Unificadas): search_papers de alto nivel para búsqueda concurrente multi-fuente y deduplicación, y download_with_fallback que depende de enlaces de acceso abierto de los editores con respaldos secuenciales.
    • Capa 2 (Conectores de Plataforma): Conectores modulares para plataformas académicas específicas (arXiv, PubMed, bioRxiv, Semantic Scholar, etc.) equipados con extracción inteligente de DOI mediante análisis de texto con regex o campos de API.
  • Soporte Multi-Fuente: Busca y descarga artículos de arXiv, PubMed, bioRxiv, medRxiv, Google Scholar, IACR ePrint Archive, Semantic Scholar, Crossref, OpenAlex, PubMed Central (PMC), CORE, Europe PMC, dblp, OpenAIRE, CiteSeerX, DOAJ, BASE, Zenodo, HAL, SSRN, Unpaywall (búsqueda por DOI) y flujos de trabajo opcionales de Sci-Hub.
  • Salida Estandarizada: Los artículos se devuelven en un formato de diccionario consistente mediante la clase Paper.
  • Diseño de Prioridad Gratuita: Las fuentes abiertas y públicas se priorizan antes que cualquier integración comercial o restringida opcional.
  • Mejora Opcional con Clave API: Fuentes como Semantic Scholar pueden funcionar mejor con una clave API proporcionada por el usuario, pero no pretenden forzar el uso de pago.
  • Flujo de Trabajo de Descubrimiento + Recuperación: Google Scholar y Crossref pueden usarse para descubrimiento y relleno de DOI, mientras que los repositorios abiertos y los enlaces de los editores se usan para la resolución legal de texto completo cuando esté disponible.
  • Cadena de Respaldo con Prioridad OA: download_with_fallback ahora sigue descarga nativa de la fuente → descubrimiento en OpenAIRE/CORE/Europe PMC/PMC → resolución de DOI en Unpaywall → Sci-Hub opcional.
  • Integración MCP: Compatible con clientes MCP para mejorar el contexto de LLM.
  • Diseño Extensible: Añade fácilmente nuevas plataformas académicas extendiendo el módulo academic_platforms.

Estrategia de Fuentes

El objetivo a largo plazo no es depender de un único motor de búsqueda, sino combinar múltiples fuentes gratuitas y públicas con roles claros:

  • Columna vertebral de metadatos abiertos: Crossref, OpenAlex, Semantic Scholar, dblp, CiteSeerX, SSRN, Unpaywall (metadatos OA centrados en DOI).
  • Fuentes específicas por disciplina: arXiv, PubMed, PubMed Central, Europe PMC, IACR.
  • Fuentes de texto completo de acceso abierto: arXiv, PMC, CORE, OpenAIRE, DOAJ, BASE, Zenodo, HAL, enlaces de acceso abierto de los editores.
  • Descubrimiento y recuperación de DOI: Google Scholar puede ser útil para encontrar títulos, versiones y pistas de DOI cuando otras fuentes de metadatos públicas están incompletas.

Hoja de ruta recomendada de prioridad gratuita:

  1. Mantener estables las fuentes públicas actuales.
  2. Añadir OpenAlex como fuente amplia de metadatos gratuita.
  3. Añadir PubMed Central y Europe PMC para un acceso más sólido a texto completo biomédico.
  4. Añadir CORE y OpenAIRE para recuperación de acceso abierto basada en repositorios.
  5. Usar Google Scholar principalmente como respaldo de descubrimiento, no como fuente canónica principal.

Matriz de Capacidades de Plataforma

Esta matriz refleja resultados verificados de integración en vivo de pruebas funcionales y de regresión de extremo a extremo en este repositorio. Las columnas muestran el nivel de capacidad más alto observado en condiciones normales.

PlataformaBúsquedaDescargaLecturaNotas
arXivAPI abierta; fiable
PubMed⚠️ solo informaciónAPI abierta; fiable
bioRxivAPI abierta; fiable
medRxivAPI abierta; fiable
Google Scholar⚠️Detección de bots activa; configurar PAPER_SEARCH_MCP_GOOGLE_SCHOLAR_PROXY_URL
IACRAPI abierta; fiable
Semantic Scholar✅ (OA)✅ (OA)Funciona sin clave (con límite de tasa); la clave mejora los límites; el rechazo de clave (403) se reintenta automáticamente sin clave
Crossref⚠️ solo informaciónAPI abierta; fiable
OpenAlex⚠️ solo informaciónAPI abierta; fiable
PMC✅ (solo OA)✅ (solo OA)Solo PDFs OA; la descarga directa puede estar bloqueada por algunos entornos proxy
CORE✅ (depende del registro)✅ (depende del registro)Se recomienda clave gratuita; el conector reintenta con retroceso y vuelve a modo sin clave en 401/403
Europe PMC✅ (OA)✅ (OA)Solo PDFs OA; la descarga directa puede estar bloqueada por algunos entornos proxy
dblp⚠️ solo informaciónAPI abierta; fiable
OpenAIREAPI abierta; reintenta 3× con perfiles de solicitud crecientes en 403 transitorios
CiteSeerX⚠️✅ (depende del registro)⚠️El endpoint de API está intermitentemente no disponible / redirige al archivo web
DOAJ⚠️ (depende de la URL)⚠️ (depende de la URL)La disponibilidad de PDF varía según el artículo; la clave gratuita aumenta los límites de tasa
BASE⚠️✅ (depende del registro)✅ (depende del registro)El endpoint OAI-PMH requiere registro de IP institucional; devuelve vacío correctamente en caso contrario
Zenodo✅ (depende del registro)✅ (depende del registro)API abierta; fiable
HAL✅ (depende del registro)✅ (depende del registro)API abierta; fiable
SSRN⚠️⚠️ mejor esfuerzo⚠️ mejor esfuerzoDetección de bots 403 activa; solo PDF público
Unpaywall✅ (búsqueda por DOI)Requiere PAPER_SEARCH_MCP_UNPAYWALL_EMAIL
Sci-Hub (opcional)⚠️ solo respaldoOpcional; espejos inestables; responsabilidad del usuario
IEEE Xplore 🔑🚧 esqueleto🚧 esqueleto🚧 esqueletoRequiere PAPER_SEARCH_MCP_IEEE_API_KEY para activarse
ACM DL 🔑🚧 esqueleto🚧 esqueleto🚧 esqueletoRequiere PAPER_SEARCH_MCP_ACM_API_KEY para activarse

✅ = fiable en pruebas en vivo. ⚠️ = funciona pero sujeto a inestabilidad ascendente o restricciones de acceso. ❌ = no compatible. 🔑 = requiere clave. 🚧 = solo esqueleto.


Requisitos de Credenciales y Claves API

Todas las claves son opcionales salvo que se indique. Configúralas en ~/.config/paper-search-mcp/.env (preferido) o como exportaciones de shell.

Variable de EntornoProveedor¿Obligatoria?Cómo obtenerla
PAPER_SEARCH_MCP_UNPAYWALL_EMAILUnpaywall (Unpaywall deshabilitado sin ella)Cualquier correo electrónico válido; regístrate en unpaywall.org
PAPER_SEARCH_MCP_CORE_API_KEYCORERecomendadaGratuita en core.ac.uk/services/api
PAPER_SEARCH_MCP_SEMANTIC_SCHOLAR_API_KEYSemantic ScholarOpcionalGratuita en semanticscholar.org — mejora los límites de tasa
PAPER_SEARCH_MCP_GOOGLE_SCHOLAR_PROXY_URLGoogle ScholarOpcionalTu URL de proxy HTTP/HTTPS — evita la detección de bots
PAPER_SEARCH_MCP_DOAJ_API_KEYDOAJOpcionalGratuita en doaj.org — aumenta el límite de tasa por hora
PAPER_SEARCH_MCP_ZENODO_ACCESS_TOKENZenodoOpcionalGratuita en zenodo.org — requerida para registros privados
PAPER_SEARCH_MCP_IEEE_API_KEYIEEE XploreRequerida para activarGratuita en developer.ieee.org
PAPER_SEARCH_MCP_ACM_API_KEYACM DLRequerida para activarConsulta libraries.acm.org/digital-library/acm-open

Todas las variables siguen el esquema de prefijo PAPER_SEARCH_MCP_<NAME>. Los nombres heredados sin el prefijo (p. ej. CORE_API_KEY, UNPAYWALL_EMAIL) siguen siendo compatibles por retrocompatibilidad.


Limitaciones Conocidas de Fuentes Externas

Algunos fallos de búsqueda son causados por inestabilidad de proveedores externos, no por errores de este proyecto:

FuenteSíntomaCausaSolución
Google ScholarDevuelve 0 resultados / HTML vacíoDetección de bots (CAPTCHA)Configurar PAPER_SEARCH_MCP_GOOGLE_SCHOLAR_PROXY_URL con un proxy
Semantic ScholarRespuestas 429 de límite de tasaLímite de tasa de acceso anónimoConfigurar PAPER_SEARCH_MCP_SEMANTIC_SCHOLAR_API_KEY; si la clave es rechazada (403) el conector reintenta automáticamente sin clave
COREErrores 500 / tiempo de esperaLimitación de tasa sin autenticaciónConfigurar PAPER_SEARCH_MCP_CORE_API_KEY (gratuita); el conector reintenta con retroceso exponencial y vuelve a modo sin clave en 401/403
OpenAIRERespuestas 403 transitoriasLimitación de tasa por sesión basada en IPEl conector reintenta 3× por perfil, escalando: sesión simple → cabecera Accept XML → requests.get crudo con UA de Mozilla
CiteSeerX404 mediante redirección de archivo webEl endpoint de PSU redirige intermitentemente al archivoSin solución; el conector devuelve vacío correctamente
BASELa búsqueda devuelve 0 resultadosEl endpoint OAI-PMH requiere registro de IP institucionalRegístrate en base-search.net para acceso API; el conector devuelve vacío correctamente en caso contrario
SSRNHTTP 403Detección de bots (Cloudflare)Sin solución; el conector prueba dos endpoints y devuelve un mensaje claro en caso de fallo
PMC / Europe PMCProxyError en descarga de PDFProxy local bloquea la descarga directa de PDF por HTTPSDeshabilitar el proxy o usar download_with_fallback en su lugar
UnpaywallSe omite por completoVariable de entorno UNPAYWALL_EMAIL no configuradaConfigurar PAPER_SEARCH_MCP_UNPAYWALL_EMAIL en ~/.config/paper-search-mcp/.env

Conectores de Plataformas de Pago Opcionales (Fase 3)

Los conectores de IEEE Xplore y ACM Digital Library se incluyen como esqueletos de participación voluntaria. Están deshabilitados por defecto — no se realizan llamadas API a menos que configures explícitamente las claves correspondientes.

PlataformaVariable de EntornoEstado
IEEE XplorePAPER_SEARCH_MCP_IEEE_API_KEY🚧 esqueleto — búsqueda registrada, descarga/lectura lanzan NotImplementedError
ACM Digital LibraryPAPER_SEARCH_MCP_ACM_API_KEY🚧 esqueleto — búsqueda registrada, descarga/lectura lanzan NotImplementedError

Cómo habilitarlos:

export PAPER_SEARCH_MCP_IEEE_API_KEY=<your_ieee_key>       # free key at https://developer.ieee.org/
export PAPER_SEARCH_MCP_ACM_API_KEY=<your_acm_key>         # see https://libraries.acm.org/digital-library

Una vez que se configura una clave, la fuente correspondiente se añade automáticamente a ALL_SOURCES y sus herramientas MCP (search_ieee / search_acm, download_ieee / download_acm, read_ieee_paper / read_acm_paper) se registran al iniciar el servidor.

Sin una clave, los conectores solo registran una advertencia de inicio — el resto del servidor no se ve afectado.

Expansión de Fuentes Gratuitas (Fase 4)

Tres conectores adicionales de fuentes gratuitas están ahora integrados en el servidor MCP:

  • zenodo: Conector oficial de la API REST de Zenodo (búsqueda + soporte de PDF/lectura según el registro).
  • hal: Conector de la API pública de HAL (búsqueda + soporte de PDF/lectura según el registro).
  • ssrn: Conector centrado en el descubrimiento con analizador robusto y descarga/lectura de mejor esfuerzo cuando hay un enlace PDF público directo disponible.
  • unpaywall: Fuente de metadatos OA centrada en DOI para consulta independiente (search_unpaywall) y resolución de URL de respaldo.

La integración con SSRN sigue priorizando el cumplimiento: solo intenta enlaces PDF públicos directos expuestos por las páginas de SSRN. Si se requiere inicio de sesión o entrega restringida, el conector devuelve un mensaje claro en lugar de eludir los controles de acceso.

Aviso sobre Sci-Hub

El soporte de Sci-Hub puede seguir disponible como conector opcional para usuarios que elijan habilitarlo explícitamente, pero no debe tratarse como la vía predeterminada o recomendada para el texto completo.

  • La disponibilidad es inestable y los espejos cambian con frecuencia.
  • Los riesgos legales y de política varían según la jurisdicción.
  • El README y las descripciones de las herramientas deben indicar claramente que los usuarios son responsables de habilitarlo y usarlo.
  • Las fuentes de acceso abierto y las permitidas por los editores deben probarse primero siempre que sea posible.

Instalación

Elige el método que mejor se adapte a tu flujo de trabajo. Todos los métodos admiten las mismas claves API opcionales.


Claude Code (Skill) — recomendado para usuarios de Claude Code

Instálalo como una skill de Claude Code en lugar de un servidor MCP. Esto le da a Claude acceso automático a la búsqueda de artículos cuando menciones la búsqueda de papers, literatura académica, etc. — sin necesidad de configuración MCP.

Requisitos previos: uv y Claude Code.

Paso 1 — Instala la CLI:

uv tool install paper-search-mcp

Paso 2 — Instala la skill:

mkdir -p ~/.claude/skills/paper-search
curl -fsSL https://raw.githubusercontent.com/openags/paper-search-mcp/main/claude-code/SKILL.md \
  -o ~/.claude/skills/paper-search/SKILL.md

Paso 3 (opcional) — Configura las claves API:

Crea ~/.config/paper-search-mcp/.env para las claves API opcionales (consulta Variables de entorno).

Eso es todo. La próxima vez que inicies Claude Code, solo pídele que encuentre artículos — la skill se activa automáticamente. Por ejemplo:

  • "Encuentra artículos recientes sobre edición base CRISPR"
  • "Busca en arXiv y Semantic Scholar mecanismos de atención en transformers"
  • "Descarga el PDF del artículo arXiv 2106.12345"

La skill utiliza una CLI (paper-search) que envuelve la misma librería que el servidor MCP, generando JSON para búsqueda/descarga y texto plano para lectura.


Ubicaciones de archivos de configuración del servidor MCP (para los métodos a continuación)

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

Método 1 — Smithery (un comando, recomendado para Claude Desktop)

npx -y @smithery/cli install @openags/paper-search-mcp --client claude

Smithery escribe automáticamente el bloque de configuración correcto por ti. No se necesita edición manual de JSON.


Método 2 — uvx (sin instalación, siempre la última versión)

uvx ejecuta el paquete directamente desde PyPI sin una instalación permanente. Requiere uv.

# Install uv (skip if already installed)
curl -LsSf https://astral.sh/uv/install.sh | sh

⚠️ Nota para macOS: los scripts de envoltura generados por uvx dependen de realpath, que no está incluido en macOS de forma predeterminada. Si ves un error de realpath: command not found, instala GNU coreutils (brew install coreutils) o usa el Método 3 (uv run) en su lugar — no tiene esta limitación.

Configuración de Claude Desktop:

{
  "mcpServers": {
    "paper-search-mcp": {
      "command": "uvx",
      "args": ["paper-search-mcp"],
      "env": {
        "PAPER_SEARCH_MCP_UNPAYWALL_EMAIL": "your@email.com",
        "PAPER_SEARCH_MCP_CORE_API_KEY": "",
        "PAPER_SEARCH_MCP_SEMANTIC_SCHOLAR_API_KEY": "",
        "PAPER_SEARCH_MCP_ZENODO_ACCESS_TOKEN": "",
        "PAPER_SEARCH_MCP_GOOGLE_SCHOLAR_PROXY_URL": "",
        "PAPER_SEARCH_MCP_IEEE_API_KEY": "",
        "PAPER_SEARCH_MCP_ACM_API_KEY": ""
      }
    }
  }
}

Método 3 — uv (instalación persistente)

uv tool install paper-search-mcp

Configuración de Claude Desktop:

{
  "mcpServers": {
    "paper-search-mcp": {
      "command": "uv",
      "args": ["tool", "run", "paper-search-mcp"],
      "env": {
        "PAPER_SEARCH_MCP_UNPAYWALL_EMAIL": "your@email.com",
        "PAPER_SEARCH_MCP_CORE_API_KEY": "",
        "PAPER_SEARCH_MCP_SEMANTIC_SCHOLAR_API_KEY": "",
        "PAPER_SEARCH_MCP_ZENODO_ACCESS_TOKEN": "",
        "PAPER_SEARCH_MCP_GOOGLE_SCHOLAR_PROXY_URL": "",
        "PAPER_SEARCH_MCP_IEEE_API_KEY": "",
        "PAPER_SEARCH_MCP_ACM_API_KEY": ""
      }
    }
  }
}

Método 4 — pip (instalación estándar de Python)

pip install paper-search-mcp

Configuración de Claude Desktop:

{
  "mcpServers": {
    "paper-search-mcp": {
      "command": "python",
      "args": ["-m", "paper_search_mcp.server"],
      "env": {
        "PAPER_SEARCH_MCP_UNPAYWALL_EMAIL": "your@email.com",
        "PAPER_SEARCH_MCP_CORE_API_KEY": "",
        "PAPER_SEARCH_MCP_SEMANTIC_SCHOLAR_API_KEY": "",
        "PAPER_SEARCH_MCP_ZENODO_ACCESS_TOKEN": "",
        "PAPER_SEARCH_MCP_GOOGLE_SCHOLAR_PROXY_URL": "",
        "PAPER_SEARCH_MCP_IEEE_API_KEY": "",
        "PAPER_SEARCH_MCP_ACM_API_KEY": ""
      }
    }
  }
}

Si python no está en tu PATH, reemplázalo con la ruta completa (por ejemplo, /usr/bin/python3 o C:\Python311\python.exe). Ejecuta which python3 / where python para encontrarlo.


Método 5 — npx (mediante CLI de Smithery, sin Python local necesario)

npx -y @smithery/cli run @openags/paper-search-mcp

Configuración de Claude Desktop:

{
  "mcpServers": {
    "paper-search-mcp": {
      "command": "npx",
      "args": ["-y", "@smithery/cli", "run", "@openags/paper-search-mcp"],
      "env": {
        "PAPER_SEARCH_MCP_UNPAYWALL_EMAIL": "your@email.com",
        "PAPER_SEARCH_MCP_CORE_API_KEY": "",
        "PAPER_SEARCH_MCP_SEMANTIC_SCHOLAR_API_KEY": ""
      }
    }
  }
}

Método 6 — Docker

docker build -t paper-search-mcp .
docker run --rm -i \
  -e PAPER_SEARCH_MCP_UNPAYWALL_EMAIL=your@email.com \
  -e PAPER_SEARCH_MCP_CORE_API_KEY=your_core_key \
  paper-search-mcp

Configuración de Claude Desktop:

{
  "mcpServers": {
    "paper-search-mcp": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "paper-search-mcp"],
      "env": {
        "PAPER_SEARCH_MCP_UNPAYWALL_EMAIL": "your@email.com",
        "PAPER_SEARCH_MCP_CORE_API_KEY": "",
        "PAPER_SEARCH_MCP_SEMANTIC_SCHOLAR_API_KEY": "",
        "PAPER_SEARCH_MCP_ZENODO_ACCESS_TOKEN": "",
        "PAPER_SEARCH_MCP_GOOGLE_SCHOLAR_PROXY_URL": "",
        "PAPER_SEARCH_MCP_IEEE_API_KEY": "",
        "PAPER_SEARCH_MCP_ACM_API_KEY": ""
      }
    }
  }
}

Método 7 — Clonar y ejecutar desde el código fuente (desarrollo / recomendado para macOS local)

Este es el método más confiable en macOS — sin scripts de envoltura, sin problemas de realpath.

# 1. Install uv (skip if already installed)
curl -LsSf https://astral.sh/uv/install.sh | sh

# 2. Clone repo
git clone https://github.com/openags/paper-search-mcp.git
cd paper-search-mcp

# 3. Verify it runs (uv auto-resolves dependencies, no manual install needed)
uv run -m paper_search_mcp.server

Configuración de Claude Desktop (reemplaza la ruta del directorio con la ubicación real de tu clon):

{
  "mcpServers": {
    "paper-search-mcp": {
      "command": "uv",
      "args": [
        "run",
        "--directory", "/path/to/paper-search-mcp",
        "-m", "paper_search_mcp.server"
      ],
      "env": {
        "PAPER_SEARCH_MCP_UNPAYWALL_EMAIL": "your@email.com",
        "PAPER_SEARCH_MCP_CORE_API_KEY": "",
        "PAPER_SEARCH_MCP_SEMANTIC_SCHOLAR_API_KEY": "",
        "PAPER_SEARCH_MCP_ZENODO_ACCESS_TOKEN": "",
        "PAPER_SEARCH_MCP_GOOGLE_SCHOLAR_PROXY_URL": "",
        "PAPER_SEARCH_MCP_IEEE_API_KEY": "",
        "PAPER_SEARCH_MCP_ACM_API_KEY": ""
      }
    }
  }
}

Por ejemplo, si clonaste en /Users/mac/Pengsong/paper-search-mcp:

"args": ["run", "--directory", "/Users/mac/Pengsong/paper-search-mcp", "-m", "paper_search_mcp.server"]

uv run instala automáticamente las dependencias en un entorno aislado en la primera ejecución — sin necesidad de pip install o venv.

Para desarrollo activo, opcionalmente instala una copia editable:

uv venv && source .venv/bin/activate   # Windows: .venv\Scripts\activate
uv pip install -e ".[dev]"

Variables de entorno (archivo .env)

En lugar de poner las claves directamente en la configuración JSON, puedes guardarlas en el archivo de configuración del usuario (se carga automáticamente al inicio):

mkdir -p ~/.config/paper-search-mcp
curl -fsSL https://raw.githubusercontent.com/openags/paper-search-mcp/main/.env.example \
  -o ~/.config/paper-search-mcp/.env
$EDITOR ~/.config/paper-search-mcp/.env
PAPER_SEARCH_MCP_UNPAYWALL_EMAIL=your@email.com
PAPER_SEARCH_MCP_CORE_API_KEY=
PAPER_SEARCH_MCP_SEMANTIC_SCHOLAR_API_KEY=
PAPER_SEARCH_MCP_ZENODO_ACCESS_TOKEN=
PAPER_SEARCH_MCP_GOOGLE_SCHOLAR_PROXY_URL=
PAPER_SEARCH_MCP_IEEE_API_KEY=
PAPER_SEARCH_MCP_ACM_API_KEY=

Para usar una ruta personalizada: export PAPER_SEARCH_MCP_ENV_FILE=/absolute/path/to/.env

Los nombres de variables heredados sin el prefijo PAPER_SEARCH_MCP_ (por ejemplo, CORE_API_KEY, UNPAYWALL_EMAIL) aún se admiten por compatibilidad con versiones anteriores.


Contribuciones

¡Damos la bienvenida a las contribuciones! Así puedes empezar:

  1. Haz un fork del repositorio: Haz clic en "Fork" en GitHub.

  2. Clona y configura:

    git clone https://github.com/yourusername/paper-search-mcp.git
    cd paper-search-mcp
    uv venv && source .venv/bin/activate
    uv pip install -e ".[dev]"
    
  3. Realiza cambios:

    • Añade nuevas plataformas en academic_platforms/.
    • Actualiza las pruebas en tests/.
  4. Envía una solicitud de extracción (pull request): Sube los cambios y crea un PR en GitHub.


Demo

Demo

Pendientes

Plataformas académicas planificadas

  • [√] arXiv
  • [√] PubMed
  • [√] bioRxiv
  • [√] medRxiv
  • [√] Google Scholar
  • [√] IACR ePrint Archive
  • [√] Semantic Scholar
  • [√] Crossref
  • [√] PubMed Central (PMC)
  • [√] CORE
  • [√] Europe PMC
  • [√] Documentación de advertencia y habilitación de Sci-Hub

Tareas de desarrollo

  • [√] Corregir errores de búsqueda asíncrona y asegurar eventos MCP rápidos y fiables
  • [√] Script de prueba completa de extremo a extremo (búsqueda, análisis, descarga)
  • [√] Establecer arquitectura federada de dos capas (herramienta de capa 1: search_papers)
  • [√] Asegurar extracción generalizada de DOI en campos de metadatos y respaldos de resumen
  • Gráfico de citaciones y contexto de relaciones entre artículos
  • [√] Expandir el proveedor OpenAlex de pila completa

Fuentes gratuitas y abiertas prioritarias

  • [√] PubMed Central (PMC)
  • [√] CORE
  • [√] OpenAlex
  • [√] Europe PMC
  • [√] OpenAIRE
  • [√] dblp
  • [√] CiteSeerX
  • [√] DOAJ
  • [√] BASE
  • [√] Zenodo
  • [√] HAL
  • [√] SSRN (descubrimiento + texto completo de mejor esfuerzo)
  • [√] Unpaywall (fuente de búsqueda autónoma por DOI)

Integraciones opcionales y no principales

  • ResearchGate
  • JSTOR
  • ScienceDirect
  • Springer Link
  • [√] IEEE Xplore (esqueleto opcional — actívalo con IEEE_API_KEY)
  • [√] ACM Digital Library (esqueleto opcional — actívalo con ACM_API_KEY)
  • Web of Science
  • Scopus

Historial de estrellas

Star History Chart


Licencia

Este proyecto está bajo la Licencia MIT. Consulta el archivo LICENSE para más detalles.


¡Feliz investigación con paper-search-mcp! Si encuentras problemas, abre un issue en GitHub.