Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

HasData Google Scholar

by HasDataversion 1.0.2i★ –iComputer or cloud
Registry namecom.hasdata/google-scholar

Install

Overview

Description from the maker (original English)

Google Scholar search results, citation counts and citation export formats, as structured JSON.

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Computer or cloud
  • Transport: stdio, Streamable HTTP
  • Category: Search & AI memory
  • You need to fill in: HASDATA_API_KEY, x-api-key

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 1 of 1 passed
  • Runs on the maker’s server: what you ask it goes through their server.
  • You fill in yourself: HASDATA_API_KEY, x-api-key

Values marked secret are keys to your account. Never share them or paste them into a chat.

You need

  • Runs in the cloudNothing to install; it connects over the internet
  • npmNode.js installed (for the npx command)

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

This address needs a key in a request header, which the add-connector menu cannot set. Use Claude Code, Cursor or VS Code instead.

Or run it on your computer

Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json

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

Run this in your terminal

claude mcp add --transport http google-scholar 'https://mcp.hasdata.com/mcp?apis=google_scholar' --header 'x-api-key: your-value'

Or run it on your computer

claude mcp add google-scholar --env HASDATA_API_KEY=your-value -- npx -y @hasdata/google-scholar-mcp

Fill in the empty values before running it.

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

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

Or run it on your computer

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

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

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

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

Or run it on your computer

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "google-scholar": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@hasdata/google-scholar-mcp"
      ],
      "env": {
        "HASDATA_API_KEY": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

This address needs a key in a request header, which the add-connector menu cannot set. Use Claude Code, Cursor or VS Code instead.

Your choice stays on this device in a cookie; no account needed.

Values you fill in

  • HASDATA_API_KEY secret required env
    HasData API key, created at app.hasdata.com. 1,000 free credits every month, no card.
  • x-api-key secret required HTTP header
    HasData API key, created at app.hasdata.com. 1,000 free credits every month, no card.

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

We have not read this server’s tool list yet; we check endpoints in rotation.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 6, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified against the domain hasdata.com (the registry checks domain ownership)

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • … Not checked yet

    Endpoint responds

    Not checked yet; we check endpoints in rotation

  • … Not checked yet

    Sign-in with OAuth

    Not checked yet; we check endpoints in rotation

  • … Not checked yet

    No hidden instructions in tool descriptions

    Not checked yet; we read the tool list when we check the endpoint

Compared with others in Search & AI memoryi

  • More stars than 0% of the other 7246 servers in this category
  • Published to the registry more recently than 48% of the other 7246 servers in this category
  • Basic checks equal to or better than 100% of the other 7246 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is HasData Google Scholar safe?

It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

You need to fill in: HASDATA_API_KEY, x-api-key

Does it run on my computer or in the cloud?

Either way works: install it on your computer or connect to the cloud version.

Is it still maintained?

The GitHub repo last changed –, and the latest version (1.0.2) reached the registry 43 days ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.

What can I use instead?

In the same category: Context7, Codebase Memory, Exa

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

Context7

by upstash

Feeds AI the latest docs for libraries and frameworks before it answers, so code it writes does not use outdated, removed functions.

Computer or cloud★ 64,224MITUpdated today
Install

Codebase Memory

by DeusData

Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.

Runs on your computer★ 48,148MITUpdated 20 days ago
Install

Exa

by exa-labs

Connect AI agents to Exa for web search, content fetching, and multi-step research.

Runs in the cloud★ 5,213MITUpdated last month
Install

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

Google Scholar MCP Server

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
  • Prompts and resources

Contents

  • What you need
  • Quick start
  • Example prompts
  • Tools
  • Errors and failure paths
  • Pricing, free tier and limits
  • Tool selection
  • How it compares
  • FAQ
  • HasData links
  • Development
  • Contributing
  • License

What you need

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.

Quick start

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.

FieldValue
URLhttps://mcp.hasdata.com/mcp?apis=google_scholar
TransportHTTP, streamable
Auth headerx-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" } } } }

Example prompts

Each of these lands on one tool, or on two in sequence when the second needs an id the first returns.

  • Find papers on transformer architectures published since 2023 and sort them by citation count.
  • Who has cited this paper, and how has that grown year on year?
  • Give me the BibTeX for this paper.
  • Find review articles only on this topic, excluding citations without full records.
  • Show me every indexed version of this paper and which of them have a PDF.
  • Find recent work by this author on this topic.

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.

Tools

ToolWhat it returns
hasdata_google_scholar_case_law_getScholarCaseLawOpinionOne 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_getScholarCitationFormatsFormatted citation snippets (MLA, APA, Chicago, Harvard, Vancouver) and reference-manager export links (BibTeX, EndNote, RefMan, RefWorks). 10 credits a call
hasdata_google_scholar_scholar_getScholarSearchResultsEach 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.

Get Scholar search results

hasdata_google_scholar_scholar_getScholarSearchResults

A page of Scholar results.

ParameterTypeRequiredNotes
qstringyesThe query. Scholar operators such as author: and source: work here
asYlo / asYhinumberPublished from and up to these years
startnumberResult offset, where 0 is the first result
numnumberResults per page
scisbdnumber1 sorts abstracts by date, 2 sorts everything by date. Omit for relevance
citesstringFind articles citing this one, using a citedBy.citesId
clusterstringFind every indexed version of an article, using a versions.clusterId
asSdtstringSearch type, 0,5 for articles, 4 for case law, 0 or 7 for patents
asRrnumber1 returns review articles only
asVisnumber1 excludes citations, 0 includes them
hlstringInterface language, one of 159
lrarrayRestrict to these content languages
safestringactive or off
filternumber1 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" } }

Get Scholar citation formats

hasdata_google_scholar_cite_getScholarCitationFormats

The citation block for one paper.

ParameterTypeRequiredNotes
qstringyesA resultId from a search result, not a search query
hlstringInterface 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..." } ] }

Get a case law opinion

hasdata_google_scholar_case_law_getScholarCaseLawOpinion

One court opinion, with the cases it cites.

ParameterTypeRequiredNotes
caseIdstringyesA caseId from a case-law search result, not a search query
hlstringInterface 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

Only the beginning is shown; read the rest in the repo

Ask PopNx