HasData

Google Scholar MCP Server

Connect your AI agents to HasData's Google Scholar MCP server. Search publications and get citation counts, author information and formatted references in structured JSON over streamable HTTP.

https://mcp.hasdata.com/api/mcp?apis=google_scholar
Transport
Streamable HTTP
Auth
OAuth or API key
Tools
2 Google Scholar tools
Price
10 credits / call
Get API Key Read the docs 1,000 free credits. No credit card required.
Data teams at
ClientsClients
Playground

See the Google Scholar MCP server in action

Select a sample prompt to inspect the tool it chooses and the JSON payload your agent receives.

Google Scholar · 2 tools Enter to send
Find publications about machine learning. Who wrote them, when were they published, and how often are they cited?
hasdata_google_scholar_scholar_getScholarSearchResults · 200 OK sample call
Machine learning by ZH Zhou (2021)
Google Scholar lists 3,983 citations.
Machine learning: Trends, perspectives, and prospects
MI Jordan and TM Mitchell, Science (2015). Google Scholar lists 15,840 citations.
Google Scholar links to a PDF at cmu.edu.
hasdata_google_scholar_scholar_getScholarSearchResults {"q":"machine learning"}
{
"url": "https://api.hasdata.com/scrape/google/scholar/?q=machine+learning",
"status": 200,
"json": {
"organicResults": [
{
"resultId": "EQ8shYj8Ai8J",
"title": "Machine learning",
"snippet": "… from data is called learning or training. The … machine learning is to find or approximate ground-truth. In this book, models are sometimes called learners, which are machine learning …",
"publicationInfo": {
"summary": "ZH Zhou - 2021 - books.google.com"
},
"citedBy": {
"total": 3983,
"citesId": "3387547533016043281"
}
},
{
"resultId": "pdcI9r5sCJcJ",
"title": "Machine learning: Trends, perspectives, and prospects",
"snippet": "Machine learning addresses the question of how to build computers that improve … Recent progress in machine learning has been driven both by the development of new learning …",
"publicationInfo": {
"summary": "MI Jordan, TM Mitchell - Science, 2015 - science.org"
},
"citedBy": {
"total": 15840,
"citesId": "10883068066968164261"
},
"resources": [
{
"fileFormat": "Pdf",
"title": "cmu.edu",
"link": "http://www.cs.cmu.edu/~tom/pubs/Science-ML-2015.pdf"
}
]
}
]
}
}
Find publications about machine learning. Who wrote them, when were they published, and how often are they cited?
hasdata_google_scholar_scholar_getScholarSearchResults · 200 OK sample call
Machine learning by ZH Zhou (2021)
Google Scholar lists 3,983 citations.
Machine learning: Trends, perspectives, and prospects
MI Jordan and TM Mitchell, Science (2015). Google Scholar lists 15,840 citations.
Google Scholar links to a PDF at cmu.edu.
hasdata_google_scholar_scholar_getScholarSearchResults {"q":"machine learning"}
{
"url": "https://api.hasdata.com/scrape/google/scholar/?q=machine+learning",
"status": 200,
"json": {
"organicResults": [
{
"resultId": "EQ8shYj8Ai8J",
"title": "Machine learning",
"snippet": "… from data is called learning or training. The … machine learning is to find or approximate ground-truth. In this book, models are sometimes called learners, which are machine learning …",
"publicationInfo": {
"summary": "ZH Zhou - 2021 - books.google.com"
},
"citedBy": {
"total": 3983,
"citesId": "3387547533016043281"
}
},
{
"resultId": "pdcI9r5sCJcJ",
"title": "Machine learning: Trends, perspectives, and prospects",
"snippet": "Machine learning addresses the question of how to build computers that improve … Recent progress in machine learning has been driven both by the development of new learning …",
"publicationInfo": {
"summary": "MI Jordan, TM Mitchell - Science, 2015 - science.org"
},
"citedBy": {
"total": 15840,
"citesId": "10883068066968164261"
},
"resources": [
{
"fileFormat": "Pdf",
"title": "cmu.edu",
"link": "http://www.cs.cmu.edu/~tom/pubs/Science-ML-2015.pdf"
}
]
}
]
}
}
Get APA and MLA references for ZH Zhou's 2021 book Machine learning.
hasdata_google_scholar_cite_getScholarCitationFormats · 200 OK sample call
APA
Zhou, Z. H. (2021). Machine learning. Springer nature.
MLA
Zhou, Zhi-Hua. Machine learning. Springer nature, 2021.
hasdata_google_scholar_cite_getScholarCitationFormats {"q":"EQ8shYj8Ai8J"}
{
"url": "https://api.hasdata.com/scrape/google/scholar-cite/?q=EQ8shYj8Ai8J",
"status": 200,
"json": {
"citations": [
{
"title": "MLA",
"snippet": "Zhou, Zhi-Hua. Machine learning. Springer nature, 2021."
},
{
"title": "APA",
"snippet": "Zhou, Z. H. (2021). Machine learning. Springer nature."
}
],
"links": [
{
"name": "BibTeX",
"link": "https://scholar.googleusercontent.com/scholar.bib?q=info:EQ8shYj8Ai8J:scholar.google.com/&output=citation&scisdr=CoHkaECPGAA:AIVdB-wAAAAAaqfnosoXju5lVl0IWZRwspONDmU&scisig=AIVdB-wAAAAAaqfnolxAmm7fsRj6GRpJvRzW8SM&scisf=4&ct=citation&cd=-1&hl=en"
}
]
}
}
Tools

