Context7
Up-to-date docs for AI agents
Descripción del creador (original en inglés)
Google Scholar search results, citation counts and citation export formats, as structured JSON.
Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.
Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.
Elige la app de IA que usas y copia la configuración.
HASDATA_API_KEY, x-api-keyLos valores marcados como secretos son llaves de tu cuenta. Nunca los compartas ni los pegues en un chat.
Necesitas
¿Qué app usas?
Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.
Esta dirección necesita una clave en un header de la solicitud, y el menú para agregar conectores no puede ponerla. Usa Claude Code, Cursor o VS Code.
Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json
{
"mcpServers": {
"google-scholar": {
"command": "npx",
"args": [
"-y",
"@hasdata/google-scholar-mcp"
],
"env": {
"HASDATA_API_KEY": "your-value"
}
}
}
}Ejecuta esto en tu terminal
claude mcp add --transport http google-scholar 'https://mcp.hasdata.com/mcp?apis=google_scholar' --header 'x-api-key: your-value'claude mcp add google-scholar --env HASDATA_API_KEY=your-value -- npx -y @hasdata/google-scholar-mcpCompleta los valores vacíos antes de ejecutarlo.
Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"google-scholar": {
"url": "https://mcp.hasdata.com/mcp?apis=google_scholar",
"headers": {
"x-api-key": "your-value"
}
}
}
}Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"google-scholar": {
"command": "npx",
"args": [
"-y",
"@hasdata/google-scholar-mcp"
],
"env": {
"HASDATA_API_KEY": "your-value"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"google-scholar": {
"type": "http",
"url": "https://mcp.hasdata.com/mcp?apis=google_scholar",
"headers": {
"x-api-key": "your-value"
}
}
}
}Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"google-scholar": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@hasdata/google-scholar-mcp"
],
"env": {
"HASDATA_API_KEY": "your-value"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Esta dirección necesita una clave en un header de la solicitud, y el menú para agregar conectores no puede ponerla. Usa Claude Code, Cursor o VS Code.
Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.
x-api-key secreto obligatorio HTTP headerEsta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
Todavía no hemos leído la lista de herramientas de este servidor; revisamos los endpoints por turnos.
Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 6 nov 2026
El nombre en el registro se verificó con el dominio hasdata.com (el registro comprueba quién es dueño del dominio)
Todavía no hemos leído este repo en GitHub
Todavía no hemos leído este repo en GitHub
Aún sin revisar; revisamos los endpoints por turnos
Aún sin revisar; revisamos los endpoints por turnos
Aún sin revisar; leemos la lista de herramientas cuando revisamos el endpoint
Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.
Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.
Debes completar: HASDATA_API_KEY, x-api-key
Funciona de las dos formas: instálalo en tu computadora o conéctate a la versión en la nube.
El repo de GitHub cambió por última vez –, y la última versión (1.0.2) llegó al registro hace 43 días.
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. Se conecta por URL, así que también funcionan las apps que aceptan servidores MCP remotos, como ChatGPT en modo desarrollador.
En la misma categoría: Context7, Codebase Memory, Exa
Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.
Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi
Up-to-date docs for AI agents
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Connect AI agents to Exa for web search, content fetching, and multi-step research.
Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.
A hosted Google Scholar MCP server that gives Claude, Cursor, Windsurf and any other MCP client two read-only Google Scholar tools. Search the literature with Scholar's own operators, year ranges and cited-by lookups, then pull a paper's citation in five styles with its BibTeX and EndNote export links, both as structured JSON, with nothing to host.
It reads public Google Scholar pages that a signed-out visitor can see.
1,000 free credits every month, no card required, which is 100 Scholar calls at the 10-credit rate.
https://mcp.hasdata.com/mcp?apis=google_scholar
An MCP client and a HasData API key from the dashboard, free to create with no card, and the free tier covers about 100 calls a month at the 10-credit rate. This is a remote server, so the simplest path is a URL and an x-api-key header, with no container to run. A client that only speaks stdio reaches it through a thin launcher, published as @hasdata/google-scholar-mcp on npm and hasdata-google-scholar-mcp on PyPI, shown below.
The server URL is the same for every client. We run it hands-on in Claude Code and Claude Desktop. The other blocks follow each client's own documented format for a remote server.
| Field | Value |
|---|---|
| URL | https://mcp.hasdata.com/mcp?apis=google_scholar |
| Transport | HTTP, streamable |
| Auth header | x-api-key: HASDATA_API_KEY |
Clients with OAuth support can add the same URL as a connector and sign in without putting a key in a config file.
Claude Code
claude mcp add --transport http google-scholar "https://mcp.hasdata.com/mcp?apis=google_scholar" \
--header "x-api-key: HASDATA_API_KEY"
Claude Desktop
Settings, then Connectors, then Add custom connector, then paste https://mcp.hasdata.com/mcp?apis=google_scholar and sign in.
For the config-file route, Claude Desktop loads only local (stdio) servers, so it reaches a remote server through a stdio launcher. The @hasdata/google-scholar-mcp package is that launcher, and it reads the key from the environment. Add this to claude_desktop_config.json:
{
"mcpServers": { "google-scholar": { "command": "npx", "args": ["-y", "@hasdata/google-scholar-mcp"], "env": { "HASDATA_API_KEY": "YOUR_KEY" } } } }
For Python instead of Node, swap the launcher for the PyPI package, which uvx runs without a manual install:
{
"mcpServers": { "google-scholar": { "command": "uvx", "args": ["hasdata-google-scholar-mcp"], "env": { "HASDATA_API_KEY": "YOUR_KEY" } } } }
Cursor
~/.cursor/mcp.json for every project, or .cursor/mcp.json for one:
{
"mcpServers": { "google-scholar": { "url": "https://mcp.hasdata.com/mcp?apis=google_scholar", "headers": { "x-api-key": "HASDATA_API_KEY" } } } }
Windsurf
~/.codeium/windsurf/mcp_config.json. Windsurf calls the field serverUrl, not url:
{
"mcpServers": { "google-scholar": { "serverUrl": "https://mcp.hasdata.com/mcp?apis=google_scholar", "headers": { "x-api-key": "HASDATA_API_KEY" } } } }
VS Code
.vscode/mcp.json in the workspace:
{
"servers": { "google-scholar": { "type": "http", "url": "https://mcp.hasdata.com/mcp?apis=google_scholar", "headers": { "x-api-key": "HASDATA_API_KEY" } } } }
Each of these lands on one tool, or on two in sequence when the second needs an id the first returns.
A prompt naming a paper takes two calls, one search to reach its resultId and one citation lookup. A prompt about who cites a paper also takes two, because the second call reuses citedBy.citesId from the first.
| Tool | What it returns |
|---|---|
hasdata_google_scholar_case_law_getScholarCaseLawOpinion | One court opinion with its court, reporter citation, docket numbers, argued and decided dates, and every case it cites with its own caseId. 10 credits a call |
hasdata_google_scholar_cite_getScholarCitationFormats | Formatted citation snippets (MLA, APA, Chicago, Harvard, Vancouver) and reference-manager export links (BibTeX, EndNote, RefMan, RefWorks). 10 credits a call |
hasdata_google_scholar_scholar_getScholarSearchResults | Each organic result with title, link, snippet, publication info (authors with profile links), cited-by count and link, related-articles link, and all-versions count and…. 10 credits a call |
Three tools, 10 credits per successful call.
hasdata_google_scholar_scholar_getScholarSearchResults
A page of Scholar results.
| Parameter | Type | Required | Notes |
|---|---|---|---|
q | string | yes | The query. Scholar operators such as author: and source: work here |
asYlo / asYhi | number | Published from and up to these years | |
start | number | Result offset, where 0 is the first result | |
num | number | Results per page | |
scisbd | number | 1 sorts abstracts by date, 2 sorts everything by date. Omit for relevance | |
cites | string | Find articles citing this one, using a citedBy.citesId | |
cluster | string | Find every indexed version of an article, using a versions.clusterId | |
asSdt | string | Search type, 0,5 for articles, 4 for case law, 0 or 7 for patents | |
asRr | number | 1 returns review articles only | |
asVis | number | 1 excludes citations, 0 includes them | |
hl | string | Interface language, one of 159 | |
lr | array | Restrict to these content languages | |
safe | string | active or off | |
filter | number | 1 keeps Google's similar and omitted result filters, 0 drops them |
Returns searchInformation with totalResults, queryDisplayed and the time Scholar reported, an organicResults array, and pagination.
Each result carries position, resultId, title, link, snippet, a publicationInfo object, a resources array, citedBy, versions, relatedPagesLink and citeHasdataLink.
publicationInfo.authors is the part worth knowing about. Alongside the raw summary line it lists the authors Scholar has profiles for, each with a name, a profile link and an authorId, which is how you follow one author rather than parsing a byline.
citedBy and versions are the two ids that make this tool compose with itself. citedBy.citesId goes back into cites to walk a citation graph, and versions.clusterId goes into cluster to see every indexed copy of the same paper.
{
"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" } }
hasdata_google_scholar_cite_getScholarCitationFormats
The citation block for one paper.
| Parameter | Type | Required | Notes |
|---|---|---|---|
q | string | yes | A resultId from a search result, not a search query |
hl | string | Interface language |
Returns citations, the formatted string in MLA, APA, Chicago, Harvard and Vancouver, and links, the export URLs for BibTeX, EndNote, RefMan and 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..." } ] }
hasdata_google_scholar_case_law_getScholarCaseLawOpinion
One court opinion, with the cases it cites.
| Parameter | Type | Required | Notes |
|---|---|---|---|
caseId | string | yes | A caseId from a case-law search result, not a search query |
hl | string | Interface language |
The id comes from the search tool rather than from a URL. Set asSdt to a case-law court scope, for example 4, and every organic result then carries caseId beside caseHasdataLink.
Returns caseResults with title, name, courtName, cert, and the firstPage and lastPage of the printed opinion. dates holds the argued and decided dates as separate entries, `s
Solo se muestra el principio; lee el resto en el repo