Skip to main content
Glama
HasData

Google Search MCP Server

Google Search MCP Server (SERP)

Ein gehosteter Model Context Protocol (MCP)-Server, der Claude, Cursor, Windsurf und jedem anderen MCP-Client acht schreibgeschützte Google-Search-Tools bietet. Rufen Sie die Live-SERP mit AI Overview und People Also Ask ab, führen Sie eine Google-AI-Mode-Abfrage aus und lesen Sie News-, Shopping-, Produktdetail- und Kurzvideo-Ergebnisse – alles als strukturiertes JSON, ganz ohne Google-Cloud-Projekt und ohne Suchmaschinen-Setup.

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

Glama score tool contract MCP Tools License

„SERP“ und „Google Search“ sind hier dasselbe Produkt. Dieser Server liefert geparste Google-Suchergebnisseiten.

Inhaltsverzeichnis

Related MCP server: Serper Search MCP Server

Was Sie brauchen

Einen MCP-Client, der streamable HTTP mit benutzerdefinierten Headern unterstützt. Einen HasData-API-Key aus dem Dashboard, den Sie kostenlos ohne Karte erstellen können, und der Testzeitraum deckt je nach Tool etwa 100 bis 200 Aufrufe ab. Sonst nichts. Dieser Server ist remote, daher ist der einfachste Weg eine URL und ein Header – ohne einzurichtendes Google-Cloud-Projekt und ohne Programmable Search Engine. Ein reiner stdio-Client kann stattdessen den Launcher @hasdata/google-search-mcp (npm) oder hasdata-google-search-mcp (PyPI) verwenden.

Schnellstart

URL

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

Transport

HTTP, streamable

Auth-Header

x-api-key: HASDATA_API_KEY

Die Server-URL ist für jeden Client identisch. Wir setzen den Server aktiv in Claude Code und Claude Desktop ein. Die anderen Abschnitte folgen dem jeweils dokumentierten Formataufbau des jeweiligen Clients für einen Remote-Server.

Clients mit OAuth-Unterstützung können dieselbe URL als Connector hinzufügen und sich anmelden, ohne einen Schlüssel in einer Konfigurationsdatei abzulegen.

claude mcp add --transport http google-search "https://mcp.hasdata.com/api/mcp?apis=google_serp" \
  --header "x-api-key: HASDATA_API_KEY"

Claude Desktop lädt aus seiner Konfigurationsdatei nur lokale (stdio) Server. Der Zugriff auf einen Remote-Server erfolgt daher über einen stdio-Launcher. Das Paket @hasdata/google-search-mcp ist dieser Launcher und liest den Schlüssel aus der Umgebung.

claude_desktop_config.json:

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

Python statt Node? Tauschen Sie den Launcher gegen das PyPI-Paket aus, das uvx ohne manuelle Installation ausführt:

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

Ein Client mit OAuth-Unterstützung kann stattdessen die URL als benutzerdefinierten Connector hinzufügen und den Launcher überspringen.

.cursor/mcp.json:

{
  "mcpServers": {
    "google-search": {
      "url": "https://mcp.hasdata.com/api/mcp?apis=google_serp",
      "headers": { "x-api-key": "HASDATA_API_KEY" }
    }
  }
}

~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "google-search": {
      "serverUrl": "https://mcp.hasdata.com/api/mcp?apis=google_serp",
      "headers": { "x-api-key": "HASDATA_API_KEY" }
    }
  }
}
{
  "mcpServers": {
    "google-search": {
      "url": "https://mcp.hasdata.com/api/mcp?apis=google_serp",
      "type": "streamableHttp",
      "headers": { "x-api-key": "HASDATA_API_KEY" },
      "disabled": false
    }
  }
}

.vscode/mcp.json:

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

~/.gemini/settings.json:

{
  "mcpServers": {
    "google-search": {
      "httpUrl": "https://mcp.hasdata.com/api/mcp?apis=google_serp",
      "headers": { "x-api-key": "HASDATA_API_KEY" }
    }
  }
}

Beispiel-Prompts

Such dir best running shoes bei Google und gib mir die organische Top Ten dazu die AI-Übersicht aus.

Eine Anruffe, 10 Credits. Die SERP-Antwort enthält die AI Overview inline neben den organischen Ergebnissen.

Für dieselbe Abfrage nimm jede People-AlsoAsk-Frage und ziehe dir ihre AI-Overview-Antwort mit Quellen.

Ein Aufruf pro Frage, 5 Credits. Jeder Eintrag relatedQuestions enthält eine aiOverview.pageToken, und das AI-Overview-Tool verwandelt dieses Token in die Verantwortungsblöcke und ihre Quellen.

