Skip to main content
Glama
HasData

Google Trends MCP Server

Google Trends MCP Server

Ein gehosteter Model Context Protocol (MCP)-Server, der Claude, Cursor, Windsurf und jedem anderen MCP-Client ein Google-Trends-Tool bietet. Rufen Sie Interesse im Zeitverlauf, Interesse nach Region sowie die steigenden und Top-bezogenen Suchanfragen und Themen für jeden Begriff ab – alles als strukturiertes JSON, ohne eine Scraping-Bibliothek pflegen zu müssen und ohne Google-Konto.

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

Glama score tool contract MCP Tools npm PyPI License

Inhalt

Related MCP server: HasData MCP Server

Was Sie brauchen

Sie benötigen einen MCP-Client und einen HasData-API-Schlüssel vom Dashboard, der kostenlos ohne Karte erstellt werden kann, und die Testversion deckt etwa 200 Aufrufe zum 5-Credits-Satz ab. Dies ist ein Remote-Server, daher ist der einfachste Weg eine URL und ein x-api-key-Header, ohne Container, den Sie ausführen müssen, und ohne Google-Konto im gesamten Ablauf. Ein Client, der nur stdio spricht, erreicht ihn über einen schlanken Launcher, der als @hasdata/google-trends-mcp auf npm und hasdata-google-trends-mcp auf PyPI veröffentlicht ist, wie unten gezeigt.

Schnellstart

Die Server-URL ist für jeden Client gleich. Wir setzen sie praktisch in Claude Code und Claude Desktop ein. Die anderen Blöcke folgen dem jeweils dokumentierten Format des Clients für einen Remote-Server.

Feld

Wert

URL

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

Transport

HTTP, streamable

Auth-Header

x-api-key: HASDATA_API_KEY

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

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

Einstellungen, dann Connectors, dann Benutzerdefinierten Connector hinzufügen, dann https://mcp.hasdata.com/api/mcp?apis=google_trends einfügen und anmelden.

Für den Konfigurationsdatei-Weg lädt Claude Desktop nur lokale (stdio) Server, daher erreicht es einen Remote-Server über einen stdio-Launcher. Das Paket @hasdata/google-trends-mcp ist dieser Launcher und liest den Schlüssel aus der Umgebung. Fügen Sie dies zu claude_desktop_config.json hinzu:

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

Für Python statt Node tauschen Sie den Launcher gegen das PyPI-Paket, das uvx ohne manuelle Installation ausführt:

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

~/.cursor/mcp.json für jedes Projekt oder .cursor/mcp.json für eines:

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

~/.codeium/windsurf/mcp_config.json. Windsurf nennt das Feld serverUrl, nicht url:

{
  "mcpServers": {
    "google-trends": {
      "serverUrl": "https://mcp.hasdata.com/api/mcp?apis=google_trends",
      "headers": { "x-api-key": "HASDATA_API_KEY" }
    }
  }
}

.vscode/mcp.json im Arbeitsbereich:

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

Beispiel-Prompts

Prompts, kein Code. Fügen Sie einen ein, und der Agent wählt das Tool selbst aus. Jeder ist mit den benötigten Aufrufen annotiert, da jeder erfolgreiche Aufruf 5 Credits kostet.

Stellen Sie das Interesse an „Cold Brew Coffee“ in den USA über die letzten 12 Monate grafisch dar und sagen Sie mir, in welchen Wochen es seinen Höhepunkt erreichte.

Ein Aufruf, 5 Credits. Die wöchentliche Serie kommt in einer einzigen Anfrage zurück.

Geben Sie mir für „Cold Brew Coffee“ in den USA die steigenden verwandten Suchanfragen und markieren Sie diejenigen, die als Breakout gekennzeichnet sind.

Ein Aufruf, 5 Credits.

Vergleichen Sie das Interesse an „Cold Brew“ mit „Iced Coffee“ weltweit über fünf Jahre und sagen Sie, welches wächst.

Ein Aufruf, 5 Credits. Das Tool akzeptiert mehrere Begriffe in einer Timeseries-Anfrage.

Zeigen Sie mir das Interesse an „Sonnenschutz“ nach US-Bundesstaat über die letzten 90 Tage, damit ich sehe, wo die Nachfrage am höchsten ist.

