Google Scholar MCP Server

Resultados de búsqueda de Google Scholar, recuentos de citas y formatos de exportación de citas, como JSON estructurado.

Documentación

Servidor MCP de Google Scholar

Un servidor de Protocolo de Contexto de Modelo (MCP) alojado que brinda a Claude, Cursor, Windsurf y cualquier otro cliente MCP dos herramientas de solo lectura para Google Scholar. Busca en la literatura con los operadores propios de Scholar, rangos de años y consultas de citas, luego obtén la cita de un artículo en cinco estilos con sus enlaces de exportación BibTeX y EndNote, ambos como JSON estructurado, sin necesidad de alojar nada.

Lee páginas públicas de Google Scholar que un visitante sin sesión puede ver.

1,000 créditos gratis cada mes, sin necesidad de tarjeta, lo que equivale a 100 llamadas a Scholar a la tarifa de 10 créditos.

https://mcp.hasdata.com/api/mcp?apis=google_scholar

Glama score tool contract MCP Tools npm PyPI License

Contenido

Lo que necesitas

Un cliente MCP y una clave API de HasData desde el panel de control, gratis de crear sin tarjeta, y el nivel gratuito cubre unas 100 llamadas al mes a la tarifa de 10 créditos. Este es un servidor remoto, así que el camino más simple es una URL y un encabezado x-api-key, sin contenedor que ejecutar. Un cliente que solo habla stdio lo alcanza a través de un lanzador ligero, publicado como @hasdata/google-scholar-mcp en npm y hasdata-google-scholar-mcp en PyPI, como se muestra abajo.

Inicio rápido

La URL del servidor es la misma para todos los clientes. Lo ejecutamos de forma práctica en Claude Code y Claude Desktop. Los demás bloques siguen el formato documentado de cada cliente para un servidor remoto.

CampoValor
URLhttps://mcp.hasdata.com/api/mcp?apis=google_scholar
TransporteHTTP, transmisible
Encabezado de autenticaciónx-api-key: HASDATA_API_KEY

Los clientes con soporte OAuth pueden añadir la misma URL como conector e iniciar sesión sin poner una clave en un archivo de configuración.

Claude Code
claude mcp add --transport http google-scholar "https://mcp.hasdata.com/api/mcp?apis=google_scholar" \
  --header "x-api-key: HASDATA_API_KEY"
Claude Desktop

Configuración, luego Conectores, luego Añadir conector personalizado, luego pega https://mcp.hasdata.com/api/mcp?apis=google_scholar e inicia sesión.

Para la ruta de archivo de configuración, Claude Desktop solo carga servidores locales (stdio), por lo que alcanza un servidor remoto a través de un lanzador stdio. El paquete @hasdata/google-scholar-mcp es ese lanzador, y lee la clave del entorno. Añade esto a claude_desktop_config.json:

{
  "mcpServers": {
    "google-scholar": {
      "command": "npx",
      "args": ["-y", "@hasdata/google-scholar-mcp"],
      "env": { "HASDATA_API_KEY": "YOUR_KEY" }
    }
  }
}

Para Python en lugar de Node, cambia el lanzador por el paquete de PyPI, que uvx ejecuta sin instalación manual:

{
  "mcpServers": {
    "google-scholar": {
      "command": "uvx",
      "args": ["hasdata-google-scholar-mcp"],
      "env": { "HASDATA_API_KEY": "YOUR_KEY" }
    }
  }
}
Cursor

~/.cursor/mcp.json para cada proyecto, o .cursor/mcp.json para uno solo:

{
  "mcpServers": {
    "google-scholar": {
      "url": "https://mcp.hasdata.com/api/mcp?apis=google_scholar",
      "headers": { "x-api-key": "HASDATA_API_KEY" }
    }
  }
}
Windsurf

~/.codeium/windsurf/mcp_config.json. Windsurf llama al campo serverUrl, no url:

{
  "mcpServers": {
    "google-scholar": {
      "serverUrl": "https://mcp.hasdata.com/api/mcp?apis=google_scholar",
      "headers": { "x-api-key": "HASDATA_API_KEY" }
    }
  }
}
VS Code

.vscode/mcp.json en el espacio de trabajo:

{
  "servers": {
    "google-scholar": {
      "type": "http",
      "url": "https://mcp.hasdata.com/api/mcp?apis=google_scholar",
      "headers": { "x-api-key": "HASDATA_API_KEY" }
    }
  }
}

Ejemplos de indicaciones