Frag die Google AI Mode what is the Model Context Protocol und gib mir die Antwort mit Zitaten.

Ein Aufruf, 10 Credits. AI Mode liefert die generierte Antwort als Textblöcke mit einer Referenzliste.

Suche bei Google Shopping nach nike air max und ziehe danach die volle Produktkarte des obersten Ergebnisses heraus: jeden Shop, der es verkauft, die Preisspanne und die Bewertungsaufschlüsselung.

Zwei Aufrufe. Shopping kostet 10 Credits und liefert pro Produkt ein Token; das immersive Produkttool expandiert das Token für 5 Credits in Shops, Varianten und Bewertungen.

Hol dir die neuesten Google News zu artificial intelligence und separat die Kurzvideo-Ergebnisse für cooking pasta.

Zwei Aufrufe, je 10 Credits.

Der Workflow setzt auf zwei Ketten. Eine SERP-Antwort liefert inline eine aiOverview und für jede People-AlsoAsk-Frage einen pageToken. Googles generative Antworten sind also entweder kostenlos über die Suche abrufbar oder als 5-Credit-Folgeabfrage pro Frage. Ein Shopping-Ergebnis liefert pro Produkt ein Token, sodass der Sprung von einer Auflistung zur vollständigen Multikarte nur ein Aufruf ist.

Tools

Acht Tools, allesamt schreibgeschützt. Die Beispiel unten sind aus echten Aufrufen gekürzt, und die Ergebnisse ändern sich mit Google – betrachten Sie sie also als Formen. Jeder Toolname verlinkt auf die Endpunkt-Referenz.

Die Beispiele sind die Nutzlast, nicht die gesamte Antwort. Ein Ergebnis von tools/call enthält einen Textblock, und dieser Text selbst ist JSON mit url, status, text und json; die gescraapten Daten liegen unter json. Aus einer rohen JSON-RPC-Antwort ist der Pfad result.content[0].text, geparst, dann .json. Ein Chat-Client entfernt diese Hülle für Sie; wer direkt den Endpunkt anspricht, muss das selbst tun.

Google Search SERP

hasdata_google_serp_serp_getSearchResults

Die vollständige Ergebnisliste für eine Suchanfrage.

Parameter

Typ

erfordert

Anmerkungen

q

string

Ja

Die Suchanfrage, genau so, wie Benutzer: Kein Eingabe

gl / hl

string

Zwei‑Landes‑ und Sprachcodes

location / uule

string

Geografische Verortung für die Suche, als Name oder als uule-String

num

number

Ungefährende Ergebnisse pro Seite. Google begrenzt eine Seite inzwischen auf etwa zehn Treffer und ignoriert größere Werte; num über 10 liefert also keine mehr.

start

number

Ergebnisgraph Offset fürs Blättern

tbm / tbs

string

Suchtyp und erweiterte Filter, die rohen Google-Parameter

deviceType

string

desktop oder mobile oder tablet

Liefert searchInformation, organicResults, aiOverview, relatedQuestions, relatedSearches, perspectives, immersiveProducts und pagination, je nachdem, welche Blöcke Google für die Anfrage anzeigt. Organische Einträge enthalten position, title, link, displayedLink, source, snippet, snippetHighlitedWords, date und images.

Die AI Overview kommt auf zwei Fälle vor. In der Regel ist aiOverview inline enthalten, mit textBlocks und references, die Sie direkt lesen. Gelegentlich verbirgt Google sie hinter einem Token; dann trägt aiOverview statt der Blöcke einen pageToken und eine hasdataLink. Auch jeder relatedQuestions-Eintrag ist dieser zweite Fall. Er enthält ein question und eine aiOverview mit anderem pageToken and hasdataLink, die das unten genannte AI-Overview-Tool expandiert. Die People-AlsoAsk-Antworten sind also AI Overviews, die Sie einen Token nach dem anderen abrufen. Das oberste aiOverview ist bei den meisten Anfragen inline und bei einer Anfragen ein Token. Sie sollten also beide Wege prüfen.

{
  "organicResults": [
    {
      "position": 1,
      "title": "The 15 Best Running Shoes of 2026",
      "link": "https://www.runnersworld.com/gear/a19663621/best-running-shoes/",
      "source": "Runner's World",
      "snippet": "The Brooks Ghost is our No. 1 shoe when we recommend new trainers…"
    }
  ],
  "aiOverview": {
    "textBlocks": [ { "type": "paragraph", "snippet": "The best running shoes depend on your goal…" } ],
    "references": [ { "index": 0, "title": "7 Best Running Shoes in 2026 - RunRepeat", "link": "https://runrepeat.com/guides/best-running-shoes" } ]
  },
  "relatedQuestions": [
    { "question": "What are the top 5 best running shoes?", "aiOverview": { "pageToken": "eyJpZCI6…", "hasdataLink": "https://api.hasdata.com/scrape/google/ai-overview?pageToken=eyJpZCI6…" } }
  ],
  "pagination": { "next": "…" }
}