Ein Aufruf, 5 Credits. Dies ist die Interesse-nach-Region-Ansicht auf Bundesstaatsebene.

Ein Vergleich über Begriffe hinweg erfolgt in einem einzigen timeseries-Aufruf. Regionsaufschlüsselungen, verwandte Suchanfragen und verwandte Themen sind jeweils ein eigener dataType, daher benötigt ein Prompt, der ein Diagramm plus seine steigenden Suchanfragen möchte, zwei Aufrufe.

Werkzeuge

Ein Tool, schreibgeschützt. Das folgende Beispiel ist aus einem echten Aufruf gekürzt, und die Zahlen bewegen sich mit dem Trend. Betrachten Sie es als Form. Der Tool-Name verlinkt auf seine Endpunkt-Referenz, die die vollständige Parameterliste enthält.

Das Beispiel ist die Nutzlast, nicht die gesamte Antwort. Ein tools/call-Ergebnis enthält einen Textblock, und dieser Text ist selbst JSON mit url, status, text und json, wobei die gescrapten Daten unter json liegen. Aus einer rohen JSON-RPC-Antwort ist der Pfad result.content[0].text, geparst, dann .json. Ein Chat-Client entpackt das für Sie, und Code, der direkt mit dem Endpunkt spricht, tut das nicht.

hasdata_google_trends_search_getTrendsData

Interesse im Zeitverlauf, nach Region oder die verwandten Suchanfragen und Themen für einen Begriff.

Parameter

Typ

Erforderlich

Hinweise

q

string

ja

Der Suchbegriff. timeseries und geoMap akzeptieren bis zu 5 durch Kommas getrennte Begriffe zum Vergleich, und ein sechster wird mit 400 abgelehnt

dataType

string

Standardmäßig timeseries, plus geoMap, relatedTopics und relatedQueries. Die beiden verwandten Typen akzeptieren nur einen einzelnen Begriff

date

string

Ein Zeitfenster wie now 7-d, today 12-m, today 5-y oder all, oder ein benutzerdefinierter Bereich yyyy-mm-dd yyyy-mm-dd

geo

string

Ein Ortscode wie US oder US-CA. Weltweit, wenn leer

region

string

Granularität nur für geoMap: country, region (Unterregion), dma (Metro) oder city. Der Standard hängt von geo ab, country weltweit und feiner, sobald ein geo gesetzt ist

cat

string

Kategorie-ID, um den Begriff einzugrenzen. 0 ist alle Kategorien

gprop

string

Die Google-Eigenschaft: images, news, froogle (Shopping) oder youtube. Websuche, wenn leer

tz

number

Zeitzonen-Offset in Minuten, Standard 420 (PDT). Verschiebt, wie stündliche Bereiche gebündelt werden

Der Antwortschlüssel hängt von dataType ab. timeseries gibt interestOverTime.timelineData zurück, geoMap gibt Interesse nach Region zurück, und die verwandten Typen geben relatedQueries oder relatedTopics zurück, jeweils aufgeteilt in rising und top. Lesen Sie den Schlüssel, der zu dem von Ihnen angeforderten Typ passt.

timeseries (der Standard) gibt für jeden Punkt einen Wert von 0 bis 100 zurück, sowohl als String als auch vorab geparst in extractedValue. Der letzte Punkt trägt oft isPartial: true, was bedeutet, dass die Woche noch aufgefüllt wird. Entfernen Sie ihn, bevor Sie einen Trend berechnen, sonst erscheint der letzte Balken als ein Rückgang, der nicht real ist.

{
  "interestOverTime": {
    "timelineData": [
      { "date": "Apr 12 – 18, 2026", "timestamp": "1775952000", "isPartial": false,
        "values": [{ "query": "cold brew coffee", "value": "100", "extractedValue": 100, "hasData": true }] },
      { "date": "Aug 23 – 29, 2026", "timestamp": "1787443200", "isPartial": true,
        "values": [{ "query": "cold brew coffee", "value": "44", "extractedValue": 44, "hasData": true }] }
    ]
  }
}

relatedQueries teilt sich in rising und top. Ein steigender Eintrag liest sich als Prozentsatz wie +300% oder als Breakout für einen zu großen Sprung, um ihn zu bewerten, und extractedValue gibt die Zahl dahinter an. Ein Breakout kommt mit einem Sentinel-extractedValue zurück, der weit über jedem realen Prozentsatz liegt. Sortieren Sie also nach dem String-Label, nicht nach der rohen Zahl.

