Google Scholar MCP Server

Resultados de pesquisa do Google Scholar, contagens de citações e formatos de exportação de citações, como JSON estruturado.

Documentação

Servidor MCP do Google Scholar

Um servidor de Model Context Protocol (MCP) hospedado que oferece ao Claude, Cursor, Windsurf e qualquer outro cliente MCP duas ferramentas somente leitura do Google Scholar. Pesquise a literatura com os operadores próprios do Scholar, intervalos de anos e consultas de citações, e então obtenha a citação de um artigo em cinco estilos com seus links de exportação BibTeX e EndNote, ambos como JSON estruturado, sem precisar hospedar nada.

Ele lê páginas públicas do Google Scholar que um visitante desconectado pode ver.

1.000 créditos grátis todo mês, sem necessidade de cartão, o que equivale a 100 chamadas ao Scholar na taxa de 10 créditos.

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

Glama score tool contract MCP Tools npm PyPI License

Conteúdo

O que você precisa

Um cliente MCP e uma chave de API HasData do painel de controle, gratuita para criar sem cartão, e o plano gratuito cobre cerca de 100 chamadas por mês na taxa de 10 créditos. Este é um servidor remoto, então o caminho mais simples é uma URL e um cabeçalho x-api-key, sem contêiner para executar. Um cliente que só fala stdio o acessa por meio de um lançador leve, publicado como @hasdata/google-scholar-mcp no npm e hasdata-google-scholar-mcp no PyPI, mostrado abaixo.

Início rápido

A URL do servidor é a mesma para todos os clientes. Nós o executamos na prática no Claude Code e no Claude Desktop. Os outros blocos seguem o formato documentado de cada cliente para um servidor remoto.

CampoValor
URLhttps://mcp.hasdata.com/api/mcp?apis=google_scholar
TransporteHTTP, transmissível
Cabeçalho de autenticaçãox-api-key: HASDATA_API_KEY

Clientes com suporte a OAuth podem adicionar a mesma URL como conector e entrar sem colocar uma chave em um arquivo de configuração.

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

Configurações, depois Conectores, depois Adicionar conector personalizado, e então cole https://mcp.hasdata.com/api/mcp?apis=google_scholar e entre.

Para o caminho do arquivo de configuração, o Claude Desktop carrega apenas servidores locais (stdio), então ele acessa um servidor remoto por meio de um lançador stdio. O pacote @hasdata/google-scholar-mcp é esse lançador, e ele lê a chave do ambiente. Adicione isto a claude_desktop_config.json:

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

Para Python em vez de Node, troque o lançador pelo pacote PyPI, que o uvx executa sem instalação manual:

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

~/.cursor/mcp.json para cada projeto, ou .cursor/mcp.json para um único:

{
  "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. O Windsurf chama o campo de serverUrl, não de 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 no espaço de trabalho:

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

Exemplos de prompts

Cada um destes cai em uma ferramenta, ou em duas em sequência quando a segunda precisa de um id que a primeira retorna.

  • Encontre artigos sobre arquiteturas de transformadores publicados desde 2023 e ordene-os por número de citações.
  • Quem citou este artigo, e como isso cresceu ano após ano?
  • Dê-me o BibTeX deste artigo.
  • Encontre apenas artigos de revisão sobre este tópico, excluindo citações sem registros completos.
  • Mostre-me todas as versões indexadas deste artigo e quais delas têm PDF.
  • Encontre trabalhos recentes deste autor sobre este tópico.

Um prompt que nomeia um artigo faz duas chamadas: uma busca para chegar ao resultId e uma consulta de citação. Um prompt sobre quem cita um artigo também faz duas, porque a segunda chamada reutiliza o citedBy.citesId da primeira.

Ferramentas

Duas ferramentas, 10 créditos por chamada bem-sucedida.

Obter resultados de busca do Scholar

hasdata_google_scholar_scholar_getScholarSearchResults

Uma página de resultados do Scholar.

ParâmetroTipoObrigatórioObservações
qstringsimA consulta. Operadores do Scholar como author: e source: funcionam aqui
asYlo / asYhinúmeroPublicado de e até estes anos
startnúmeroDeslocamento de resultados, onde 0 é o primeiro resultado
numnúmeroResultados por página
scisbdnúmero1 ordena resumos por data, 2 ordena tudo por data. Omita para relevância
citesstringEncontre artigos que citam este, usando um citedBy.citesId
clusterstringEncontre todas as versões indexadas de um artigo, usando um versions.clusterId
asSdtstringTipo de busca, 0,5 para artigos, 4 para jurisprudência, 0 ou 7 para patentes
asRrnúmero1 retorna apenas artigos de revisão
asVisnúmero1 exclui citações, 0 as inclui
hlstringIdioma da interface, um de 159
lrarrayRestringir a estes idiomas de conteúdo
safestringactive ou off
filternúmero1 mantém os filtros de resultados semelhantes e omitidos do Google, 0 os remove

Retorna searchInformation com totalResults, queryDisplayed e o tempo que o Scholar informou, um array organicResults e pagination.

Cada resultado carrega position, resultId, title, link, snippet, um objeto publicationInfo, um array resources, citedBy, versions, relatedPagesLink e citeHasdataLink.

publicationInfo.authors é a parte que vale a pena conhecer. Junto com a linha bruta summary, ele lista os autores para os quais o Scholar tem perfis, cada um com um name, um link de perfil e um authorId, que é como você segue um autor em vez de analisar uma linha de créditos.

citedBy e versions são os dois ids que fazem esta ferramenta compor consigo mesma. citedBy.citesId volta para cites para percorrer um grafo de citações, e versions.clusterId vai para cluster para ver todas as cópias indexadas do mesmo artigo.

{
  "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" }
}

