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
- Características
- Instalación
- Configuración
- Uso
- Ejemplos
- Límite de Velocidad
- Solución de Problemas
- 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.11o posterior- Dependencias:
mcp[cli]>=1.4.0,scholarly>=1.7.11,pydantic>=2.0(ver pyproject.toml)- El proyecto utiliza
uvpara la gestión de dependencias
- El proyecto utiliza
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:
| Variable | Predeterminado | Descripción |
|---|---|---|
GS_MIN_DELAY | 5.0 | Segundos mínimos entre solicitudes |
GS_MAX_DELAY | 15.0 | Segundos máximos entre solicitudes |
GS_MAX_RETRIES | 3 | Número de reintentos en caso de fallo |
GS_PROXY_TYPE | none | Modo de proxy: none, free, single, scraperapi |
GS_PROXY_HTTP | — | URL del proxy HTTP (para modo single) |
GS_PROXY_HTTPS | — | URL del proxy HTTPS (para modo single) |
GS_SCRAPERAPI_KEY | — | Clave de ScraperAPI (para modo scraperapi) |
GS_TIMEOUT | 30 | Tiempo 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:
| Plataforma | Ruta |
|---|---|
| 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:
- Nunca reduzcas los retrasos por debajo de 5 segundos — los valores predeterminados están ajustados para fiabilidad
- Usa la herramienta bulk_search en lugar de búsquedas secuenciales rápidas — incluye retrasos integrados
- Agrega margen adicional durante operaciones masivas — considera establecer
GS_MIN_DELAY=10.0para trabajos grandes - Usa un servicio de proxy (proxy gratuito o ScraperAPI) para distribuir solicitudes entre múltiples IPs
- Monitorea errores 429 — si los ves, aumenta los retrasos inmediatamente y espera antes de reintentar
- 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=freeoscraperapipara 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
| Escenario | GS_MIN_DELAY | GS_MAX_DELAY | Notas |
|---|---|---|---|
| Búsquedas individuales | 5.0 | 15.0 | Predeterminado; seguro para consultas ocasionales |
| Operaciones masivas | 10.0 | 20.0 | Úsalo para trabajos por lotes; evita solicitudes rápidas consecutivas |
| Carga pesada | 15.0 | 30.0 | Úsalo con proxy para investigación a gran escala |
| Agresivo ⚠️ | <5.0 | <10.0 | No 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:
- Aumenta los retrasos: Establece valores más altos para
GS_MIN_DELAYyGS_MAX_DELAY - Usa un proxy: Establece
GS_PROXY_TYPE=freeo usa ScraperAPI - 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_TIMEOUTsi 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:
- Haz un fork del repositorio
- Crea una rama de características (
git checkout -b feature/your-feature) - Realiza tus cambios con mensajes claros
- Haz push a tu fork
- Abre una solicitud de extracción (pull request)
Soporte
Para problemas, preguntas o solicitudes de funciones, abre un issue en GitHub.