Cada una de estas aterriza en una herramienta, o en dos en secuencia cuando la segunda necesita un id que la primera devuelve.

  • Encuentra artículos sobre arquitecturas de transformadores publicados desde 2023 y ordénalos por número de citas.
  • ¿Quién ha citado este artículo y cómo ha crecido eso año tras año?
  • Dame el BibTeX de este artículo.
  • Encuentra solo artículos de revisión sobre este tema, excluyendo citas sin registros completos.
  • Muéstrame cada versión indexada de este artículo y cuáles de ellas tienen un PDF.
  • Encuentra trabajo reciente de este autor sobre este tema.

Una indicación que nombra un artículo requiere dos llamadas: una búsqueda para llegar a su resultId y una consulta de citas. Una indicación sobre quién cita un artículo también requiere dos, porque la segunda llamada reutiliza citedBy.citesId de la primera.

Herramientas

Dos herramientas, 10 créditos por llamada exitosa.

Obtener resultados de búsqueda de Scholar

hasdata_google_scholar_scholar_getScholarSearchResults

Una página de resultados de Scholar.

ParámetroTipoObligatorioNotas
qstringLa consulta. Los operadores de Scholar como author: y source: funcionan aquí
asYlo / asYhinumberPublicado desde y hasta estos años
startnumberDesplazamiento de resultados, donde 0 es el primer resultado
numnumberResultados por página
scisbdnumber1 ordena los resúmenes por fecha, 2 ordena todo por fecha. Omítelo para relevancia
citesstringEncuentra artículos que citan este, usando un citedBy.citesId
clusterstringEncuentra cada versión indexada de un artículo, usando un versions.clusterId
asSdtstringTipo de búsqueda, 0,5 para artículos, 4 para jurisprudencia, 0 o 7 para patentes
asRrnumber1 devuelve solo artículos de revisión
asVisnumber1 excluye citas, 0 las incluye
hlstringIdioma de la interfaz, uno de 159
lrarrayRestringe a estos idiomas de contenido
safestringactive o off
filternumber1 mantiene los filtros de resultados similares y omitidos de Google, 0 los elimina

Devuelve searchInformation con totalResults, queryDisplayed y el tiempo que Scholar informó, un array organicResults, y pagination.

Cada resultado lleva position, resultId, title, link, snippet, un objeto publicationInfo, un array resources, citedBy, versions, relatedPagesLink y citeHasdataLink.

publicationInfo.authors es la parte que vale la pena conocer. Junto a la línea summary sin procesar, enumera los autores de los que Scholar tiene perfiles, cada uno con un name, un link de perfil y un authorId, que es cómo sigues a un autor en lugar de analizar una línea de autoría.

citedBy y versions son los dos ids que hacen que esta herramienta se componga consigo misma. citedBy.citesId vuelve a cites para recorrer un grafo de citas, y versions.clusterId va a cluster para ver cada copia indexada del mismo artículo.

{
  "position": 1,
  "resultId": "A7L9JolPKkoJ",
  "title": "A historical survey of advances in transformer architectures",
  "link": "https://www.mdpi.com/2076-3417/14/10/4316",
  "snippet": "… of the Vision Transformer (ViT) opening a new realm of architectures which build … transformer architecture, it becomes pertinent to examine in detail the architecture of the transformer …",
  "publicationInfo": {
    "summary": "AR Sajun, I Zualkernan, D Sankalpa - Applied Sciences, 2024 - mdpi.com",
    "authors": [
      { "name": "AR Sajun", "authorId": "k6zWX4EAAAAJ", "link": "https://scholar.google.com/citations?user=k6zWX4EAAAAJ&hl=en" }
    ]
  },
  "resources": [{ "fileFormat": "Html", "title": "mdpi.com", "link": "https://www.mdpi.com/2076-3417/14/10/4316" }],
  "citedBy": { "total": 97, "citesId": "5344171358311789059" },
  "versions": { "total": 7, "clusterId": "5344171358311789059" }
}

Obtener formatos de cita de Scholar

hasdata_google_scholar_cite_getScholarCitationFormats

El bloque de citas para un artículo.

ParámetroTipoObligatorioNotas
qstringUn resultId de un resultado de búsqueda, no una consulta de búsqueda
hlstringIdioma de la interfaz

Devuelve citations, la cadena formateada en MLA, APA, Chicago, Harvard y Vancouver, y links, las URLs de exportación para BibTeX, EndNote, RefMan y RefWorks.

{
  "citations": [
    {
      "title": "APA",
      "snippet": "Sajun, A. R., Zualkernan, I., & Sankalpa, D. (2024). A historical survey of advances in transformer architectures. Applied Sciences, 14(10), 4316."
    }
  ],
  "links": [
    { "name": "BibTeX", "link": "https://scholar.googleusercontent.com/scholar.bib?q=info:A7L9JolPKkoJ:scholar.google.com/&output=citation..." }
  ]
}

Errores y rutas de fallo

Planifica estos en lugar de asumir un camino feliz.