Google AI Overview

hasdata_google_serp_ai_overview_getAiOverviewResponse

Expandiert einen AI-Overview-Token zu seiner Antwort.

Parameter

Typ

phlicht

Anmerkungen

pageToken

string

Ja

Ein aiOverview.pageToken aus einer SERP-Antwort, einschließlich der auf relatedQuestions. Das gleiche Token-Objekt trägt eine Bereits-REST-URL hasdataLink, die dieselbe Antwort ohne dieses Tool liefert.

Gibt aiOverview mit textBlocks und references zurück. So lesen Sie die AI Overview, wenn die SERP Ihnen einen Token statt der Blöcke liefert, und so verwandeln Sie jede People-AlsoAsk-Frage in eine zitierte Antwort.

Token sind etwa 4 Minuten lang gültig. Ein abgelaufenes Token kommt nicht leer zurück, sondern schlägt als Tool-Fehler fehl, isError: true mit dem Text HasData API error: 400 Bad Request. Behandeln Sie das so wie einen falschen Key, und re-run SERP für ein frisches Token aus.

{
  "aiOverview": {
    "textBlocks": [ { "type": "paragraph", "snippet": "The top five running shoes feature versatile options for daily training and racing…" } ],
    "references": [ { "index": 0, "title": "…", "link": "https://…" } ]
  }
}

Google AI Mode

hasdata_google_serp_ai_mode_getAiModeResponse

Google AI-Mode Response auf eine Suchanfrage, das konversationelle Suchergebnis.

Parameter

Typ

Required

Anmerkungen

q

string

Ja

Die Frage, die an AI Mode gestellt werden soll

gl / hl

string

Ja

Länder- und Sprachcodes

place / uule

string

Ja

Geografische Verortung

continuable

boolean

Ja

Setzen Sie true, damit die Antwort in einem Folgecall continuable ist

subsequentRequestToken

string

Ja

Token aus einer früheren AI-Mode-Antwort, um den Thread fortzusetzen

Liefert textBlocks und references, die generierte Antwort und die genannten Quellen.

Google-Suche Template Light

Search Engine — API? Continue{}

Statt.

Parameter

Typ

Erforderlich

Hinweise

q

string

ja

Die Suchanfrage

gl / hl

string

Länder- und Sprachcodes

location / uule

string

Geografischer Standort

num / start

number

Seitengröße und Offset

Gibt organicResults, aiOverview, relatedSearches, filters, appliedLocation, searchInformation und pagination zurück. Der Aufruf kostet halb so viele Credits wie der vollständige SERP-Aufruf – für den Fall, dass du die organischen Ergebnisse und die AI Overview ohne die zusätzlichen Blöcke brauchst.

Google News

hasdata_google_serp_news_getGoogleNews

Die Google-News-Ergebnisse zu einer Suchanfrage oder einer News-Rubrik.

Parameter

Typ

Erforderlich

Hinweise

q

string

Eine Suchanfrage. Leer lassen, um stattdessen eine Rubrik zu lesen

gl / hl

string

Länder- und Sprach-Codes

topicToken / sectionToken / storyToken / publicationToken

string

Mithilfe eines Tokens aus einer früheren Antwort in ein Thema, eine Rubrik, eine Meldung oder eine Publikation eintauchen

Gibt newsResults, menuLinks, relatedTopics, related und relatedPublications zurück. Jeder News-Eintrag enthält position, title, link, source mit einem name und Symbol icon, thumbnail und date.

Google Shopping

hasdata_google_serp_shopping_getSearchResults

Einkaufsergebnisse zu einer Suchanfrage.

Parameter

Typ

Erforderlich

Hinweise

q

string

ja

Die Produkt-Suchanfrage

gl / hl

string

Länder- und Sprach-Codes

location / uule

string

Geografischer Standort

start

number

Ergebnis-Offset für die Seitennavigation

tbs

string

Erweiterte Shopping-Filter, der rohe Google-Parameter

Gibt shoppingResults, filters, refineSearchFilters, searchInformation und pagination zurück. Jedes Ergebnis enthält position, title, productId, price, extractedPrice, rating, reviews, source, category, thumbnail und ein immersiveProductPageToken.