The Google Scholar tools your agent can call

2 tools

Typed parameters, required flags, and structured JSON fields for each tool. Search publications, inspect citation counts and retrieve formatted references for selected results.

+ hasdata_google_scholar_scholar_getScholarSearchResults Search publications and their citation context 15 params 10 creditsTry
Parameters of hasdata_google_scholar_scholar_getScholarSearchResults
ParameterTypeRequiredExample
qstringrequired"machine learning"
asYlonumberoptional2020
asYhinumberoptional2026
startnumberoptional10
numnumberoptional10
citesstringoptional"3387547533016043281"
clusterstringoptional"3387547533016043281"
asRrnumberoptional1
hlstringoptional"en"
lrarrayoptional["lang_en"]
scisbdnumberoptional1
asSdtstringoptional"0,5"
safeenumoptional"off"
filternumberoptional1
asVisnumberoptional0
response
  • organicResults[].resultId
  • organicResults[].title
  • organicResults[].snippet
  • organicResults[].publicationInfo
  • organicResults[].citedBy
  • organicResults[].resources
  • pagination
+ hasdata_google_scholar_cite_getScholarCitationFormats Retrieve formatted references and export links 2 params 10 creditsTry
Parameters of hasdata_google_scholar_cite_getScholarCitationFormats
ParameterTypeRequiredExample
qstringrequired"EQ8shYj8Ai8J"
hlstringoptional"en"
response
  • citations[].title
  • citations[].snippet
  • links[].name
  • links[].link

Base calls cost 10 credits. Failed calls are not billed.

Connect

One endpoint, any MCP client

A config block for every major MCP client, in its native format. Authenticate with browser OAuth or an x-api-key header.

Claude Code

zsh — hasdata-google-scholar
$claude mcp add --transport http hasdata-google-scholar \
> https://mcp.hasdata.com/api/mcp?apis=google_scholar \
> --header "x-api-key: YOUR_API_KEY"
· One line, no restart. Run /mcp to confirm 2 tools.
Check the tools are thereIn the session
/mcp
hasdata-google-scholar · connected · 2 tools

Cursor

~/.cursor/mcp.json
{
"mcpServers": { "hasdata-google-scholar": {
"url": "https://mcp.hasdata.com/api/mcp?apis=google_scholar",
"headers": { "x-api-key": "YOUR_API_KEY" }
} }
}
· Add this entry to ~/.cursor/mcp.json. Servers already in the file stay as they are.
· Project-level config also works at .cursor/mcp.json
Check the tools are thereAfter saving the file
Settings → MCP
hasdata-google-scholar · 2 tools enabled