En la herramienta de citas, q es un id de artículo, no una consulta. Toma el resultId de un resultado de búsqueda, como A7L9JolPKkoJ. Pasar un título o un DOI allí no devuelve nada útil, y el nombre de parámetro compartido es la razón por la que la gente se equivoca en esto.

citesId y clusterId pueden contener el mismo valor, y no son intercambiables. Eran idénticos en el artículo anterior. Uno va a cites para encontrar artículos que citan este, el otro va a cluster para encontrar copias de este. Enviar el número correcto al parámetro incorrecto devuelve una página plausible de lo incorrecto.

type llega en algunos resultados y no en otros. Estaba presente en uno de cada cinco resultados, describiendo el formato del recurso principal. Lee resources[].fileFormat cuando necesites saber si existe un PDF.

Un enlace BibTeX es una URL de Scholar con una firma, no el BibTeX en sí. El array links te da direcciones para obtener, y esas llevan tokens scisig que caducan, así que obténlos rápidamente en lugar de almacenarlos para después.

totalResults es la estimación de Scholar y es muy aproximada. La consulta anterior informó 2,080,000. Trátalo como un orden de magnitud, nunca como un recuento.

Scholar cuenta citas, no calidad, e indexa preprints, tesis y registros solo de citas. asVis: 1 elimina entradas solo de citas cuando necesitas registros con metadatos completos.

Paginación profunda se vuelve escasa. Scholar limita hasta dónde llega un conjunto de resultados y comienza a repetir o bloquear mucho antes de lo que sugiere la estimación, así que reduce con asYlo, asYhi o asSdt en lugar de caminar start hacia arriba.

Los resultados que llevan datos también llevan un requestMetadata.id que vale la pena citar en soporte.

Precios, nivel gratuito y límites

Cada herramienta de Scholar cuesta 10 créditos por llamada exitosa. El tamaño de la respuesta no cambia el precio, así que aumentar num es la forma barata de ampliar una búsqueda.

El nivel gratuito es 1,000 créditos cada mes sin tarjeta, lo que equivale a 100 llamadas a Scholar a la tarifa base. Se renueva con el ciclo de facturación, así que un agente de bajo volumen funciona en el nivel gratuito indefinidamente.

Los planes de pago comienzan en $49 al mes por 200,000 créditos, lo que equivale a 20,000 llamadas. El precio unitario baja con el volumen, desde $2.45 por 1,000 llamadas en el plan de entrada hasta $1.00 en Business, $0.84 en Growth y $0.74 en los planes de alto volumen más grandes.

Tu plan también establece la concurrencia. El nivel gratuito permite 1 solicitud a la vez, Startup 15, Business 30, Growth 50, y los planes de alto volumen van de 200 a 1,500. Reintenta en el 429 con retroceso en cualquier cosa desatendida, porque un agente que recorre un grafo de citas alcanzará el techo antes que tú.

Una solicitud que devuelve un no-200 no se factura. Una llamada exitosa que no encuentra nada sigue siendo una llamada.

Selección de herramientas

Comienza desde lo que la indicación te da. Un tema, un autor o un rango de años va a la herramienta de búsqueda. Un resultId que ya tienes va directamente a la herramienta de citas.

Luego piensa en qué id necesita el siguiente paso. Un barrido de literatura es una llamada de búsqueda con un num grande. Un grafo de citas es una llamada de búsqueda seguida de una llamada cites por artículo que sigues. Una pasada de deduplicación entre preprints y versiones publicadas es una llamada cluster por artículo. Cada una de esas reutiliza un id que la primera respuesta ya te dio, así que una segunda llamada de búsqueda suele ser desperdiciada.

Aumenta num antes de paginar. El costo es por llamada en lugar de por resultado, así que una página amplia supera a tres estrechas.

Cómo se compara

Google Scholar no tiene API pública, así que la comparación que vale la pena hacer es contra las APIs bibliográficas abiertas.

OpenAlex o Semantic ScholarEste servidor
ElegibilidadAbierto, sin clave para uso básicoUna clave API
CoberturaAmplia, curada, centrada en DOILo que Scholar indexa, incluyendo tesis y preprints
Recuentos de citasLos suyos propios, calculados desde su grafoLos de Scholar, tal como se muestran
Cadenas de citasConstrúyelas tú mismo desde metadatosMLA, APA, Chicago, Harvard, Vancouver, tal como Scholar las formatea
Enlaces de texto completoDOI y ubicaciones de acceso abiertoLos enlaces de recursos que Scholar muestra, incluyendo PDFs
Metadatos estructuradosRicos y tipadosTal como la página los presenta
La fila que lo decide es de quién necesitas el recuento de citas. Para bibliometría sobre metadatos tipados y estables, OpenAlex y Semantic Scholar son mejores instrumentos y son gratuitos. Recurre a este cuando la pregunta sea específicamente sobre lo que muestra Google Scholar, que es lo que la mayoría de los investigadores realmente consultan, o cuando quieras la cita formateada en lugar de los campos para construir una.

