Google Scholar MCP

Un servidor MCP para buscar en Google Scholar, diseñado para asistentes de IA y flujos de automatización que necesitan artículos, autores, citas y entradas BibTeX.

Documentación

google-scholar-search-mcp

Un servidor MCP (Model Context Protocol) para buscar en Google Scholar, diseñado para asistentes de IA y flujos de automatización que necesiten artículos, autores, citas y entradas BibTeX.

Tabla de Contenidos

  1. Características
  2. Instalación
  3. Configuración
  4. Uso
  5. Ejemplos
  6. Límite de Velocidad
  7. Solución de Problemas
  8. Contribuciones

Características

  • Búsqueda de Artículos: Consulta Google Scholar por palabra clave con filtrado, ordenamiento y paginación
  • Búsqueda de Autores: Encuentra perfiles de investigadores con listas de publicaciones y métricas de índice h
  • Seguimiento de Citas: Recupera artículos que citan un trabajo determinado
  • Detalles de Artículos: Obtén metadatos completos, gráficos de citas por año e información de acceso público
  • Exportación BibTeX: Genera entradas de citas en formato BibTeX
  • Búsqueda Masiva: Ejecuta múltiples consultas por lotes con límite de velocidad automático
  • Límite de Velocidad: Retrasos integrados entre solicitudes para evitar bloqueos
  • Soporte de Proxy: Configuración opcional de proxy (gratuito, único o ScraperAPI)

Instalación

Requisitos

  • Python 3.11 o posterior
  • Dependencias: mcp[cli]>=1.4.0, scholarly>=1.7.11, pydantic>=2.0 (ver pyproject.toml)
    • El proyecto utiliza uv para la gestión de dependencias

Instalar desde PyPI

pip install google-scholar-search-mcp

Compilar desde el Código Fuente

git clone https://github.com/LWaetzig/google-scholar-search-mcp.git
cd google-scholar-search-mcp
pip install -e .

Nota: Este servidor utiliza la biblioteca scholarly para acceder a Google Scholar. Respeta los Términos de Servicio de Google y utiliza el límite de velocidad de manera adecuada para evitar bloqueos.

Configuración

Configura el servidor MCP mediante variables de entorno:

VariablePredeterminadoDescripción
GS_MIN_DELAY5.0Segundos mínimos entre solicitudes
GS_MAX_DELAY15.0Segundos máximos entre solicitudes
GS_MAX_RETRIES3Número de reintentos en caso de fallo
GS_PROXY_TYPEnoneModo de proxy: none, free, single, scraperapi
GS_PROXY_HTTPURL del proxy HTTP (para modo single)
GS_PROXY_HTTPSURL del proxy HTTPS (para modo single)
GS_SCRAPERAPI_KEYClave de ScraperAPI (para modo scraperapi)
GS_TIMEOUT30Tiempo de espera de solicitud en segundos

Ejemplos de Configuración de Proxy

Sin Proxy (Predeterminado)

export GS_PROXY_TYPE=none

Proxy Gratuito

export GS_PROXY_TYPE=free

Proxy Único

export GS_PROXY_TYPE=single
export GS_PROXY_HTTP=http://proxy.example.com:8080
export GS_PROXY_HTTPS=https://proxy.example.com:8080

ScraperAPI

export GS_PROXY_TYPE=scraperapi
export GS_SCRAPERAPI_KEY=your_key_here

Uso

Documentación detallada sobre las herramientas individuales se puede encontrar aquí

Integración con Claude Desktop

Agrega el servidor a tu configuración de Claude Desktop:

PlataformaRuta
macOS~/Library/Application Support/Claude/claude_desktop_config.json
Windows%APPDATA%\Claude\claude_desktop_config.json

Agrega la entrada google_scholar_mcp bajo mcpServers, reemplazando la ruta con la ruta absoluta a tu clon:

{
  "mcpServers": {
    "google-scholar": {
      "command": "python",
      "args": ["-m", "google_scholar_mcp.server"],
      "env": {
        "GS_MIN_DELAY": "5.0",
        "GS_MAX_DELAY": "15.0",
        "GS_PROXY_TYPE": "none"
      }
    }
  }
}

Después de actualizar la configuración, reinicia Claude Desktop. Las herramientas de Google Scholar aparecerán en el panel de Herramientas MCP.

Integración con Otros Clientes MCP

Cualquier cliente MCP (por ejemplo, Cline, Continue o herramientas personalizadas) puede usar este servidor. Configura la conexión a:

Command: python -m google_scholar_mcp.server
Transport: stdio

Límite de Velocidad

El servidor aplica automáticamente límites de velocidad entre solicitudes para evitar sobrecargar los servidores de Google Scholar:

  • Retraso Mínimo (predeterminado 5s): Espera mínima entre solicitudes consecutivas
  • Retraso Máximo (predeterminado 15s): Espera máxima (aleatorizada para evitar patrones)
  • Reintentos Máximos (predeterminado 3): Reintenta solicitudes fallidas hasta este número de veces

Estos ajustes ayudan a prevenir bloqueos por parte de Google Scholar. Ajusta mediante variables de entorno si es necesario:

export GS_MIN_DELAY=3.0
export GS_MAX_DELAY=10.0
export GS_MAX_RETRIES=5

⚠️ Advertencia de Bloqueo de IP

Si excedes los límites de velocidad de Google Scholar a pesar del limitador:

  • Tu IP puede ser bloqueada temporalmente (generalmente 24-48 horas)
  • Todas las solicitudes fallarán con errores de conexión o respuestas 429
  • Las IPs bloqueadas no pueden hacer solicitudes incluso con proxies válidos en el mismo rango de IP
  • Las violaciones repetidas pueden provocar bloqueos permanentes o requerir resolución de CAPTCHA

Prácticas Recomendadas:

  1. Nunca reduzcas los retrasos por debajo de 5 segundos — los valores predeterminados están ajustados para fiabilidad
  2. Usa la herramienta bulk_search en lugar de búsquedas secuenciales rápidas — incluye retrasos integrados
  3. Agrega margen adicional durante operaciones masivas — considera establecer GS_MIN_DELAY=10.0 para trabajos grandes
  4. Usa un servicio de proxy (proxy gratuito o ScraperAPI) para distribuir solicitudes entre múltiples IPs
  5. Monitorea errores 429 — si los ves, aumenta los retrasos inmediatamente y espera antes de reintentar
  6. Distribuye las solicitudes en el tiempo — no ejecutes 100 consultas en 5 minutos, incluso con retrasos

Recuperación de Bloqueos de IP

Si tu IP es bloqueada:

  • Espera 24-48 horas para que expire el bloqueo temporal
  • Usa un proxy — habilita GS_PROXY_TYPE=free o scraperapi para enrutar a través de diferentes IPs
  • Cambia tu red — usa un WiFi/ISP diferente temporalmente si es posible
  • Contacta al soporte — para bloqueos persistentes, escala al soporte de Google Scholar

Elección de Retrasos Apropiados

EscenarioGS_MIN_DELAYGS_MAX_DELAYNotas
Búsquedas individuales5.015.0Predeterminado; seguro para consultas ocasionales
Operaciones masivas10.020.0Úsalo para trabajos por lotes; evita solicitudes rápidas consecutivas
Carga pesada15.030.0Úsalo con proxy para investigación a gran escala
Agresivo ⚠️<5.0<10.0No recomendado; alto riesgo de bloqueo de IP

Solución de Problemas

"Error: 429 Too Many Requests"

Has alcanzado el límite de velocidad de Google Scholar. Soluciones:

  1. Aumenta los retrasos: Establece valores más altos para GS_MIN_DELAY y GS_MAX_DELAY
  2. Usa un proxy: Establece GS_PROXY_TYPE=free o usa ScraperAPI
  3. Espera y reintenta: Google Scholar puede estar bloqueando temporalmente; intenta de nuevo más tarde

"No se encontraron resultados"

  • Verifica la sintaxis de tu consulta (Google Scholar admite operadores de búsqueda avanzados)
  • Asegúrate de que el nombre del autor/artículo esté escrito correctamente
  • Intenta una consulta más simple con menos palabras clave

"Tiempo de espera de conexión agotado"

  • Aumenta GS_TIMEOUT si tu red es lenta
  • Verifica tu conexión a internet
  • Verifica la configuración del proxy si estás usando uno

Contribuciones

¡Las contribuciones son bienvenidas! Por favor:

  1. Haz un fork del repositorio
  2. Crea una rama de características (git checkout -b feature/your-feature)
  3. Realiza tus cambios con mensajes claros
  4. Haz push a tu fork
  5. Abre una solicitud de extracción (pull request)

Soporte

Para problemas, preguntas o solicitudes de funciones, abre un issue en GitHub.

Licencia

Ver archivo LICENSE