{
  "relatedQueries": {
    "rising": [
      { "query": "organic cold brew coffee", "value": "+300%", "extractedValue": 300, "link": "https://trends.google.com/trends/explore?q=organic+cold+brew+coffee&date=today+12-m&geo=US" }
    ],
    "top": [
      { "query": "how to cold brew coffee", "value": "100", "extractedValue": 100, "link": "https://trends.google.com/trends/explore?q=how+to+cold+brew+coffee&date=today+12-m&geo=US" }
    ]
  }
}

Die Endpunkt-Referenz listet jedes geo, cat und Datumsformat auf, das das Tool akzeptiert.

Fehler und Fehlerpfade

Ihr Client sieht bei einem Tool-Aufruf fast nie einen HTTP-Fehlercode. Die MCP-Schicht antwortet mit 200 und legt den Fehler in das Ergebnis, mit isError auf true und dem Grund als Text. Der Agent liest eine Nachricht, wo Sie eine Statuszeile erwarten würden.

Ein falscher Schlüssel erscheint als Tool-Ausgabe, nicht als fehlgeschlagene Verbindung. tools/list akzeptiert jeden nicht-leeren Schlüssel und gibt das Tool zurück, sodass der Client seinen Handshake abschließt und grün anzeigt. Der erste Tool-Aufruf kommt dann mit isError: true und dem Text HasData API error: 401 Unauthorized zurück. Achten Sie auf diese Zeichenfolge, denn nichts früher im Ablauf meldet das Problem.

Ein fehlender Schlüssel ist der einzige echte HTTP-Fehler. Die Autorisierung läuft vor jedem Tool, und die Verbindung selbst schlägt mit 401 fehl. CORS-Header sind vorhanden, und ein Browser-Client liest den Status und keinen undurchsichtigen Netzwerkfehler.

Ein Argument, das das Schema des Tools verletzt, wird abgelehnt, bevor es zu einem Scrape wird. Der Server antwortet mit isError: true und dem Text MCP error -32602: Input validation error, wobei das fehlerhafte Feld genannt wird. Es wird nichts abgerufen und nichts berechnet.

Ein Begriff mit zu geringem Suchvolumen gibt ein erfolgreiches Ergebnis mit leeren Datenarrays zurück, keinen Fehler. Google Trends hat für einen seltenen Begriff nichts zu zeigen, und requestMetadata.status liest weiterhin ok. Testen Sie auf die Punkte, bevor Sie sie grafisch darstellen.

Ein Bezeichner, den die Plattform ablehnt, gibt 400 zurück mit requestMetadata.status auf error. Ein unbekannter geo- oder cat-Wert ist der übliche Weg, dies zu sehen.

Ergebnisse, die Daten enthalten, tragen auch eine requestMetadata.id, die im Support angegeben werden sollte.

Preise, kostenlose Stufe und Limits

Jeder Google-Trends-Aufruf kostet 5 Credits pro erfolgreichem Aufruf. Die Antwortgröße ändert den Preis nicht. Eine fünfjährige wöchentliche Serie kostet dasselbe wie eine einzelne Woche.

Die kostenlose Testversion umfasst 1.000 Credits über 30 Tage ohne Karte, das sind 200 Google-Trends-Aufrufe. Danach erhält ein aktives Konto weiterhin täglich 100 Credits nachgefüllt, sobald sein Guthaben unter 100 fällt, sodass ein Agent mit geringem Volumen unbegrenzt auf der kostenlosen Stufe läuft.

Bezahlte Pläne beginnen bei 49 $ pro Monat für 200.000 Credits, das sind 40.000 Aufrufe. Der Stückpreis sinkt mit dem Volumen, von 1,23 $ pro 1.000 Aufrufen im Einstiegsplan auf 0,50 $ bei Business, 0,42 $ bei Growth und 0,37 $ bei den größten High-Volume-Plänen.

Ihr Tarif legt auch fest, wie viele Anfragen gleichzeiting möglich sind. Die kostenlose Testversion erlaubt 1 Anfrage gleichzeiting, Startup 15, Business 30, Growth 50, und die Tarife mit hohem Volumen liegen zwischen 200 und 1.500. Behandeln Sie den Fall, dass das Limit überschritten wird, in unbeaufsichtigten Abläufen defensiv.