Obter formatos de citação do Scholar

hasdata_google_scholar_cite_getScholarCitationFormats

O bloco de citação para um artigo.

ParâmetroTipoObrigatórioObservações
qstringsimUm resultId de um resultado de busca, não uma consulta de busca
hlstringIdioma da interface

Retorna citations, a string formatada em MLA, APA, Chicago, Harvard e Vancouver, e links, as URLs de exportação para BibTeX, EndNote, RefMan e 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..." }
  ]
}

Erros e caminhos de falha

Planeje estes em vez de assumir um caminho feliz.

Na ferramenta de citação, q é um id de artigo, não uma consulta. Ele recebe o resultId de um resultado de busca, como A7L9JolPKkoJ. Passar um título ou um DOI ali não retorna nada útil, e o nome de parâmetro compartilhado é o motivo pelo qual as pessoas erram isso.

citesId e clusterId podem conter o mesmo valor, e não são intercambiáveis. Eles eram idênticos no artigo acima. Um vai para cites para encontrar artigos que citam este, o outro vai para cluster para encontrar cópias deste. Enviar o número certo para o parâmetro errado retorna uma página plausível da coisa errada.

type chega em alguns resultados e não em outros. Ele estava presente em um resultado de cada cinco, descrevendo o formato do recurso primário. Leia resources[].fileFormat quando precisar saber se um PDF existe.

Um link BibTeX é uma URL do Scholar com uma assinatura, não o próprio BibTeX. O array links fornece endereços para buscar, e eles carregam tokens scisig que expiram, então busque-os prontamente em vez de armazená-los para depois.

totalResults é a estimativa do Scholar e é muito aproximada. A consulta acima relatou 2.080.000. Trate-a como uma ordem de grandeza, nunca como uma contagem.

O Scholar conta citações, não qualidade, e indexa preprints, teses e registros somente de citação. asVis: 1 remove entradas somente de citação quando você precisa de registros com metadados completos.

Paginar profundamente fica escasso. O Scholar limita até onde um conjunto de resultados vai e começa a repetir ou bloquear bem antes do que a estimativa sugere, então restrinja com asYlo, asYhi ou asSdt em vez de aumentar start.

Resultados que carregam dados também carregam um requestMetadata.id que vale a pena citar em suporte.

Preços, plano gratuito e limites

Cada ferramenta do Scholar custa 10 créditos por chamada bem-sucedida. O tamanho da resposta não muda o preço, então aumentar num é a maneira barata de ampliar uma busca.

O plano gratuito é 1.000 créditos todo mês sem cartão, o que equivale a 100 chamadas ao Scholar na taxa base. Ele renova com o ciclo de faturamento, então um agente de baixo volume roda no plano gratuito indefinidamente.

Planos pagos começam em US$ 49 por mês para 200.000 créditos, o que equivale a 20.000 chamadas. O preço unitário cai com o volume, de US$ 2,45 por 1.000 chamadas no plano inicial para US$ 1,00 no Business, US$ 0,84 no Growth e US$ 0,74 nos maiores planos de alto volume.

Seu plano também define a concorrência. O plano gratuito permite 1 solicitação por vez, Startup 15, Business 30, Growth 50, e os planos de alto volume vão de 200 a 1.500. Repita no 429 com backoff em qualquer coisa não supervisionada, porque um agente que percorre um grafo de citações atingirá o teto antes de você.

Uma solicitação que retorna não-200 não é cobrada. Uma chamada bem-sucedida que não encontra nada ainda é uma chamada.

Seleção de ferramentas

Comece pelo que o prompt lhe dá. Um tópico, um autor ou um intervalo de anos vai para a ferramenta de busca. Um resultId que você já possui vai direto para a ferramenta de citação.

Depois pense em qual id o próximo passo precisa. Uma varredura de literatura é uma chamada de busca com um num grande. Um grafo de citações é uma chamada de busca seguida de uma chamada cites por artigo que você segue. Uma passagem de deduplicação entre preprints e versões publicadas é uma chamada cluster por artigo. Cada uma dessas reutiliza um id que a primeira resposta já lhe deu, então uma segunda chamada de busca geralmente é desperdiçada.

Aumente num antes de paginar. O custo é por chamada, não por resultado, então uma página ampla vence três estreitas.

Como se compara

O Google Scholar não tem API pública, então a comparação que vale a pena fazer é contra as APIs bibliográficas abertas.