Claude Desktop

Recommended · OAuth connector
1.Settings → Connectors → Add custom connector
2.Paste https://mcp.hasdata.com/api/mcp?apis=google_scholar
3.Sign in with HasData
~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": { "hasdata-google-scholar": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.hasdata.com/api/mcp?apis=google_scholar",
"--header", "x-api-key:YOUR_API_KEY"]
} }
}
· Add this entry to ~/Library/Application Support/Claude/claude_desktop_config.json. Servers already in the file stay as they are.
· The config file only takes stdio servers, so a static key rides the mcp-remote bridge. On Windows the file lives at %APPDATA%\Claude\claude_desktop_config.json.
Check the tools are thereReopen the app
Settings → Connectors
hasdata-google-scholar · connected · 2 tools

VS Code / Copilot

.vscode/mcp.json
{
"servers": { "hasdata-google-scholar": {
"type": "http",
"url": "https://mcp.hasdata.com/api/mcp?apis=google_scholar",
"headers": { "x-api-key": "YOUR_API_KEY" }
} }
}
· Add this entry to .vscode/mcp.json. Servers already in the file stay as they are.
· Agent mode picks the server up on save.
Check the tools are thereAgent mode
Ctrl/⌘ + Shift + P → MCP: List Servers
hasdata-google-scholar · running · 2 tools

Windsurf

~/.codeium/windsurf/mcp_config.json
{
"mcpServers": { "hasdata-google-scholar": {
"serverUrl": "https://mcp.hasdata.com/api/mcp?apis=google_scholar",
"headers": { "x-api-key": "YOUR_API_KEY" }
} }
}
· Add this entry to ~/.codeium/windsurf/mcp_config.json. Servers already in the file stay as they are.
· Windsurf reads serverUrl, not url. Header auth only.
Check the tools are thereIn Cascade
Cascade → MCP servers
hasdata-google-scholar · 2 tools

Cline

cline_mcp_settings.json
{
"mcpServers": { "hasdata-google-scholar": {
"type": "streamableHttp",
"url": "https://mcp.hasdata.com/api/mcp?apis=google_scholar",
"headers": { "x-api-key": "YOUR_API_KEY" }
} }
}
· Add this entry to cline_mcp_settings.json. Servers already in the file stay as they are.
· Header auth only. The type field tells Cline this is a remote server, not a command.
Check the tools are thereIn the MCP panel
MCP Servers → Installed
hasdata-google-scholar · 2 tools

ChatGPT / Agents SDK

Recommended · OAuth connector
1.Settings → Security and login → Developer mode
2.Plugins → + → developer-mode app, paste https://mcp.hasdata.com/api/mcp?apis=google_scholar
3.Sign in with HasData
agent.py
from agents import Agent, HostedMCPTool
tool = HostedMCPTool(tool_config={
"type": "mcp",
"server_label": "hasdata-google-scholar",
"server_url": "https://mcp.hasdata.com/api/mcp?apis=google_scholar",
"authorization": "YOUR_API_KEY",
"require_approval": "never",
})
agent = Agent(name="Researcher", tools=[tool])
· The Agents SDK sends authorization as a Bearer token, which the endpoint accepts. The ChatGPT route needs no key: it signs in with OAuth.
Check the tools are thereRun the agent
Runner.run(agent, "…")
hasdata-google-scholar · 2 tools listed

Codex CLI

~/.codex/config.toml
[mcp_servers.hasdata-google-scholar]
url = "https://mcp.hasdata.com/api/mcp?apis=google_scholar"
env_http_headers = { "x-api-key" = "HASDATA_API_KEY" }
· Add this entry to ~/.codex/config.toml. Servers already in the file stay as they are.
· TOML, not JSON. Codex reads the key from the HASDATA_API_KEY environment variable, so export it in the shell that starts Codex.
Check the tools are thereIn the terminal
codex mcp list
hasdata-google-scholar · 2 tools

Gemini CLI