Eine Anfrage, die als Nicht-200-Antwort zurückkommt, wird nicht abgerechnet. Ein erfolgreicher Aufruf, der nichts findet, ist trotzdem ein Aufruf.

Tool-Auswahl

Der apis-Query-Parameter legt fest, welche Tools Ihr Agent sieht. Je weniger Tools, desto weniger Kontext wird für Tool-Definitionen aufgewandt, und desto geringer die Wahrscheinlichkeit, dass das Modell zum falschen Tool greift.

?apis=google_trends              the one tool in this repo
?apis=google_trends,google_serp  add Google search
?apis=google_trends,youtube      trends plus YouTube

Der Parameter akzeptiert Providernamen wie google_trends und einzelne API-Namen. Falsch geschriebene Namen werden ignoriert. Wenn jeder Name falsch ist, schlägt die Anfrage mit 400 fehl, und der Body lisetet sowohl auf, was er nicht erkannt hat, als auch jeden gültigen Wert. Lassen Sie den Parameter weg, und derselbe Endpunk macht alle 57 HasData-Tools verfügbar.

Vergleich

Google veröffentlicht keine öffentliche Trends-API. Die beiden üblichen Wege sind die inoffizielle Bibliothek pytrends, die dieselben internen Endpunkte per Reverse Engineering nutzt und bricht, wenn Google sie ändert oder den Aufrufer drosselt, sowle ein selbst gebauter Scraper. Dieser Server erledigt diese Arbeit hinter einem stabilen Schema.

pytrends / DIY

Dieser Server

Offizieller Support

Keiner, Google bietet keine Trends-API an

Gepflegtes Schema für dieselben Daten

Rate-Limits und 429er

Häufig und selbst zu verwalt en

Wird hinter dem Endpoit gehandhabt

Ausgabe

Pands-Frames oder rohe Payloads zum Umformen

Strukturiertes JSON, Werte vorgeparst

Einrichtung

Eine Python-Umgebung und Wartung, wenn es bricht

Ein Schlüssel und eine URL

Kosten

Kostenlos, wenn es funktioniert

Nach der Testversion kostenpflichtig, 5 Credits pro Aufruf

Wenn Sie pytrends bereits mit geringem Volumen betreiben und es Ihnen nichts ausmacht, es zu reparieren, wenn es bricht, bleibt das die kostenlose Lösung. Dieser Server ist für Agenten und Pipelines gedacht, die die Daten jedes Mal in der gleichen Form benötigen.

FAQ

Nein. Google hat nie eine öffentliche Trends-API herausgebracht. Jede Option liset dieselben internen Endpunkte, die auch die Website trends.google.com verwendet. Diesr wird von HasData gepflegt und liefert das Ergebnis als strukturiertes JSON.

Ein Server, der Google Trends als Tool bereitstellt, das ein KI-Cli ent aufrufen kann. Der Cli ent sendet einen Tool-Aufruf über das Model Context Protocol, der Server holt die Daten und gibt strukturiertes JSON zurück, und das Modell arbeitet mit dem Ergebnis. Diesr Server stellt ein einziges Tool bereit und läuft remote, sodass der Cli ent eine URL verbindet und keinen lokalen Prozess startet.

Bedeuten die Zahlen das absolute Suchvolumen?

Nein, das tut auch Google Trends selbst nicht. Die Werte sind relative Interessen, die innerhalb der von Ihnen angefragten Suchanfrage, des Zeifensters und der Region auf 0 bis 100 skaliert sind. Nutzen Sie sie für den Verlauf und für Vergleiche, nicht als Anzahl von Suchanfragen.

Warum ist der letzte Datenpunkt niedriger als die übrigen?

Der jüngste Bucket wird normalerweise noch befüllt und kommt mit isPartial: true zurück. Verwerfen Sie ihn, bevor Sie einen Trend berechnen.

Kann ich mehrere Begriffe gleichzeitig vergleichen?

Ja, in timeseries und geoMap. Übergeben Sie die Begriffe in q, durch Kommas getrennt. Die Typen related-query und related-topic akzeptieren einen einzelnen Begriff.