FAQ

¿Existe un servidor MCP oficial de Google Scholar?

Google no publica uno, y Scholar tampoco tiene una API pública. Este es mantenido por HasData y lee las páginas públicas de Scholar.

¿Qué es un servidor MCP de Google Scholar?

Un servidor MCP expone herramientas que un cliente de IA puede llamar. Este convierte los resultados de búsqueda de Scholar y los bloques de citas en JSON sobre el que un agente puede razonar, sin necesidad de un navegador o una biblioteca de scraping en tu stack.

¿Necesito una cuenta de Google?

No. La única credencial es tu clave de HasData.

¿Cómo obtengo el BibTeX de un artículo?

Dos llamadas. Busca para obtener el resultId del artículo, luego pasa ese id como q a la herramienta de citas, y toma la URL de BibTeX de links.

¿Cómo encuentro todo lo que cita un artículo?

Toma citedBy.citesId del resultado de búsqueda y envíalo de vuelta como el parámetro cites. La respuesta son los artículos que citan, paginados como cualquier otra búsqueda.

¿Cuál es la diferencia entre cites y cluster?

cites encuentra artículos que citan al que nombraste. cluster encuentra otras versiones indexadas de ese mismo artículo, como un preprint junto al artículo publicado. Los dos ids a menudo parecen idénticos, así que elige por lo que quieres en lugar de por el número.

¿Puedo buscar por autor?

Sí, con el operador propio de Scholar, como author:"J Dean" en q. Los resultados de búsqueda también llevan authorId para autores con perfil de Scholar, que es el identificador más estable.

¿Puedo usar esto junto con otras APIs de HasData?

Sí. Una clave cubre todo, y un endpoint sirve a todos a través del parámetro apis. Apunta un cliente a ?apis=google_scholar,google_serp para obtener ambos conjuntos de herramientas en una sola conexión, o a mcp.hasdata.com/api/mcp para el catálogo completo.

¿Está HasData afiliado a Google?

No. HasData es un servicio independiente y no está afiliado, respaldado ni patrocinado por Google. Google Scholar es una marca comercial de su respectivo propietario. Las herramientas trabajan solo con datos disponibles públicamente, y eres responsable de usar los resultados de acuerdo con los términos de Google y la ley que te aplica.

Cumplimiento y datos personales

Los nombres de autores, afiliaciones e ids de perfil de Scholar son datos personales, aunque se publiquen como parte del registro académico. Construir un perfil de la producción de un investigador es un acto diferente a contar citas sobre un tema, y es el que necesita una segunda reflexión sobre propósito y retención. Los artículos en sí permanecen bajo sus propias licencias, así que un enlace no es permiso para redistribuir un PDF.

Enlaces de HasData

Otros servidores MCP de HasData: Google Search, Google Images, Google Maps, Google Trends, Bing, DuckDuckGo, YouTube, TikTok, Instagram, Amazon, Walmart, Shopify, Yelp, Yellow Pages, Zillow, Redfin, Airbnb, Booking.com, Indeed, Glassdoor.

Desarrollo

El lanzador es un puente stdio delgado hacia el servidor remoto, así que no hay nada que compilar.

npm install
HASDATA_API_KEY=your_key_here npm test

Las pruebas en test/ verifican el contrato de las herramientas, la parte que puede romperse sin un commit aquí. Comprueban que ?apis=google_scholar devuelve las dos herramientas esperadas, que ningún nombre ha cambiado, que ambas siguen requiriendo q y llevan descripciones, que los parámetros de búsqueda documentados en este README siguen en el esquema, y que la clave en uso es realmente aceptada.

Dos pruebas van más allá. Una verifica que una búsqueda en vivo aún devuelve resultId, citedBy.citesId y versions.clusterId, porque esos tres ids son lo que permite que las herramientas se compongan y nada más en la respuesta revelaría su pérdida. La otra alimenta un resultId directamente a la herramienta de citas, que es el flujo de dos llamadas que este README documenta, y comprueba que los cinco estilos vuelven. Juntas cuestan 20 créditos por ejecución, que es el precio de un canario que puede fallar por la razón correcta.

La suite de contrato también se ejecuta semanalmente en un horario, porque la lista de herramientas upstream puede cambiar sin que nadie toque este repositorio.

Contribuciones

Una tabla de herramientas, una muestra de respuesta o un comportamiento documentado que no coincida con la realidad merece un issue. Hay una plantilla exactamente para eso. Las pull requests son bienvenidas para lo mismo, y para cualquier cosa en el lanzador.

Licencia

MIT, ver LICENSE.