~/.gemini/settings.json
{
"mcpServers": { "hasdata-google-scholar": {
"httpUrl": "https://mcp.hasdata.com/api/mcp?apis=google_scholar",
"headers": { "x-api-key": "YOUR_API_KEY" }
} }
}
· Add this entry to ~/.gemini/settings.json. Servers already in the file stay as they are.
· httpUrl, not url: Gemini keeps url for SSE servers. Header auth only.
Check the tools are thereIn the session
/mcp
hasdata-google-scholar · 2 tools

Raw HTTP / curl

zsh — hasdata-google-scholar
$curl -N https://mcp.hasdata.com/api/mcp?apis=google_scholar \
> -H "x-api-key: YOUR_API_KEY" \
> -H "Content-Type: application/json" \
> -H "Accept: application/json, text/event-stream" \
> -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
· Fallback for any client not listed. Streamable HTTP wants both Accept types, and leaving one out returns 406.
Check the tools are thereCall it yourself
curl … tools/list
{ "tools": [ … 2 items ] }
Scope

Google Scholar plus whatever else you need

Name the services in the query string and the server exposes only their tools. Every one draws from the same key and the same balance.

Google Scholar 2 tools See the full MCP server →
https://mcp.hasdata.com/api/mcp?apis=google_scholar,google_serp,web_scraping
11tools in your server
Build vs Buy

Free on GitHub, paid in hours

Anyone can clone a free MCP to scrape Google Scholar. Whether that stays free depends on the shape of your project.

Scenario

A script I run once

Self-hosted from GitHubyour machine, your upkeep
$0/ mo, runs locally
+ 3–6 h onceof someone’s time
Setup (clone, wire, run)3–6 h once
Markup changesnot yet
Retries and concurrencynot needed
Proxy and hosting$0
Nothing to own. You get the answer and delete the folder.
mcp.hasdata.comFree tier
$0/ mo
+ 0 hof someone’s time
Setup one line
Parser upkeep included
Retries and concurrency included
~25 calls 250 of 1,000 credits
The free tier renews every month. No card.
leans self-hosted
Take the free repo
Nothing has to keep working tomorrow, so upkeep never appears. Both cost nothing, so take whichever is already in front of you.

A weekly report

Self-hosted from GitHubyour machine, your upkeep
$0–40/ mo
+ 2–4 h / moof someone’s time
Setup (proxy, hosting, wiring)3–6 h once
Markup changes2–4 h / mo
Retries and concurrency2–4 h once
Proxy and hosting$0–40 / mo
Someone looks at it when the numbers come back wrong, which is how you find out.
mcp.hasdata.comFree tier
$0/ mo
+ 0 hof someone’s time
Setup one line
Parser upkeep included
Retries and concurrency included
~100 calls a month 1,000 of 1,000 credits
Exactly the free tier, so a heavier month moves you to Startup.
dead even
Either works
The repo is free if you have somewhere to run it, ours is free up to the credit ceiling. The two to four hours a month decide it.

A pipeline in production

Self-hosted from GitHubyour machine, your upkeep
$40–120/ mo
+ 6–10 h / moof someone’s time
Setup (proxy, hosting, wiring)3–6 h once
Markup changes2–4 h / mo
Retries, concurrency, rate limits4–8 h once
Proxy and hosting$40–120 / mo
Someone owns this permanently, and it is never the top of their list.
mcp.hasdata.comStartup, 200K credits, 5 concurrent
$49/ mo
+ 0 hof someone’s time
Setup one line
Parser upkeep included
Retries and concurrency included
5,000 calls 50K of 200K credits
A quarter of the plan used, and the rest is headroom.
leans hosted
Use the hosted server
The proxy and hosting bill alone is in the range of the whole plan, and that is before anyone spends the six to ten hours.

A feature in my product