OpenAlex ou Semantic ScholarEste servidor
ElegibilidadeAberto, sem chave para uso básicoUma chave de API
CoberturaAmpla, curada, centrada em DOIO que o Scholar indexa, incluindo teses e preprints
Contagens de citaçõesAs próprias, calculadas a partir do grafo delesAs do Scholar, como exibidas
Strings de citaçãoConstrua você mesmo a partir de metadadosMLA, APA, Chicago, Harvard, Vancouver, como o Scholar as formata
Links de texto completoDOI e locais de acesso abertoOs links de recursos que o Scholar mostra, incluindo PDFs
Metadados estruturadosRicos e tipadosComo a página os apresenta
A linha que decide isso é de quem você precisa da contagem de citações. Para bibliometria em metadados tipados e estáveis, OpenAlex e Semantic Scholar são instrumentos melhores e são gratuitos. Use este quando a pergunta for especificamente sobre o que o Google Scholar mostra, que é o que a maioria dos pesquisadores realmente consulta, ou quando você quiser a citação formatada em vez dos campos para construir uma.

FAQ

Existe um servidor MCP oficial do Google Scholar?

O Google não publica um, e o Scholar também não tem API pública. Este é mantido pela HasData e lê páginas públicas do Scholar.

O que é um servidor MCP do Google Scholar?

Um servidor MCP expõe ferramentas que um cliente de IA pode chamar. Este converte resultados de busca do Scholar e blocos de citação em JSON que um agente pode raciocinar, sem precisar de navegador ou biblioteca de scraping na sua stack.

Preciso de uma conta Google?

Não. A única credencial é a sua chave HasData.

Como obtenho o BibTeX de um artigo?

Duas chamadas. Busque para obter o resultId do artigo e, em seguida, passe esse id como q para a ferramenta de citação, e pegue a URL do BibTeX de links.

Como encontro tudo o que cita um artigo?

Pegue o citedBy.citesId do resultado da busca e envie-o de volta como o parâmetro cites. A resposta são os artigos citantes, paginados como qualquer outra busca.

Qual é a diferença entre cites e cluster?

cites encontra artigos que citam o que você nomeou. cluster encontra outras versões indexadas do mesmo artigo, como um preprint ao lado do artigo publicado. Os dois ids geralmente parecem idênticos, então escolha pelo que você quer, não pelo número.

Posso buscar por autor?

Sim, com o operador próprio do Scholar, como author:"J Dean" em q. Os resultados da busca também trazem authorId para autores com perfil no Scholar, que é o identificador mais estável.

Posso usar isso junto com outras APIs da HasData?

Sim. Uma chave cobre tudo, e um endpoint atende a todos através do parâmetro apis. Aponte um cliente para ?apis=google_scholar,google_serp para obter os dois conjuntos de ferramentas em uma conexão, ou para mcp.hasdata.com/api/mcp para o catálogo completo.

A HasData é afiliada ao Google?

Não. A HasData é um serviço independente e não é afiliada, endossada ou patrocinada pelo Google. O Google Scholar é uma marca registrada de seu respectivo proprietário. As ferramentas trabalham apenas com dados publicamente disponíveis, e você é responsável por usar os resultados de acordo com os termos do Google e a lei que se aplica a você.

Conformidade e dados pessoais

Nomes de autores, afiliações e ids de perfil do Scholar são dados pessoais, mesmo que publicados como parte do registro acadêmico. Construir um perfil da produção de um pesquisador é um ato diferente de contar citações sobre um tópico, e é o que exige uma segunda reflexão sobre propósito e retenção. Os artigos em si permanecem sob suas próprias licenças, então um link não é permissão para redistribuir um PDF.

Links da HasData

Outros servidores MCP da 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.

Desenvolvimento

O launcher é uma ponte stdio fina para o servidor remoto, então não há nada para compilar.

npm install
HASDATA_API_KEY=your_key_here npm test

Os testes em test/ verificam o contrato das ferramentas, a parte que pode quebrar sem um commit aqui. Eles verificam que ?apis=google_scholar retorna as duas ferramentas esperadas, que nenhum nome mudou, que ambas ainda exigem q e carregam descrições, que os parâmetros de busca documentados neste README ainda estão no schema, e que a chave em uso é realmente aceita.

Dois testes vão além. Um verifica que uma busca ao vivo ainda retorna resultId, citedBy.citesId e versions.clusterId, porque esses três ids são o que permite que as ferramentas componham e nada mais na resposta revelaria a perda deles. O outro alimenta um resultId diretamente na ferramenta de citação, que é o fluxo de duas chamadas documentado neste README, e verifica se os cinco estilos voltam. Juntos, custam 20 créditos por execução, que é o preço de um canário que pode falhar pelo motivo certo.

A suíte de contrato também roda semanalmente em um cronograma, porque a lista de ferramentas upstream pode mudar sem que ninguém toque neste repositório.

Contribuindo

Uma tabela de ferramentas, uma amostra de resposta ou um comportamento documentado que não corresponde à realidade vale uma issue. Há um template exatamente para isso. Pull requests são bem-vindos para o mesmo, e para qualquer coisa no launcher.

Licença

MIT, veja LICENSE.