Kann ich das zusammen mit anderen HasData-APIs verwenden?

Ja. Der apis-Parameter nimmt eine Liste entgegen, und ?apis=google_trends,google_serp gibt Ihrem Agenten Trends plus Google-Suche. Lassen Sie den Parameter weg und Sie erhalten alles.

Compliance und personenbezogene Daten

HasData greift ausschließlich auf öffentlich verfügbare Daten zu. Die Nutzungsbedingungen einer Plattform können den automatisierten Zugriff einschränken, und Sie sind für Ihre eigene Compliance verantwortlich.

Produktseite und Request-Builder

Google Trends API

Server-Dokumentation

MCP-Server-Dokumentation

Alle 57 Tools in einem Server

HasData/hasdata-mcp

Client-Walkthroughs

MCP-Clients und Integrationen

Alles andere, was wir scrapen

Google Trends API und 54 weitere

Tarife und Credit-Kosten

Tarife und Credit-Kosten

Schlüssel und Nutzung

HasData-Dashboard

Node-Launcher auf npm

@hasdata/google-trends-mcp

Python-Launcher auf PyPI

hasdata-google-trends-mcp

Entwicklung

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

Die Tests in test/ prüfen den Tool-Vertrag – den Teil, der brechen kann, ohne dass hier ein Commit erfolgt. Sie prüfen, dass ?apis=google_trends genau ein Tool zurückgibt, dass es weiterhin seinen erforderlichen Parameter deklariert, dass sich der Name nicht geändert hat und dass der verwendete Schlüssel tatsächlich akzeptiert wird. Dieser letzte Check ruft das Tool tatsächlich auf und kostet 5 Credits – das ist der Preis eines Kanarienvogels, der aus dem richtigen Grund scheitern kann.

# macOS and Linux
HASDATA_API_KEY=your_key_here npm test

# Windows PowerShell
$env:HASDATA_API_KEY="your_key_here"; npm test

Dieselbe Suite läuft in CI bei jedem Push und planmäßig einmal pro Woche, weil sich die Upstream-Tool-Liste ändern kann, ohne dass jemand dieses Repository anfasst. Ein Fehlschlag bedeutet, dass sich die Tool-Liste verschoben hat, der Schlüssel nicht mehr funktioniert oder der Endpoint nicht erreichbar war – und die Assertion-Meldung sagt, welcher Fall eingetreten ist.

Mitwirken

Korrekturen an der Parametertabelle und am Antwortbeispiel sind der nützlichste Beitrag, denn das sind die Teile, die abdriften. Fügen Sie den Aufruf, den Sie gemacht haben, und die Antwort, die Sie erhalten haben, hinzu. Pull-Requests aus Forks führen die Suite ohne Schlüssel aus, und die Live-Checks werden übersprungen, anstatt rot zu werden.

Lizenz

MIT. Siehe LICENSE.

Available Tools

1 tool

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool updatev1.0.0
    • First observedhasdata_google_trends_search_getTrendsData

TDQS

A4/5.0

Scored across 1 tool

Disambiguation5/5

With only a single tool, there is no risk of overlapping purposes or misselection. The single tool's scope and parameters are clearly described, making the tool's purpose immediately identifiable.

Naming Consistency2/5

The tool name combines snake_case and camelCase ('getTrendsData') with a vendor-specific prefix, so the naming style is internally inconsistent. With only one tool, there is no broader pattern for the server to enforce.

Tool Count3/5

One tool for a specialized Google Trends server is borderline. The tool is very broad and covers multiple data types, so it is usable, but it places a large command surface into a single entry point that might be easier to split into multiple focused tools.

Completeness5/5

The tool covers the full Google Trends feature set: timeseries, geo maps, related topics/queries, various filters, and property selection. No obvious major gap in the domain space.

Maintenance

ActivityActive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    A Model Context Protocol (MCP) server that provides web search capabilities through DuckDuckGo, with additional features for content fetching and parsing.
    3
    29,666 PyPI
    1,551
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Direct access to 40+ scraping and search tools. Extract structured data from Google (Search, Maps, Trends), Amazon, Airbnb, Social Media, and any web page directly into your AI agent.
    63
    20
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides Google Search trend data as an MCP tool, with historical series, growth percentages, and live trending searches, no scraping or rate limits.
    1
    MIT