Self-hosted from GitHubyour machine, your upkeep
$300+/ mo
+ on-callof someone’s time
Setup (proxy, hosting, wiring)3–6 h once
Markup changes, plus on-call2–4 h / mo
Retries, concurrency, rate limitsongoing
Proxy and hosting$300+ / mo
The thing your customers touch depends on one volunteer's spare evening.
mcp.hasdata.comBasic, 1M credits, 15 concurrent
$99/ mo
+ 0 hof someone’s time
Setup one line
Parser upkeep included
Retries and concurrency included
50,000 calls 500K of 1M credits
Same endpoint at ten calls and at ten million. One invoice.
leans hosted
Use the hosted server
A third of the price, and nobody has to carry a pager for a dependency your customers touch.
Pricing

One balance, every interface

A flat monthly price against a known credit ceiling. Move up a plan when you outgrow it.

Free
$0 /mo
Free forever
100 tool calls / month
1,000 credits / month
1 concurrent request
Every MCP tool on every plan
Failed calls are not billed
One balance across MCP and REST
Community support
Start free
Startup
$49 /mo
$2.46 / 1k tool calls
20K tool calls / month
200K credits / month
5 concurrent requests
Every MCP tool on every plan
Failed calls are not billed
One balance across MCP and REST
Email support
Get started
Basic
Recommended
$99 /mo
$0.99 / 1k tool calls
100K tool calls / month
1M credits / month
15 concurrent requests
Every MCP tool on every plan
Failed calls are not billed
One balance across MCP and REST
Priority email support
Get started
Growth
$208 /mo
$0.69 / 1k tool calls
3M credits / month
50 concurrent requests
Every MCP tool on every plan
Failed calls are not billed
One balance across MCP and REST
Dedicated account manager
Get started
Monthly tool call volume
Free 100K 500K 2M
Best fit
Basic
tool calls / mo
100K
Concurrency
15
$ / 1k tool calls
$0.99
$99 /mo
Get Started
Enterprise
Custom price based on required volume

Past 20M credits a month, or terms the self-serve plans do not cover. We shape the contract around your workload.

Credits rollover
Unused credits carry into the next billing period.
Concurrency 2000+
Parallel request limits set to your peak load.
#1 request priority
Highest speed, always first in the queue.
Personal manager
A direct line to the founding team.
SSO
SAML single sign-on for the whole team.
SOC-2 compliance
Security review, DPA, and audit reports.
Talk to sales Quote within one business day
FAQ

Before you wire it in

What can an AI agent retrieve from Google Scholar?

Search returns publication titles, snippets, publication information and citation context. Results can also include author profile links, available PDF links and indexed versions. The citation tool retrieves formatted references and export links for a selected search result. Field availability depends on the result.

Does the server read full papers or download PDFs?

No. A Scholar snippet is an excerpt, not the full paper or a guaranteed complete abstract. A resource link points to a publisher or repository. Reading that document is a separate step and depends on access to the source.

Are citation formats the same as papers that cite a publication?

No. The citation tool formats a reference for a resultId. The search response's citedBy block reports a count and a Scholar link to citing works, not those works themselves. Retrieval through the search tool's cites parameter was not reliable in our checks.

Can an agent filter results by year or find review articles?

Yes. Search accepts year bounds through asYlo and asYhi, plus asRr for review articles. The query also supports Scholar's author: and source: operators. Search filters do not provide full author profiles or bibliometric analysis.

How does an agent retrieve more results?

The search tool accepts a start offset and a requested num of results. Paginate as needed and check the returned records. Scholar's reported total does not guarantee that every matching publication is retrievable.

Does the citation response contain a BibTeX file?

It contains formatted citation text and reference-manager export links, including BibTeX when available. The export URL is not the file body. An agent must fetch that URL separately if the workflow needs the exported file.

Are these examples live calls from this page?

No. The playground replays recorded responses with example agent answers. Connect an MCP client to submit your own requests. Search results and citation counts can change after a recording.

What happens when a tool call fails or credits run out?

Inspect the MCP result before using its data. Invalid inputs, unavailable results or account limits can prevent a successful call. Failed requests do not consume credits. Exhausting the plan's balance stops calls without metered overage until the balance is renewed.

Is this an official Google Scholar MCP server?

No. HasData provides this independent MCP service and is not affiliated with, endorsed by, or sponsored by Google. It retrieves Google Scholar data rather than providing a Google account integration.