immersiveProductPageToken ist die Eingabe für das Immersive-Produkt-Tool weiter unten. Es handelt sich um ein temporäres Token. Erweitere es also, solange es frisch ist, wenn du die Produktdaten möchtest. Wenn ein altes Token fehlschlägt, sage erneut auf das Shopping-Tool auf, um einen neuen Token zu erhalten.

{
  "shoppingResults": [
    {
      "position": 1,
      "title": "Men's Nike Alphafly 3",
      "productId": "13366226642799457284",
      "price": "$285.00",
      "extractedPrice": 285,
      "rating": 4.5,
      "reviews": 120,
      "source": "Nike",
      "immersiveProductPageToken": "eyJyZHMiOiJQQ18…"
    }
  ]
}

Immersives Produkt

[hasdata_google_serp_immersive_product_getImmersive_Wer26a97... – Apparat]:; Wait, we need the full name.

Let me browse again: The link label is hasdata_google_serp_immersive_product_getImmersive plus some URL. The original code: [hasdata_google_serp_immersive_product_getImmersive_curl](https://docs.hasdata.com/apis/google-serp/immersive-product?utm_source=github\&utm_medium=syndication\&utm_campaign=google-search-mcp)

Wait, here diff: the function name has suffix "_e29f691177h"? Let me read the prompt carefully:

[hasdata_google_serp_immersive_product_getImmersive ...]

Looking at the source: "Labels hasdata_google_serp_immersive_getImmersive.

Actually above: "The URL is https://docs.hasdata.com/apis/google-serp/immersive-product" and link text is hasdata_google_serp_immersive_product_getImmersive_demo. But the prompt explicitly: "displays hasdata_google_serp_immersive_product_getImmersive_e29f691177"? Search in the original:

"hasdata_google_serp_immersive_product_getImmersive_e29f..." — yes in the given text: “hasdata_google_serp_immersive_product_getImmersive” the line is:

[58] original [`has data... ] -> Please read:

The initial user message contains:

Immersive product

hasdata_google_serp_immersive_product_getImmersive_e25b...

Let me scan: "hasdata_google_serp_immersive_product_getImm..." The exact encoded: hasdata_google_serp_immersive_ getImmersive_e29f691177. The text in the prompt:

" hasdata_google_serp_immersive_product_getImmersive_e29f691177"

Yes. I'll copy that.

Improved: from the source: hasdata_google_serp_immersive_product_getImmersive_e29breitwo hmm.

Let me look again at the user input deep:

"### Immersive product

hasdata_google_serp_immersive_product_getImmersive_e29f691177"

Yes, use exactly that.

Similarly for "Google short videos": link text hasdata_google_serp_short_vv....

OK.

Back to composing. I'll avoid accidental typos with function names (copy from source).

Now the rest. I have "Immersive product" heading translated; maybe "Immersives Produkt" okay. But that should be heading "Immersive Produkt" ("Immersive Product")? German implies adjective "immersiv": "Immersives Produkt". Since "Immersive" is an adjective in English. So "Immersives Produkt" is right, as it stands in source "Immersive product". But we've kept code term "immersive product" earlier in text. Good.

Note: I wrote "weiter unten" in two places: "das weiter unten weiter" — simply "das weiter unten (weiter) unten" bad. Let's write:

immersiveProductPageToken ist die Eingabe für das weiter unten beschriebene Immersive-Produkt-Tool. Es ist ein temporäres Token; erweitere es also noch in frischem Zustand, wenn du die Produktdaten möchtest. Ein älteres Token, das fehlschlägt, gibt dir ... – "erhältst du" and "rufe Shopping neu auf, um eines frische gutzu".

OK.

Now, the "Google-Kurzvideos" section heading.

Let's consider whether "Kurzvideo-Ergebnisse" vs "Google short videos". Fine.

Now "Ergebnissiete" is spelled "Ergebnisseite". Correct German compound.

Also "Suchergebnisseite" = SERP, but source says "Google results page". "Ergebnisseite" alone is fine.

Also "URL-Search":

Now, in the "Tool selection" paragraph, the mention of "?apis=google_serp,google_maps" is code/inline — keep.

Also "Everything HasData exposes" → "alles, was HasData exposed" in the original English might be "exposes", but we translate "exposed". Since "exposed" is not a code term, translate: "was HasData anbietet".

Now "and the tool descriptions themselves cost context on every turn" – use "in jeder Runde" – but "turn" in the LLM setting means each LLM inference turn. In German: "kosten in jedem Zugriff Kontext" isn't prefix. Better: "belegen bei jedem Aufruf Kontext" or "schlagen auf jede Anfrage zu". Let me use "and die tool descriptions itself ideal every turn? "I'll phrase: "und die Tool-Beschreibungen selbst belegen in jeder Umgebung Kontext." Use: "bei jeder Iteration". Hmm. I'll write "und die Tool-Beschreibungen selbst verbrauchen bei jedem Schritt Kontext."

simply "jede Nachricht" – "on every turn" = "bei jeder Abfrage". Let's do "bei jeder Runde" (German tech docs are okay with "jede Runde" for LLM conversation turn). Fine.

Now, let me check "People Also Ask" in the table as "People Also Ask" translating. Keep.

Now, in compilation of the table in "How it compares":

Original header: "| | Custom Search JSON API | This server |" I'll translate a first column raw.

Rows:

| Was durchsucht wird | Eine selbst konfigurierte Programm... | Die Live-Google-Ergebnisseite | | Einrichtung | Ein Cloud-Projekt und eine Suchmaschine | Ein API-Schlüssel | | AI Overview und People Also Ask | Wird nicht geliefert | Inline oder per Token | | Experte/Shopping, News, Short Videos, local ... | Would Not ungespickt | Eigene Tools | | Free-Tier fourder | 100 Suchanfragen pro Tag | 1.000 Credits über 30 Tage, danach tägliche Auffüllung |

Wait row 5: "Free tier" -> "Kostenlose Stufe". Good.

In the table, precise wording for "Important: believe" etc.

Now, further "the two rows determine" — We preserve.

Finished.

Let's now write the final answer with full code.

Be careful not to introduce English words outside code unless they are product names: The product "Custom Search JSON API", "Programmable Search Engine" (product name) – actually "Programmable Search Engine" is the official name in English, keep. "Cloud project" -> "Cloudprojekt". OK.

Check spelling: "geografisch" or "geographisch" – Both; I use "geografischen". Use "Geografischer" in tables (the cell is a noun phrase headerless).

Let me decide "Hinweise" vs "Hinweis". Use "Hinweise" everywhere is fine.

Also "Required" column: We put "Ja" for required parameters, else empty. In the tables for moreStores optional; empty.

Now prepare. Let me type the final text in full| Parameter | Typ | Erforderlich | Hinweise | | :------------------ | :----- | :----------- | :------------------------- | | q | string | ja | Die Suchanfrage | | gl / hl | string | | Länder- und Sprachcodes | | location / uule | string | | Geografischer Standort | | num / start | number | | Seitengröße und Offset |

Gibt organicResults, aiOverview, relatedSearches, filters, appliedLocation, searchInformation und pagination zurück. Der Aufruf kostet halb die Credits eines vollständigen SERP-Aufrufs – für den Fall, dass du die organischen Ergebnisse und die AI Overview ohne die zusätzlichen Blöcke brauchst.

Google News

hasdata_google_serp_news_getGoogleNews

Die Google-News-Ergebnisse zu einer Suchanfrage oder einer News-Rubrik.

Parameter

Typ

Required

Hinweise

q

string

Eine Suchanfrage. Weglassen, um stattdessen eine Rubrik zu lesen

gl / hl

string

Länder- und Sprach-Codes

topicToken / sectionToken / storyToken / publicationToken

string

Mithilfe eines Tokens aus einer früheren Antwort in ein Thema, eine Rubrik, eine Story oder eine Publikation eintauchen

Gibt newsResults, menuLinks, relatedTopics und relatedPublications zurück. Jeder News-Eintrag enthält position, title, link, source mit name und icon, thumbnail und date.

Google Shopping

has_google_serp_shopping_getSearchResults

Einkaufsergebnisse zu einer Suchanfrage.

Parameter

Typ

Erforderlich

Hinweise

q

string

ja

Das Produkt, nach dem gesucht wird

gl / hl

string

Länder undungs-Codes

location / uule

string

Geografischer Standort

start

number

Ergebnis-Offset für die Seitennavigation

tbs

string

Erweiterte Shopping-Filter, der rohe Google-Parameter

Gibt shoppingResults, filters, refineSearchFilters, searchInformation und pagination zurück. Jedes Ergebnis enthält position, title, productId, price, extractedPrice, rating, reviews, source, category, thumbnail und ein immersiveProductPageToken.

immersiveProductPageToken ist die Eingabe für das unten weiter beschriebene Immersive-Produkt-Tool. Es ist ein temporärer Token: Öffne ihn, solange er frisch ist, wenn du die Produktdaten möchtest. Schlägt ein alter Token fehl, führe erneut einen Shopping-Aufruf aus, um einen neuen Token zu bekommen.

[token-placeholder]

Immersives Produkt

hasdata_google_serp_immersive_product_getImmersive_demo

Die vollständige Produktkarte hinter einem Shopping-Ergebnis.

Parameter

Typ

Erforderlich

Hinweise

pageToken

string

ja

Das immersiveProductPageToken aus einem Shopping-Ergebnis oder ein immersiveProducts-Eintrag einer SERP

moreStores

bool

Weitere Stores anfordern

nextPageToken

string

Durch die Liste der Stores blättern, mithilfe von storesNextPageToken aus der vorherigen Antwort

Gibt ein productResults-Objekt zurück, mit title, brand, rating, reviews, priceRange, einem stores-Array aller Verkäufer mit Preis und Link sowie variants, reviewsImages, userReviews, topInsights, aboutTheProduct und discussionsAndForums. Das ist genau der eine Aufruf, der aus einem einzelnen Listing das ganze Bild über alle Shops hinweg macht.

{
  "productResults": {
    "title": "Men's Nike Alphafly 3",
    "brand": "Nike",
    "rating": 4.4,
    "reviews": 1077,
    "priceRange": "$221-$295",
    "stores": [ { "name": "eBay", "link": "https://www.ebay.com/itm/…", "price": "$221" } ],
    "storesNextPageToken": "Mw=="
  }
}

Füge storesNextPageToken wieder als Parameter nextPageToken ein, um durch die Stores zu blättern.

Google Kurzvideos

hasdata_google_serp_short_videos_getShortVideosSearchResults

Die Kurzvideo-Ergebnisse, die Google zu einer Suchanfrage zeigt.

Parameter

Typ

Erforderlich

Hinweise

q

string

ja

Die Suchanfrage

gl / hl / cr

string

Länder-, Sprach- und Inhalts-Region-Codes

lr

array

Eine oder mehrere Spracheinschränkungen

page

number

Ergebnisseite

deviceType

string

desktop, mobile oder tablet

Gibt shortVideos zurück, jeweils mit position, title, link, source, sourceLogo, profileName, duration, clip und thumbnail.

Fehler und Fehlerfälle

Dein Client bekommt bei einem Tool-Aufruf fast nie einen HTTP-Fehlercode zu sehen. Die MCP-Schicht antwortet mit 200 und steckt den Fehler in das Ergebnis, mit isError gesetzt auf true und die Ursache als Text. Der Agent liest eine Nachricht, wo man eine Statuszeile erwarten würde.

Ein falscher Schlüssel zeigt sich als Tool-Ausgabe, nicht als fehlgeschlagene Verbindung. Die Tool-Auflistung akzeptiert jeden nicht leeren Schlüssel, der Client anschließt den vorgesehenen Handshake und liefert grün. Der erste Tool-Aufruf kommt dann mit isError: true und dem Text HasData API error: 401 Unauthorized zurück. Achte auf diese Zeichenfolge, denn nichts Früheres im Ablauf meldet das Problem.

Der einzige echte HTTP-Fehler ist ein fehlender Schlüssel. Die Authentifizierung läuft vor jedem Tool; die Verbindung selbst schlägt mit 401 fehl.

Ein Argument, das das Schema verletzt, wird abgelehnt, bevor daraus eine Suche wird. Eine Suche ohne q kommt zurück mit isError: true und dem Text MCP error -32602: Input validation error und der Grund nennt das Feld. Es wird nichts geladen, wenn nicht jetzt nichts: nothing.

Ein abgelaufenes AI-Overview-Token schlägt als Fehler fehl. Ein Token aus einer SERP-Antwort ist etwa 4 Minuten gültig. Wer eines öffnet, das man earlier gespeichert hat, erhält isError: true und den Text HasData API error: 400 Bad Request – die gleiche Form wie bei einem falschen Schlüssel. Fange das davon ab und rufe die SERP erneut auf, um einen frischen Token zu bekommen.

Ein Block, den Google nicht angezeigt hat, ist abwesend, nicht leer. Eine SERP-Antwort ohne AI Overview, ohne Shopping-Bereich oder ohne People Also Ask liefert eine Antwort ohne diese Schlüssel statt mit leeren. Prüfe den Schlüssel, bevor du ihn liest.

Ergebnisse, die Daten enthalten, liefern dazu eine requestMetadata.id, die im Supportagentur wertvoll ist, sowie html- und json-Links zu dem gespeicherten Artefakt genau dieses Aufrufs.

Preise, kostenlose Stufe und Limits

Credits werden pro Tool berechnet. Die volle SERP, AI Overview, Google News, Google Shopping und Kurzvideos kosten 10 Credits pro Aufruf. SERP Light, das Immersive-Produkt-Tool und das AI-Overview-Tool kosten 5 Credits. Die AI Overview, die inhärend in einer SERP-Antwort kommt, ist kostenlos und Teil des 10-Credits-Aufrufs; aber das Auflösen eines Tokens mit dem AI-Overview-Tool, auch jedes people-ask-Token, ist ein separat mit 5 Credits berechneter Aufruf. Die Größe der Antwort ändert nichts am Preis.

Die kostenlose Testphase ist 1.000 Credits über 30 Tage, ohne Kreditkarte – das sind 100 vollständige SERP-Aufrufe oder 200 der Aufrufe zu 5 Credits. Danach erhält ein aktives Konto weiterhin jeden Tag 100 Credits obendrauf, wann immer der Stand unter 100 fällt. So kann ein Agent mit geringem Verbrauch dauerhaft in der kostenlosen Stufe laufen.

Bezahltarife beginnen bei $49 pro Monat für 200,000 Credits. Der Preis pro Credit sinkt mit steigendem Volumen, aktuelle Zahlen findest du auf der Preisseite.

Dein Tarif legt auch fest Concurrency. Die freie Testversion erlaubt 1 Anfrage gleichzeitig, Startup 15, Business 30, Growth 50 und die High-Volume-Pläne abgestimmt 200 bis 1.500. Concurrency ist der einzige Drossel. There is no separate. Es gibt keine eigenes Limit für Anfragen pro Minute. Behandle den Überlastfall in allem Unbeaufsichtigten defensiv, denn ein Agent, der die Anfragen streut, stoßet vor dir an die Obergrenze.

Tool-Auswahls

?apis=google_serp setzt diese acht Tools frei. Der Parameter nimmt eine Liste; mit ?apis=google_serp,google_maps zusätzliche auch die Google-Maps-Tools zur Suche hinzu. Ohne den Parameter erhältst du alles, was HasData zugänglich ist – derzeit 57 Tools.

Eine kleine Liste ist usually the better default. Ein Modell, dasamong lean in eight Tools wählt, trumpfts häufiger, als if wählen; und Zusätzlich the tool descriptions themselves themselves cost context on every model.

Wie der Vergleich ausfällt

Google bietet keine generische Such-API mehr an. Der offizielle Weg is das Custom Search JSON API, und that answers a different. Fragen als diese.

The Custom Search API durchsucht eine Programmable Search Engine, die du konfigurierst – über the sites you listet, oder den gesamten Web-Index, wer jeder sie einschalt. Sie ist begrenzt auf hundert freie Anfragen pro Tag, verlangt danach pro Tausend – bis zu einem Tagesleben – und gibt einen reduzierten Ergebnissatz zurück. Sie liefert die KI-Overview, People Also Ask, Local-Pack, Shopping, News oder Kurzvideos, weil das largely Features of the. Der richtige API ist, wenn du die eigene Website oder eine feste List of Websites durchsuchen willst und dabei im Rahmen of Google official’s Terminis bleiben möchtest.

Dieser Server gibt zeit nahtlos die Google-Suchergebnisseite so this back wieder, split open, wie sie der Besucher sieht. All you need Visa.

Für den einrichten: the query runs against all of Googles, not a curated search engine, and AI Overview, People Also Ask, Shopping usw. come as structurato blocks.

Custom Search JSON API

Dieser Server

Was durchsucht wird

Eine Programmable Search Engine, die du konfigurierst

Die Live-Google-Suchergebnisseite

Einrichtung

Ein Cloud project

Ein Server, der Google-Suchergebnisse als Tools bereitstellt, die ein KI-Client aufrufen kann. Der Client sendet einen Tool-Aufruf über das Model Context Protocol, der Server ruft die Ergebnisseite ab und liefert strukturiertes JSON zurück, und das Modell arbeitet mit dem Ergebnis und sieht nie eine HTML-Seite. Dieser Server stellt acht schreibgeschützte Tools bereit und läuft remote, sodass sich der Client mit einer URL verbindet und keinen lokalen Prozess startet.

Ja. Eine SERP ist eine Suchergebnisseite. Diese Tools geben Googles Ergebnisseiten zurück, daher bedeuten „SERP API“ und „Google Search API“ in diesem Repo dasselbe.

Gibt es einen offiziellen Google-Search-MCP-Server?

Google veröffentlicht weder einen MCP-Server noch eine allgemeine Such-API. Das offizielle Produkt, das dem am nächsten kommt, ist die Custom Search JSON API, die eine von dir konfigurierte Programmable Search Engine durchsucht. Mehrere Community-MCP-Server – dieser hier gehört dazu – geben stattdessen die Live-Ergebnisseite zurück.

Wie erhalte ich die AI Overview?

Führe einen SERP-Aufruf aus. Normalerweise liefert das aiOverview inline mit, zusammen mit seinen textBlocks und references. Wenn stattdessen ein pageToken zurückkommt – und das ist bei jeder „People Also Ask“-Frage der Fall – übergib dieses Token an das AI-Overview-Tool, um die Antwort zu erhalten. Tokens verfallen schnell, deshalb löse sie aus einem frischen Aufruf auf.

Brauche ich ein Google-Cloud-Projekt oder eine Programmable Search Engine?

Nein. Die einzigen Zugangsdaten sind dein HasData-Schlüssel. In Google Cloud muss nichts angelegt werden, und es gibt kein Kontingent pro API zu verwalten.

Läuft der API-Schlüssel ab?

Nein. Der Schlüssel läuft nicht ab. Du kannst ihn jederzeit im Dashboard rotieren, wann immer du es brauchst.

Sind die Daten live oder aus dem Cache?

Live. Jeder Aufruf holt die Ergebnisseite zum Zeitpunkt der Anfrage und trägt eine eigene requestMetadata.id. Zwei identische Aufrufe sind zwei getrennte Abrufe und keine Wiedergabe einer gespeicherten Kopie.

Besteht eine Verbindung zu Google?

Nein. HasData ist ein unabhängiger Dienst und nicht mit Google verbunden, wird von Google nicht unterstützt und nicht gesponsert. Google ist eine Marke des jeweiligen Inhabers. Die Tools arbeiten ausschließlich mit öffentlich verfügbaren Daten, und du bist dafür verantwortlich, die Ergebnisse im Einklang mit Googles-Bedingungen und dem für dich geltenden Recht zu verwenden.

Produktseite und Request-Builder

Google SERP API

Server-Dokumentation

MCP-Server-Dokumentation

Alle 57 Tools in einem Server

HasData/hasdata-mcp

Client-Walkthroughs

MCP-Clients und Integrationen

Die weiteren Oberflächen, die wir parsen

weitere 53 Scraper-APIs

Pläne und Credit-Kosten

Pläne und Credit-Kosten

Schlüssel und Nutzung

HasData-Dashboard

Entwicklung

Dieses Repository stellt Konfiguration und Dokumentation für einen remotebetriebenen Server bereit. Es gibt keinen Build-Schritt und nichts zu containerisieren.

Es enthält jedoch einen Contract-Test. Das README dokumentiert achtze Tools mit konkreten Parametern, und die Upstream-Tool-Liste kann sich ändern, ohne dass hier ein Commit erfolgt – das würde diese Datei stillschweigend lügen lassen. Der Test prüft, dass die dokumentierten Tools mit den angegebenen Parametern existieren, und läuft wöchentlich in CI sowie bei jedem Push.

HASDATA_API_KEY=your_key_here npm test

In PowerShell:

$env:HASDATA_API_KEY = "your_key_here"; npm test

Der letzte Check führt eine echte Suche durch und kostet 10 Credits – das ist der Preis eines Kanarienvogels, der aus dem richtigen Grund sterben kann. Das Auflisten von Tools gelingt mit jedem nicht-leeren Schlüssel, ein Test, der nur die Tools auflistet, bleibt also auch bei einem widerrufenen Schlüssel grün.

Mitwirken

Korrekturen an den Tool-Tabellen und den Antwortbeispielen sind der nützlichste Beitrag, denn das sind die Teile, die am ehesten auseinanderdriften. Füge den Aufruf, den du gemacht hast, und die Antwort, die du erhalten hast, hinzu. Pull Requests aus Forks führen die Testsuite ohne Schlüssel aus; die Live-Checks werden dann übersprungen, nicht rot.

Lizenz

MIT. Siehe LICENSE.

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables integration of Google search functionality into MCP-enabled applications using the Serper API, providing rich search results, configurable parameters, and efficient response handling.
    48
  • A
    license
    A
    quality
    B
    maintenance
    MCP server for web search powered by Google AI Mode (Gemini). Enables any AI agent to search the web in real-time for free and without rate limits.
    2
    172
    MIT

View all related MCP servers

Related MCP Connectors

  • Live Google Maps business search, review, and photo data for AI agents over MCP.

  • Hosted MCP with 91 agent tools: X, domains, SEO, Maps, Trends, Search, YouTube, TikTok, and more.

  • Serper MCP — wraps the Serper Google Search API (serper.dev)

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/HasData/google-search-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server