Google Trends MCP
Google Trends MCP
ローカルで動作する MCP サーバーで、Claude(または任意の MCP クライアント)が Google Trends を直接クエリできるようにします。検索関心の時系列、関連クエリとトピック、地域別の内訳、リアルタイムのトレンド検索を、trends.google.com にタブを切り替えてスクリーンショットを貼り付ける代わりに、会話の中でマーケットリサーチできます。
個人・自己利用向けのマーケットリサーチのために作られています。API キーは不要です — Google Trends には公式のパブリック API がないため、この MCP サーバーは標準的な非公式 Python クライアントである pytrends をラップしています。
ツール
特に記載がない限り、すべてのツールは geo="IN"(インド) をデフォルトにします。全世界を対象にするには geo="" を渡し、または任意の ISO 国コード("US"、"GB" など)を渡します。timeframe は pytrends の形式で指定します。例: "today 12-m"、"today 5-y"、"now 7-d"、または明示的な範囲 "2024-01-01 2024-06-01"。
interest_over_time(keywords, timeframe="today 12-m", geo="IN")
最大5キーワードの相対的な検索関心度(0〜100)を時間経過で並べて比較します。最初の5件を超えるキーワードは黙って無視されます。各レコードには isPartial が含まれます。最新のデータポイントで true の場合、その期間はまだ終了しておらず、値は暫定的だという意味です。そのポイントでの下落を実際のトレンド変化として読み取らないでください。
related_queries(keyword, timeframe="today 12-m", geo="IN")
単一キーワードのトップおよび急上昇中の関連検索クエリを返します。返り値は {"top": [...], "rising": [...]} で、各要素は {"query": ..., "value": ...} というレコードです。top の値は 0–100 の相対関心度です。rising の値はパーセント増加率です — ただし 5000% という値を除きます。これはほぼゼロのベースラインから急激な成長を表す Google の「Breakout」マーカーであり、文字どおりのパーセンテージではありません。
related_topics(keyword, timeframe="today 12-m", geo="IN")
related_queries と同じですが、生のクエリ文字列ではなくトピッククラスター(Google 独自のトピックグループ)を返します。レコードには value に加えて topic_title と topic_type が含まれます。rising にも同じ Breakout の規約が適用されます。
interest_by_region(keyword, timeframe="today 12-m", geo="IN")
指定された geo 内の州・地域別にキーワードの検索関心を集計します。{"geoName": ..., "<keyword>": 0-100} のレコードを地域ごとに1件ずつ返します。
trending_now(geo="india")
ある国での今日の急上昇トレンド検索を返します。ここでは geo の形式が異なることに注意してください — 他の4つのツールのようなISOコードではなく、小文字の国名全体("india"、"united_states")を使います。これは Google 側のエンドポイントが実際に不整合であるからであり、バグではありません。
既知の制限: 本稿執筆時点では、
trending_nowは HTTP 404 で失敗します。Google は pytrends のトレンド検索メソッドが依存しているレガシーエンドポイント(hottrends/dailytrends/realtimetrends)を廃止したようです。pytrends が提供する3つのバリアントをすべてテストして確認しました。これは上流側の問題であり、このコードベースでは修正できません。クラッシュするのではなく、読みやすいエラー文字列で失敗します。他の4つのツールは別の、まだ機能するエンドポイント群を使っており、影響を受けません。Google がこのエンドポイントを復旧するか、pytrends が回避策を実装すれば、このコードを変更しなくても再び動くようになるはずです。
全ツールは失敗(レート制限、ネットワークエラー、上記の既知の限界など)をキャッチして、クラッシュせず純粋なエラー文字列を返します。Google Trends はスクレイピング対象のエンドポイントで安定した API ではないため、これは例外的ではなく予期された動作です。
Related MCP server: Google Trends MCP Server
セットアップ
Python 3.10+ と uv が必要です。
git clone https://github.com/jain-eshan/google-trends-mcp.git
cd google-trends-mcp
uv syncClaude Code に登録する
claude mcp add google-trends -- uv run --directory /absolute/path/to/google-trends-mcp server.py接続を確認します:
claude mcp listgoogle-trends が ✔ Connected として表示されるはずです。登録後は 新しく Claude Code の会話を開始してください。すでに実行中のセッションでは、追加した新しいサーバーは認識されません。
使い方
登録後は、Claude にごく人工、使うよう依頼するだけです。例:
「google-trends MCP を使って、インドでの「lab grown diamonds」 vs 「diamond jewellery」の関心を過去12ヶ月で比較し、関連クエリを表示してください。」
オプション: /trends スキル
このリポジトリには、.claude/skills/trends/SKILL.md にある Claude Code スキルが含まれています。これは生のツール群をリサーチと総括のワークフローにまとめ、トピックに関連するツールを選び、生の JSON をそのまま出力する代わりに平易な言葉での要約を生成します。Claude Code を使っている場合は、このスキルはこのリポジトリから自動で認識されます。次のように実行するだけです:
/trends <your topic>設計メモ
データのみ。サーバーで分析は行わない。 各ツールは生の構造化データを返します。解釈(このトレンドは本物か、この Breakout マーカーは何を意味するか、何に注目する価値があるか)は呼び出し側の会話で行われ、サーバーには組み込まれません。これによりサーバーはシンプルになり、呼び出し側(Claude や他の MCP クライアント)が独自の判断を下せます。
依存関係は
mcp[cli]とpytrendsのみ。 データベースも、設定ファイルも、APIキーもありません。本格的なテストスイートはない。 これはスクレイプされたサードパーティのエンドポイントをラップしているため、テストスイートはほとんど pytrends と Google の現在のレスポンス形状をテストすることになり、このコード自体をテストするものではありません。代わりに、開発中に各ツールを実際の Google Trends データで検証しました。
ライセンス
MIT — LICENSE を参照してください。
Available Tools
5 toolsinterest_by_regionA
Search interest for a keyword broken down by state/region within the given geo.
Args: keyword: a single search term. timeframe: pytrends timeframe string, e.g. "today 12-m". geo: ISO country code (e.g. "IN"), or "" for worldwide.
Returns: A list of records, one per state/region within the specified geo, each containing: - "geoName": the name of the state or region (e.g. "Maharashtra", "Delhi", "Karnataka" for India) - A column with the keyword name as the key: relative search interest (0-100 scale) for that region. Higher values indicate higher relative interest in that region compared to others in the same country. This is Google Trends' standard region-relative scale.
| Name | Required | Description | Default |
|---|---|---|---|
| geo | No | IN | |
| keyword | Yes | ||
| timeframe | No | today 12-m |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It discloses the return shape (list of records with geoName and keyword column), explains the 0-100 relative scale, and notes that values are region-relative. This gives an agent a concrete expectation of the output's meaning. It does not mention side effects, but as a 'search' operation it is implicitly non-mutating. This level of disclosure is solid for a read-only retrieval tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a well-organized docstring with a purpose line, Args section, and Returns section. It avoids fluff, and the key scoping constraint is front-loaded. It is slightly longer than strictly necessary (e.g., repeating the 0-100 scale), but every sentence adds useful information, so it earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 3 parameters, no output schema, and no annotations, this description is quite complete. It covers parameter formats, return structure, and the meaning of the interest scale. One minor gap is that for a worldwide geo, it is not explicitly clarified that records will be per country rather than per state/region, but this is a minor ambiguity given the phrase 'state/region within the specified geo.'
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the description fully compensates. It defines 'keyword' as a single search term, 'timeframe' with an example format, and 'geo' with ISO code and 'worldwide' option, plus a default. All three parameters are explained beyond the schema, which only lists names and types. This is exemplary.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence clearly states the action ('Search interest for a keyword') and the resource/scope ('broken down by state/region within the given geo'). This distinguishes it from siblings like interest_over_time (time series) and related_queries/topics (associations). The purpose is unambiguous and actionable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a use case (regional breakdown of interest) and provides parameter constraints, but it does not explicitly mention when not to use this tool or name alternative tools. It says 'within the given geo' which hints at context, but there is no direct comparison to siblings. Thus, usage guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
interest_over_timeA
Relative Google search interest (0-100) over time for up to 5 keywords, compared side by side.
Args: keywords: 1-5 search terms to compare. Only the first 5 are used; additional keywords are silently dropped. timeframe: pytrends timeframe string, e.g. "today 12-m", "today 5-y", "now 7-d", or "YYYY-MM-DD YYYY-MM-DD". geo: ISO country code (e.g. "IN", "US"), or "" for worldwide.
Returns: A list of records, one per date, each containing: - "date": ISO date string - "isPartial": boolean indicating if the time period is incomplete (True for the most recent period) - One numeric key per keyword (0-100 relative interest value)
| Name | Required | Description | Default |
|---|---|---|---|
| geo | No | IN | |
| keywords | Yes | ||
| timeframe | No | today 12-m |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses important behaviors: it notes that only the first 5 keywords are used and additional ones are silently dropped, and it explains the 'isPartial' field indicating incomplete time periods. Since no annotations are provided, the description carries the full burden and adequately covers these behavioral nuances. It does not address rate limits or authentication, but for a read-only tool this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear Args and Returns sections, front-loads the core purpose, and uses concise bullet points. Every sentence adds information, such as the maximum keyword count and return fields, without unnecessary filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema and no annotations, the description compensates by fully specifying the return format (date, isPartial, numeric per-keyword values) and parameter constraints. It provides everything an agent needs to call the tool correctly, including examples and edge cases, making it contextually complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has minimal descriptions (0% coverage), but the description adds extensive semantic detail: keyword limit and silent drop behavior, example timeframe formats, and the meaning of an empty geo string. This far exceeds the bare schema, making parameter semantics highly clear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns relative Google search interest (0-100) over time for up to 5 keywords compared side by side. This is distinct from siblings like related_queries or interest_by_region, which focus on different dimensions. The specific verb and resource make the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description presents a clear context (temporal interest comparison) but does not explicitly state when to use it over sibling tools. It provides parameter details but no guidance on selecting this tool versus related_queries or interest_by_region. The intended use is implied by the description, not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trending_nowA
Today's top trending searches for a country.
Args: geo: full lowercase country name as used by Google Trends' trending-searches endpoint, e.g. "india", "united_states" — NOT an ISO code (unlike the other 4 tools in this server).
Returns: A list of trending search term strings, ordered by trend rank (most-trending first). Typically contains approximately 20 terms.
| Name | Required | Description | Default |
|---|---|---|---|
| geo | No | india |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It describes the return format (list of strings), ordering (by trend rank), and typical size (~20). It does not mention read-only status or any error behavior, but for a trending fetch this is likely safe. The description adds useful behavioral context beyond the bare schema, though it could be more explicit about side effects or limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with an Args and Returns section, and the purpose is front-loaded in the first sentence. It conveys necessary information without unnecessary fluff. The format is standard and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter, no output schema, and no annotations, the description covers the purpose, parameter semantics, and return shape. It mentions typical size and ordering, which is helpful. Missing details like error handling for invalid geo are minor and not critical for selecting/calling the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has zero description coverage for the geo parameter, so the description must compensate. It does so by specifying the format (full lowercase country name), providing examples, and explicitly stating it is not an ISO code, which is crucial for correct usage. This goes beyond simply naming the parameter and gives actionable guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it provides 'Today's top trending searches for a country' with specific verb and resource. It also distinguishes itself from sibling tools by explicitly noting the geo format differs from the other 4 tools. This makes it easy for an agent to select the right tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives context about what the tool returns but does not explicitly state when to use it over alternatives (e.g., when you need trending terms vs. interest over time). The note about geo format is a parameter hint, not a usage recommendation. Usage is implied but not clearly scoped with exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
v0.1.0- First observed
interest_by_region - First observed
interest_over_time - First observed
related_queries - First observed
related_topics - First observed
trending_now
TDQS
Scored across 5 tools
Each tool targets a distinct aspect of Google Trends data: time series, related queries, related topics, regional breakdown, and trending now. Even the two 'related' tools are clearly separated by query strings vs topic clusters, so there's no ambiguity in selecting the right tool.
All tool names use snake_case and are descriptive, but they don't follow a unified verb-noun pattern. 'interest_over_time' and 'interest_by_region' are noun phrases, 'related_queries' and 'related_topics' are adjective-noun, and 'trending_now' is verb-adverb. Despite this slight mix, the naming is intuitive and predictable.
Five tools is well-scoped for a Google Trends server, covering the core data endpoints without redundancy. Each tool serves a clear purpose, and the count is within the ideal range for a focused integration.
The toolkit covers the essential Google Trends operations: time series, related queries/topics, regional interest, and trending searches. Minor gaps exist, such as no multi-keyword comparison for related data or a dedicated city-level breakdown, but the core workflows are fully supported.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Google Trends: Search, Images, News, Shopping over time, growth metrics. Free key at trendsmcp.ai
Cross-platform social media intelligence. Trend volume and growth signals. Free key at trendsmcp.ai
Trend data from Google Trends, YouTube, TikTok, Reddit, Amazon, Wikipedia, npm, Steam and more
Google Trends search interest over time with growth metrics. Free key at trendsapi.ai
Related MCP Servers
- AlicenseBqualityFmaintenanceProvides access to Google Trends data including status, trending questions, and trending topics via MCP tools.32428MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to access Google Trends data for comparing keywords, discovering trending searches, and analyzing regional interest through natural language.2MIT
- AlicenseAqualityDmaintenanceProvides free Google Trends data (interest over time, term comparison, related queries, trending now, regional breakdown) to MCP-compatible AI clients without needing an API key.552MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to query Google Trends data, including search interest over time, regional breakdowns, trending searches, and keyword ideas.MIT