Context7
Feeds AI the latest docs for libraries and frameworks before it answers, so code it writes does not use outdated, removed functions.
Description from the maker (original English)
Google SERP as JSON: organic, AI Overview, People Also Ask, AI Mode, news, shopping. No Cloud setup.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
HASDATA_API_KEY, x-api-keyValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
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.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"google-search": {
"command": "npx",
"args": [
"-y",
"@hasdata/google-search-mcp"
],
"env": {
"HASDATA_API_KEY": "your-value"
}
}
}
}Run this in your terminal
claude mcp add --transport http google-search 'https://mcp.hasdata.com/mcp?apis=google_serp' --header 'x-api-key: your-value'claude mcp add google-search --env HASDATA_API_KEY=your-value -- npx -y @hasdata/google-search-mcpFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"google-search": {
"url": "https://mcp.hasdata.com/mcp?apis=google_serp",
"headers": {
"x-api-key": "your-value"
}
}
}
}Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"google-search": {
"command": "npx",
"args": [
"-y",
"@hasdata/google-search-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.
Paste into .vscode/mcp.json in your project
{
"servers": {
"google-search": {
"type": "http",
"url": "https://mcp.hasdata.com/mcp?apis=google_serp",
"headers": {
"x-api-key": "your-value"
}
}
}
}Paste into .vscode/mcp.json in your project
{
"servers": {
"google-search": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@hasdata/google-search-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.
x-api-key secret required HTTP headerThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
We have not read this server’s tool list yet; we check endpoints in rotation.
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
The registry name was verified against the domain hasdata.com (the registry checks domain ownership)
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
Not checked yet; we check endpoints in rotation
Not checked yet; we check endpoints in rotation
Not checked yet; we read the tool list when we check the endpoint
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
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.
You need to fill in: HASDATA_API_KEY, x-api-key
Either way works: install it on your computer or connect to the cloud version.
The GitHub repo last changed –, and the latest version (1.0.7) reached the registry 43 days ago.
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.
In the same category: Context7, Codebase Memory, Exa
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
Feeds AI the latest docs for libraries and frameworks before it answers, so code it writes does not use outdated, removed functions.
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.
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.
A hosted Google Search MCP server that gives Claude, Cursor, Windsurf and any other MCP client read-only Google Search tools. Pull the live SERP with its AI Overview and People Also Ask, run a Google AI Mode query, and read news, shopping, product detail and short-video results, all as structured JSON, with no Google Cloud project and no search-engine setup.
1,000 free credits every month, no card required, which is 100 full-SERP calls or 200 SERP Light calls.
https://mcp.hasdata.com/mcp?apis=google_serp
"SERP" and "Google Search" are the same product here. This server returns Google search-engine results pages, parsed.
An MCP client that speaks streamable HTTP with custom headers. A HasData API key from the dashboard, free to create with no card, and the free tier covers about 100 to 200 calls a month depending on the tool. Nothing else. This is a remote server, so the simplest path is a URL and a header, with no Google Cloud project or Programmable Search Engine to set up. A stdio-only client can use the @hasdata/google-search-mcp (npm) or hasdata-google-search-mcp (PyPI) launcher instead.
| URL | https://mcp.hasdata.com/mcp?apis=google_serp |
| Transport | HTTP, streamable |
| Auth header | x-api-key: HASDATA_API_KEY |
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.
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-search "https://mcp.hasdata.com/mcp?apis=google_serp" \
--header "x-api-key: HASDATA_API_KEY"
Claude Desktop
Claude Desktop loads only local (stdio) servers from its config file, so it reaches a remote server through a stdio launcher. The @hasdata/google-search-mcp package is that launcher, and it reads the key from the environment.
claude_desktop_config.json:
{
"mcpServers": { "google-search": { "command": "npx", "args": ["-y", "@hasdata/google-search-mcp"], "env": { "HASDATA_API_KEY": "YOUR_KEY" } } } }
Python instead of Node? Swap the launcher for the PyPI package, which uvx runs without a manual install:
{
"mcpServers": { "google-search": { "command": "uvx", "args": ["hasdata-google-search-mcp"], "env": { "HASDATA_API_KEY": "YOUR_KEY" } } } }
A client with OAuth support can instead add the URL as a custom connector and skip the launcher.
Cursor
.cursor/mcp.json:
{
"mcpServers": { "google-search": { "url": "https://mcp.hasdata.com/mcp?apis=google_serp", "headers": { "x-api-key": "HASDATA_API_KEY" } } } }
Windsurf
~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": { "google-search": { "serverUrl": "https://mcp.hasdata.com/mcp?apis=google_serp", "headers": { "x-api-key": "HASDATA_API_KEY" } } } }
Cline
{
"mcpServers": { "google-search": { "url": "https://mcp.hasdata.com/mcp?apis=google_serp", "type": "streamableHttp", "headers": { "x-api-key": "HASDATA_API_KEY" }, "disabled": false } } }
VS Code
.vscode/mcp.json:
{
"servers": { "google-search": { "type": "http", "url": "https://mcp.hasdata.com/mcp?apis=google_serp", "headers": { "x-api-key": "HASDATA_API_KEY" } } } }
Gemini CLI
~/.gemini/settings.json:
{
"mcpServers": { "google-search": { "httpUrl": "https://mcp.hasdata.com/mcp?apis=google_serp", "headers": { "x-api-key": "HASDATA_API_KEY" } } } }
Search Google for
best running shoesand give me the organic top ten plus the AI Overview.
*One call, 10 credits. The SERP response carries the AI Overview inline alongside the organic results.*
For the same query, take each People Also Ask question and pull its AI Overview answer with sources.
*One call per question, 10 credits each. Each relatedQuestions entry holds an aiOverview.pageToken, and the AI Overview tool turns that token into the answer blocks and their references.*
Ask Google AI Mode
what is the Model Context Protocoland give me the answer with its citations.
*One call, 10 credits. AI Mode returns the generated answer as text blocks with a reference list.*
Search Google Shopping for
nike air max, then pull the full product card for the top result: every store selling it, the price range and the review breakdown.
*Two calls. Shopping is 10 credits and returns a token per product, and the immersive product tool spends 5 to expand that token into stores, variants and reviews.*
Get the latest Google News for
artificial intelligence, and separately the short-video results forcooking pasta.
*Two calls, 10 credits each.*
The workflow leans on two chains. A SERP response hands back an aiOverview inline and a pageToken on every People Also Ask question, so extracting Google's generative answers is either free with the search or one 10-credit follow-up per question. A shopping result likewise hands back a token per product, so the jump from a listing to its full multi-store card is a single call.
| Tool | What it returns |
|---|---|
hasdata_google_serp_ai_mode_getAiModeResponse | The conversational response text, cited source links, subtopic breakdowns, follow-up suggestions, and a subsequentRequestToken for multi-turn continuation. 10 credits a call |
hasdata_google_serp_ai_overview_getAiOverviewResponse | The AI-generated answer text, referenced source URLs, and expanded subtopic sections. 10 credits a call |
hasdata_google_serp_events_getEventInformation | Event title, start date/time, venue name and address, ticket/source links, description, and thumbnail. 10 credits a call |
hasdata_google_serp_immersive_product_getImmersive_e29f691177 | Multi-store offers (merchant, price, shipping, condition, URL), product specs, images, ratings, and the nextPageToken. 10 credits a call |
hasdata_google_serp_news_getGoogleNews | Article title, snippet, source publisher, published date, thumbnail, and URL, plus tokens for navigating topics, sub-sections, and story clusters. 10 credits a call |
hasdata_google_serp_product_getProductInformation | Product title, images, price, ratings, specs, merchant offers (seller, shipping, condition, total price), and review text depending on searchType. 10 credits a call |
hasdata_google_serp_serp_getSearchResults | Organic results (title, link, snippet, position), ads, knowledge graph, related searches, People Also Ask, local pack, featured snippets, AI Overview pageToken, and rich…. 10 credits a call |
hasdata_google_serp_serp_light_getSearchResults | Organic results (title, link, displayed link, snippet, sitelinks, extensions, date, rating and review count), AI Overview with its text blocks and source references,…. 5 credits a call |
hasdata_google_serp_shopping_getSearchResults | Product title, price, merchant/source, rating, reviews count, thumbnail, product link, productId, immersiveProductPageToken, and filter chips with hasdata_link for…. 10 credits a call |
hasdata_google_serp_short_videos_getShortVideosSearchResults | Video title, thumbnail, duration, source platform, channel/creator, publish date, and direct video URL. 10 credits a call |
Ten tools, all read-only. Samples below are trimmed from real calls, and the results in them change as Google changes, so read them as shapes. Each tool name links to its endpoint reference.
The samples are the payload, not the whole response. A tools/call result carries one text block, and that text is itself JSON holding url, status, text and json, with the scraped data under json. From a raw JSON-RPC response the path is result.content[0].text, parsed, then .json. A chat client unwraps that for you and code talking to the endpoint directly does not.
hasdata_google_serp_serp_getSearchResults
The full results page for a query.
| Parameter | Type | Required | Notes |
|---|---|---|---|
q | string | yes | The search query, exactly as a user would type it |
gl / hl | string | Two-letter country and language codes | |
location / uule | string | Geographic location for the search, by name or as a uule string | |
num | number | Approximate results per page. Google now caps a page at about ten and ignores anything higher, so num above 10 fetches no more | |
start | number | Result offset for paging | |
tbm / tbs | string | Search type and advanced filters, the raw Google parameters | |
deviceType | string | desktop, mobile or tablet |
Returns searchInformation, organicResults, aiOverview, relatedQuestions, relatedSearches, perspectives, immersiveProducts and pagination, with whichever blocks Google shows for the query. Organic entries carry position, title, link, displayedLink, source, snippet, snippetHighlitedWords, date and images.
The AI Overview arrives two ways. Usually
aiOverviewis inline, withtextBlocksandreferencesyou can read straight away. Sometimes Google gates it behind a token, and thenaiOverviewcarries apageTokenand ahasdataLinkinstead of the blocks. EveryrelatedQuestionsentry is that second case too. It holds aquestionand anaiOverviewwith the samepageTokenandhasdataLink, which the AI Overview tool below expands. So the People Also Ask answers are
Only the beginning is shown; read the rest in the repo