Google Webtools MCP について
Google Webtools MCPは、Google Search ConsoleとGA4のデータを分析するエージェント向けMCPサーバーです。プロパティ管理、SEO分析、インデックス確認、サイト認証、レポートに加え、ローカル処理による要約と提案を提供します。
主な機能
- 01Search Consoleのプロパティとサイトマップ管理
- 02検索トラフィック、クエリ、ページの分析
- 03SEO機会と流入減少コンテンツの特定
- 04URLのインデックスとサイト状態の確認
- 05GA4のプロパティ、ストリーム、レポート管理
- 06サイト所有権の確認
活用シーン
- 01週次SEO実績と優先アクションの確認
- 02成果の低いページや検索クエリの発見
- 03複数URLのインデックスと正規URLの問題確認
- 04GA4プロパティの作成と分析レポートの取得
MCP 対応
MCPを通じてGoogle Search Console、GA4、Site Verification API向けの39個のツールを公開します。stdioとステートレスなStreamable HTTPに対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
docker run -i --rm -e GOOGLE_SERVICE_ACCOUNT_KEY ghcr.io/stufently/google-webtools-mcp:1.2.2GOOGLE_SERVICE_ACCOUNT_KEYシークレットGoogle service account key, the whole JSON as one string. The account must be added as a user in Search Console and GA4.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ghcr.io/stufently/google-webtools-mcp:1.2.2stdioツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
google-webtools-mcp
AI エージェントが Google Search Console と Google Analytics 4 に直接アクセスできる MCP サーバーです。プロパティ管理、検索パフォーマンス分析、インデックス登録の確認、GA4 レポート、サイトの所有権確認に対応します。
AI エージェント向け
エージェントにこのサーバーを操作させる場合は、まず SKILL.md(ロシア語)を参照させてください。プロパティの検出、所有権確認、サイトマップ、インデックス登録の確認、定期監査の手順に加え、URL 検査の結果の読み方、Search Console が公開していない情報、割り当て量を消費する呼び出し、稼働中の設定を書き換えるツールについて説明しています。
機能
このサーバーは、5 つの Google API を利用する 39 個のツールを提供します。
| API | 用途 |
|---|---|
Search Console API (webmasters v3) | プロパティ、サイトマップ、検索アナリティクス |
Search Console API (searchconsole v1) | URL 検査 |
| Google Analytics Admin API (v1beta) | GA4 アカウント、プロパティ、データストリーム |
| Google Analytics Data API (v1beta) | GA4 レポート、リアルタイムデータ、メタデータ |
| Site Verification API (v1) | 確認トークン、所有権確認 |
生の API アクセスに加えて、ツールの応答はローカルの分析レイヤーで後処理されます。これには、掲載順位に基づく CTR ベンチマーク、トレンド検出、クエリの意図分類、機会スコアリング、推奨事項エンジンが含まれます。ほとんどのツールは、生の JSON ではなく読みやすい Summary と Data のブロックを返し、伝えるべき内容がある場合は Recommendations と Limitations のセクションも返します。
インフラストラクチャ:メモリ内 TTL+LRU キャッシュ(検索アナリティクスは、期間の終了日が直近 2 日以内の場合は 15 分、2 日より前の場合は 1 時間、サイトマップは 15 分、サイト一覧は 30 分、URL 検査は 1 時間)、レート制限(毎秒 20 リクエスト、バースト 30)、2 つのトランスポート — stdio(デフォルト)とステートレス Streamable HTTP。
ツール
Search Console プロパティ(4)
| ツール | 使用する場面 |
|---|---|
list_properties | 最初に使用します。アクセス可能なすべての GSC プロパティと、それぞれの権限レベルを確認できます。 |
get_property_details | 特定のプロパティの種類と権限レベルを確認します。 |
add_property | Search Console に新しいサイトを登録します(所有権確認は別の手順です)。 |
delete_property | 認証済みアカウントの Search Console サイト一覧からプロパティを削除します。過去のデータは削除されず、プロパティは再登録できます。 |
サイトマップ(4)
| ツール | 使用する場面 |
|---|---|
list_sitemaps | 送信済みのサイトマップと、Google が報告しているエラーや警告を確認します。 |
get_sitemap_details | 1 つのサイトマップの詳細を確認します。コンテンツの種類別 URL 数、最終ダウンロード時刻、エラー数、警告数を確認できます。 |
submit_sitemap | サイトマップの公開後または移動後に、新しいサイトマップを送信します。 |
delete_sitemap | 古くなった、重複している、またはエラーが返されるサイトマップを取り下げます。 |
検索パフォーマンス(6)
| ツール | 使用する場面 |
|---|---|
get_search_analytics | 生のクエリです。ディメンション、フィルター、検索タイプ、行数上限、データ状態、集計方法を細かく制御できます。以下の加工済みツールが用途に合わない場合に使用します。 |
get_performance_summary | 「調子はどうですか?」を確認します。クリック数、表示回数、CTR、掲載順位と、前の期間との比較を確認できます。前の期間にデータがまったくない場合、トレンドに関するアドバイスは表示されません。 |
compare_periods | 明示的に指定した 2 つの期間を並べて比較します(リリース前後や季節ごとの比較など)。 |
get_top_queries | クリック数の多いクエリを、各クエリの掲載順位に応じた CTR ベンチマークのスコアとともに表示します。 |
get_top_pages | クリック数の多いページを、同じ CTR 分析とともに表示します。 |
get_traffic_by_device | デスクトップ、モバイル、タブレット別にトラフィックを分類し、デバイス固有の問題を見つけます。 |
機会(5)
| ツール | 使用するタイミング |
|---|---|
find_quick_wins | 「取りこぼしている収益はどこにありますか?」— 検索順位は高いもののクリック数が少ないクエリとページの組み合わせや、1 ページ目のすぐ下にある組み合わせを順位付けします。各組み合わせは必ず 1 つのカテゴリ(CTR 1~3、短期的な改善の見込みが 3 超~10、2 ページ目が 10 超~20)に分類されるため、指定した期間の件数とクリック数の推定値は合計できます。 |
find_declining_content | まだ回復可能なうちにトラフィックの減少を捉えます。現在の期間を前の期間と比較し、減少しているページとクエリを別々に順位付けして報告します。 |
find_ctr_opportunities | 検索順位に対するベンチマークを大幅に下回る CTR のページを見つけ、ページごとの修正案を提示します。 |
find_content_gaps | 適切でないページにランディングしているクエリ、表示回数は多いもののクリックがないクエリ、専用ページが必要なトピックを見つけます。 |
find_what_to_build_next | コンテンツ計画に使用します。ユーザーの意図(質問、比較、問題、購入)ごとにクエリをトピッククラスターにまとめます。 |
インデックス登録(3)
| ツール | 使用するタイミング |
|---|---|
inspect_url | この URL が検索結果に表示されない理由を調べます。インデックス登録のステータス、モバイルユーザビリティ、リッチリザルトを確認できます。FAIL 判定の原因となった項目ごとの検証問題も含まれます。 |
batch_inspect_urls | URL のリストをまとめて同じように確認します(1 回の呼び出しにつき最大 50 件)。 |
check_indexing_issues | トラフィック上位のページを監査し、インデックス登録の失敗、正規 URL の不一致や未設定、モバイルの問題を確認します。API でエラーになった URL は未検査として報告されますが、残りの監査は続行されます。 |
クエリ分析(3)
| ツール | 使用するタイミング |
|---|---|
analyze_query_landscape | 需要の全体像(検索意図の構成、ブランド検索と非ブランド検索の内訳、順位の分布)を把握します。 |
find_new_queries | 今期と前期を比較して、実際に新しく登場したクエリや急上昇中のクエリを見つけます。 |
find_cannibalization | 同じクエリで複数の自社ページが競合していないか検出します。最もクリック数の多いページを勝者とします。平均順位が最も高いページとは限りません。また、実質的なボリュームがあるページが 1 つだけのクエリには、統合に関する提案を行いません。 |
レポート(2)
| ツール | 使用するタイミング |
|---|---|
weekly_seo_report | 1 回の呼び出しで週次の概要を取得します。トレンド、成長中の項目、減少中の項目、短期的な改善機会、サイトマップの健全性、優先度付きアクションを確認できます。 |
seo_health_check | トラフィックの傾向、CTR 効率、順位の分布、サイトマップの健全性のサブスコアを含む、全体の A~F 評価を取得します。 |
GA4 管理(7)
| ツール | 使用するタイミング |
|---|---|
ga4_list_accounts | 認証情報でアクセスできるすべての GA4 アカウントとプロパティを確認します。 |
ga4_list_properties | 特定のアカウントに属するプロパティを一覧表示します。 |
ga4_get_property | プロパティの設定を確認します。 |
ga4_create_property | 新しい GA4 プロパティを作成します。書き込み操作です。 |
ga4_create_data_stream | ウェブデータストリームを作成し、測定 ID(タグの設置用)を取得します。書き込み操作です。 |
ga4_list_data_streams | プロパティのデータストリームを一覧表示します。 |
ga4_get_data_stream | 測定 ID を含む、1 つのデータストリームの詳細を取得します。 |
GA4 レポート(3)
| ツール | 使用するタイミング |
|---|---|
ga4_run_report | あらゆる GA4 レポートを取得します。指標、ディメンション、日付範囲(絶対指定、または 28daysAgo のような相対指定)を選択します。 |
ga4_run_realtime_report | 現在サイトを訪問しているユーザーを確認します。 |
ga4_get_metadata | プロパティで使用できるディメンションと指標(カスタムのものを含む)を確認します。指標名を推測する前に実行してください。 |
サイトの確認(2)
| ツール | 使用するタイミング |
|---|---|
gsc_get_verification_token | 配置するトークンと、方法ごとの手順を取得します。方法:FILE、DNS_TXT、META、ANALYTICS。 |
gsc_verify_site | トークンの配置後に確認を完了します。 |
セットアップ
1. Google の認証情報を取得する
Google Cloud プロジェクトで、Search Console API、 Google Analytics Admin API、Google Analytics Data API、および Site Verification API を有効にします。
サーバーは次の OAuth スコープを要求します。
https://www.googleapis.com/auth/webmasters
https://www.googleapis.com/auth/analytics.readonly
https://www.googleapis.com/auth/analytics.edit
https://www.googleapis.com/auth/siteverification.verify_only
オプション A — サービスアカウント(サーバーや自動化に最適):
- Google Cloud Console → IAM と管理 → サービス アカウント → 作成します。
- 鍵を追加 → 新しい鍵を作成 → JSON → ダウンロードします。
- Search Console → 設定 → ユーザーと権限 → サービスアカウントのメールアドレスを追加します。
- GA4 → 管理 → プロパティのアクセス管理 → 同じメールアドレスを追加します。
オプション B — OAuth 2.0(個人でのローカル利用に最適):
- Google Cloud Console → API とサービス → 認証情報 → 認証情報を作成 → OAuth クライアント ID → デスクトップ アプリ。
- クライアント シークレットの JSON をダウンロードします。
- 初回起動時、サーバーは stderr に認証 URL を出力し、一時的なローカルのコールバックリスナーを起動します。URL を開いて同意すれば完了です。
- トークンは
~/.google-webtools-mcp/token.jsonに保存され、自動的に更新されるため、認証は一度だけで済みます。
2. 環境変数
| 変数 | 用途 |
|---|---|
GOOGLE_APPLICATION_CREDENTIALS | サービスアカウントの JSON キーファイルへのパス。 |
GOOGLE_SERVICE_ACCOUNT_KEY | インライン JSON 文字列として指定するサービスアカウントキー。ファイルのマウントが難しい Docker や CI で使用します。 |
GSC_OAUTH_CLIENT_SECRETS_FILE | OAuth クライアント シークレット JSON ファイルへのパス。 |
PORT | HTTP トランスポートのポート。デフォルトは 3000 です。--http を指定した場合のみ読み取られます。 |
認証方法は次の順に試され、利用可能な認証情報が得られた最初の方法が使用されます。失敗した方法は記録され、次の方法が試されます。GOOGLE_APPLICATION_CREDENTIALS が存在しない、または形式が不正なファイルを指していても、そこでサーバーが停止することはありません。OAuth が設定されていて保存済みのトークンがある場合は、OAuth アカウントで起動します。実際に使用された ID を確認するには、stderr の [auth] Authenticated via … 行を確認してください。
- サービスアカウント —
GOOGLE_APPLICATION_CREDENTIALS、次にGOOGLE_SERVICE_ACCOUNT_KEY、続いてtypeがservice_accountの場合は./credentials.json。 - アプリケーションのデフォルト認証情報(
gcloud auth application-default login)—GOOGLE_APPLICATION_CREDENTIALSが設定されている場合はスキップされます。 GSC_OAUTH_CLIENT_SECRETS_FILEによる OAuth。- 作業ディレクトリ内の
./credentials.json。OAuth クライアント シークレット(installedまたはwebキーを含む)と判断された場合に使用されます。
どの方法も成功しない場合、サーバーは stderr にセットアップガイドを出力して、そのまま起動します。そのため、ホストやディレクトリはキーなしでもツールを一覧表示できます。その後の各ツール呼び出しでは、認証情報が再度検索されます。いずれかの方法が成功するまでは、Google を呼び出す代わりに、セットアップのヒント付きで同じエラーを返します。キーファイルを修正するために再起動する必要はありません。
3. インストール
docker run -i --rm \
-v /absolute/path/to/service-account.json:/creds/sa.json:ro \
-e GOOGLE_APPLICATION_CREDENTIALS=/creds/sa.json \
ghcr.io/stufently/google-webtools-mcp:1.2.2
/absolute/path/to/service-account.json を手順 1 のキーファイルに置き換えてから、コマンドを貼り付けます(Docker では絶対パスが必要です)。Docker は初回起動時にイメージを取得するため(amd64 と arm64 に対応)、ほかにインストールするものはありません。stderr に Server running on stdio と表示され、クライアントの接続を待機します(終了するには Ctrl+C を押します)。以下のクライアント設定はすべて同じ docker run を実行します。キーファイルは読み取り専用でマウントされ、クライアント設定に書き込まれることはありません。
イメージはサービスアカウントに対応しています。初回起動時、コンテナ内では OAuth は動作しません(Docker を参照)。OAuth を使用する場合は、ソースからビルドしてください。
検証済みのクライアントとプラットフォーム
実際に実行したものだけを検証済みとして記載しています。接続方法にあるその他の設定は、いずれもエンドツーエンドで確認されていない、ドキュメント化された設定です。
| クライアント/ランタイム | OS | 実行方法 | ステータス | 根拠 |
|---|---|---|---|---|
| Claude Code 2.1 | Ubuntu 26.04 LTS, x86_64 | このリポジトリからビルドした Docker イメージ、stdio、読み取り専用でマウントした gcloud ADC | 検証済み | メンテナーのホストで日常的に使用 |
| Codex CLI 0.162 | Ubuntu 26.04 LTS, x86_64 | 同じ Docker イメージ、stdio | 設定済み、個別には未確認 | メンテナーのホスト設定 |
| Node.js 22, 24, 26 | Ubuntu (ubuntu-latest) | npm ci、リント、単体テスト、ビルド | CI で検証済み | ci.yml のマトリックス |
| Docker イメージ | Ubuntu (ubuntu-latest) | stdio 経由で initialize と tools/list を実行 | CI で検証済み | ci.yml、ジョブ image |
Claude Desktop(.mcpb) | macOS, Windows | デスクトップ拡張機能 | 未検証 | CI でバンドルをビルドしますが、実際の Desktop にはインストールしていません |
| Cursor, Windsurf, Zed | 任意 | 以下の設定 | 未検証 | ドキュメントに記載されているのみ |
| macOS, Windows | — | 任意のクライアント | 未検証 | これらのシステムには CI ランナーがありません |
接続方法
以下の各ブロックでは、上記のインストールコマンドの引数を使って docker でサーバーを起動します。変更が必要なのは /absolute/path/to/service-account.json だけです。
Claude Code
プロジェクトのルートにあるプロジェクトファイル .mcp.json:
{
"mcpServers": {
"google-webtools": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-v",
"/absolute/path/to/service-account.json:/creds/sa.json:ro",
"-e",
"GOOGLE_APPLICATION_CREDENTIALS=/creds/sa.json",
"ghcr.io/stufently/google-webtools-mcp:1.2.2"
]
}
}
}
同じサーバーをターミナルから登録することもできます。
claude mcp add google-webtools -- docker run -i --rm \
-v /absolute/path/to/service-account.json:/creds/sa.json:ro \
-e GOOGLE_APPLICATION_CREDENTIALS=/creds/sa.json \
ghcr.io/stufently/google-webtools-mcp:1.2.2
すべてのプロジェクトで利用できるようにするには、--scope user を追加してください。
Claude Desktop
claude_desktop_config.json — macOS では ~/Library/Application Support/Claude/claude_desktop_config.json、Windows では %APPDATA%\Claude\claude_desktop_config.json、Linux では ~/.config/Claude/claude_desktop_config.json です。保存後、Claude Desktop を再起動してください。
{
"mcpServers": {
"google-webtools": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-v",
"/absolute/path/to/service-account.json:/creds/sa.json:ro",
"-e",
"GOOGLE_APPLICATION_CREDENTIALS=/creds/sa.json",
"ghcr.io/stufently/google-webtools-mcp:1.2.2"
]
}
}
}
Claude Desktop では、このサーバーをワンクリックでインストールすることもできます。https://github.com/stufently/google-webtools-mcp/releases/latest から .mcpb をダウンロードして開いてください。Desktop でサービスアカウントの JSON キーを求められます。このキーは、Search Console と GA4 に追加されたアカウントに属している必要があります。
同じリリースには、各 .mcpb の SHA256 を記載した checksums.txt も含まれています。そのファイルをバンドルと一緒にダウンロードし、次のコマンドで確認してください。
sha256sum -c --ignore-missing checksums.txt # run next to the downloaded .mcpb
macOS では、shasum -a 256 -c --ignore-missing checksums.txt でも同じ確認ができます。
次のタグ以降のリリースには、それぞれの .mcpb に対する GitHub ビルド来歴のアテステーションも付属し、リリースワークフローで署名されています。バンドルがこのリポジトリのワークフローによってビルドされ、その後すり替えられていないことを確認してください(GitHub CLI が必要です)。
gh attestation verify <bundle>.mcpb --repo stufently/google-webtools-mcp
Cursor
インストール後、~/.cursor/mcp.json 内の /absolute/path/to/service-account.json をキー ファイルへのパスに置き換えてください。または、以下のブロックを手動で追加してください。
~/.cursor/mcp.json、またはプロジェクト内の .cursor/mcp.json:
{
"mcpServers": {
"google-webtools": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-v",
"/absolute/path/to/service-account.json:/creds/sa.json:ro",
"-e",
"GOOGLE_APPLICATION_CREDENTIALS=/creds/sa.json",
"ghcr.io/stufently/google-webtools-mcp:1.2.2"
]
}
}
}
Windsurf
mcp_config.json。macOS と Linux では ~/.config/devin/mcp_config.json(または $XDG_CONFIG_HOME/devin/mcp_config.json)です。Windows では %APPDATA%\devin\mcp_config.json です。古いビルドでは ~/.codeium/windsurf/mcp_config.json が使われていました。
{
"mcpServers": {
"google-webtools": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-v",
"/absolute/path/to/service-account.json:/creds/sa.json:ro",
"-e",
"GOOGLE_APPLICATION_CREDENTIALS=/creds/sa.json",
"ghcr.io/stufently/google-webtools-mcp:1.2.2"
]
}
}
}
Zed
Zed では MCP サーバーをコンテキストサーバーと呼びます。ファイルは settings.json です(zed: open settings)。
{
"context_servers": {
"google-webtools": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-v",
"/absolute/path/to/service-account.json:/creds/sa.json:ro",
"-e",
"GOOGLE_APPLICATION_CREDENTIALS=/creds/sa.json",
"ghcr.io/stufently/google-webtools-mcp:1.2.2"
],
"env": {}
}
}
}
Codex
codex mcp add google-webtools -- docker run -i --rm \
-v /absolute/path/to/service-account.json:/creds/sa.json:ro \
-e GOOGLE_APPLICATION_CREDENTIALS=/creds/sa.json \
ghcr.io/stufently/google-webtools-mcp:1.2.2
または、~/.codex/config.toml に手動で設定します。
[mcp_servers.google-webtools]
command = "docker"
args = [
"run", "-i", "--rm",
"-v", "/absolute/path/to/service-account.json:/creds/sa.json:ro",
"-e", "GOOGLE_APPLICATION_CREDENTIALS=/creds/sa.json",
"ghcr.io/stufently/google-webtools-mcp:1.2.2",
]
ファイルではなく文字列としてキーを渡す
ファイルのマウントが難しい環境(CI、リモートランナー)では、キー全体の JSON を
GOOGLE_SERVICE_ACCOUNT_KEY に渡し、Docker が環境変数から転送するようにします。
-v … と -e GOOGLE_APPLICATION_CREDENTIALS=… の引数を
-e GOOGLE_SERVICE_ACCOUNT_KEY に置き換え、シェルで変数を設定するか
(export GOOGLE_SERVICE_ACCOUNT_KEY="$(cat service-account.json)")、クライアントの
env ブロックで設定します。JSON または TOML の設定ファイル内では、キーは貼り付けた JSON ではなく、
エスケープされた単一の文字列でなければなりません。jq -c . service-account.json | jq -R .
を実行すると、貼り付けに使える形式で出力されます。これが、
MCP registry のエントリー
io.github.stufently/google-webtools-mcp で求められている形式でもあります。
ソースからビルドする
OAuth を使う場合、または Docker を使わずに実行する場合に必要です。Node.js 22 以降が必要です。
git clone https://github.com/stufently/google-webtools-mcp.git
cd google-webtools-mcp
npm install
npm run build
次に、コマンドとして node を指定し、唯一の引数として /path/to/google-webtools-mcp/dist/cli.js を指定します。認証情報は env に設定します。たとえば、次のとおりです。
claude mcp add google-webtools \
--env GSC_OAUTH_CLIENT_SECRETS_FILE=/path/to/client-secrets.json \
-- node /path/to/google-webtools-mcp/dist/cli.js
HTTP トランスポート
サーバーを起動する代わりに、ネットワーク経由でサーバーと通信するクライアント向けです。モードはステートレスです。各 POST /mcp は新しい MCP サーバーインスタンスで処理され、Mcp-Session-Id は発行されず、リクエストは並列で実行できます。Google の認証情報、キャッシュ、レートリミッターはリクエスト間で共有されます。
node dist/cli.js --http # listens on :3000
PORT=8080 node dist/cli.js --http # or pick a port
エンドポイント:
POST /mcp— MCP JSON-RPC(Streamable HTTP)。Accept: application/json, text/event-streamを送信します。GET /health— 稼働状態を返し、{"status":"ok","auth":"<method>"}を返します。GET/DELETE /mcpは 405 を返します。サーバーからクライアントへのストリームも、終了させるセッションもありません。
HTTP エンドポイントには認証がなく、すべてのインターフェースでリッスンします。一方、ツールは Google の認証情報(書き込みツールを含む)を使って動作します。localhost 上で使用するか、認証プロキシの背後に配置してください。
Docker
OAuth の同意コールバックはコンテナー内の 127.0.0.1 上でランダムなポートをリッスンするため、ホスト上のブラウザーから到達できず、Docker で初めて OAuth を実行するとタイムアウトします。サービスアカウントを使う(上記のインストールコマンドを参照)か、Docker の外で一度認証してから ~/.google-webtools-mcp/token.json をトークンボリュームにコピーしてください。
docker compose up --build
同梱の docker-compose.yml は ./credentials を読み取り専用でマウントし、OAuth トークンを名前付きボリュームに保存するため、コンテナーを再ビルドしても保持されます。Dockerfile は TypeScript 自体をコンパイルするため、ローカルの dist/ は不要です。これは GHCR に公開されるビルドと同じものです。
プロンプトの例
- 先週、サイトのクリック数が減ったのはなぜですか?
- 1 ページ目に近い順位にいるのに、クリックがほとんどないページはどれですか?
- これらの URL はインデックス登録されていますか?登録されていない URL にはどのような問題がありますか?
- すでに表示されている検索クエリを踏まえて、次に何を公開すべきですか?
- 検索トラフィックはスマートフォンとデスクトップでどのように分かれていますか?
その他のプロンプト
- example.com の GA4 プロパティをウェブストリーム付きで作成し、設定に使う測定 ID を教えてください。
- 同じ検索クエリで競合している自分のページはどれですか?
制限事項
- Search Console データの遅延。 検索アナリティクスのデータには通常 2~3 日の遅延があり、遅延期間も変動します。そのため、名前付きの期間(
last7d、last28dなど)は、昨日ではなく、API が完全なデータとして報告する最終日に基づいています。この日は、日付でグループ化したdataState: "all"クエリで API が返すfirst_incomplete_dateから読み取ります。これにより、最新の日は意図的に除外され、期間ごとの比較が、収集途中のデータによって歪められることを防ぎます。新しいデータを取得する場合は、get_search_analyticsに明示的なdataStateと日付を指定できます。 - 履歴の上限は 16 か月です。 これはサーバー側の制限ではなく、Search Console API の制限です。
- 行数のサンプリングと上限。 検索アナリティクスはリクエストごとに 25,000 行、GA4 レポートは 100,000 行に制限されています。GA4 で大きな日付範囲を指定すると、Google によってサンプリングされる場合があります。
batch_inspect_urlsが 1 回の呼び出しで処理できる URL は 50 件です。 また、URL Inspection API にはプロパティごとの独自の日次クォータがあります。- サイトの確認はワンクリックでは完了しません。 サーバーはトークンと手順を提示しますが、
gsc_verify_siteを呼び出す前に、ファイル、DNS レコード、またはメタタグをご自身で配置する必要があります。 - ドメインプロパティでは FILE または META による確認を利用できません。
DNS_TXTを使用してください。 - Google Ads、PageSpeed Insights、CrUX、Indexing API には対応していません。 このサーバーが対応するのは Search Console、GA4、サイト確認のみです。
- キャッシュはメモリ内にあり、プロセスごとに保持されます。 サーバーを再起動するとリセットされ、インスタンス間で共有されません。
- 書き込み操作は実際に反映されます。
add_property、delete_property、submit_sitemap、delete_sitemap、ga4_create_property、ga4_create_data_stream、gsc_verify_siteは実際の設定を変更し、ドライランモードはありません。Search Console の操作は、プロパティの再追加またはサイトマップの再送信で元に戻せますが、作成した GA4 プロパティやデータストリームをこのサーバーで削除することはできません。
開発
npm install
npm run build # bundle with tsup
npm run dev # rebuild on change
npm test # vitest
npm run lint # tsc --noEmit
Node.js 22 以降が必要です。
リリース
バージョンは package.json に記載されています。server.json(MCP レジストリエントリ)と、この README にあるすべての ghcr.io/stufently/google-webtools-mcp:<tag> は、そこから生成されるため、手動で編集しないでください。
npm version patch --no-git-tag-version # or minor / major
# Docker instead of a local Node:
# docker run --rm -u "$(id -u):$(id -g)" -v "$PWD":/app -w /app node:24-slim \
# npm version patch --no-git-tag-version
npm version は package.json とロックファイルのバージョンを更新し、その後 version ライフサイクルスクリプト(scripts/sync-version.mjs)が server.json とここに記載されているイメージタグを書き換えます(通常の npm version patch でもこれらがステージされるため、コマンド自身が作成するコミットとタグは揃います。ただし、以下のように CI が成功してからタグを作成してください)。CHANGELOG.md にセクションを追加してコミットし、main にプッシュして CI の完了を待ちます。CI の Versions agree ステップ(npm run check:version)は、3 つのバージョンが一致しない場合に失敗します。その後、タグを作成してプッシュします。
git tag v1.2.3 && git push origin v1.2.3
Publish ワークフローはイメージ(:<version> と :latest)をビルドしてプッシュし、server.json を MCP レジストリに公開します。package.json と異なるタグは拒否されます。同じタグで実行される MCPB ワークフローは、scripts/build-mcpb.sh を使用して Desktop Extension をビルドし、dist-mcpb/checksums.txt を作成し、各バンドルのビルド来歴を証明したうえで、.mcpb バンドルとチェックサムファイルを GitHub Release にアップロードします。このワークフローは、イメージやレジストリエントリをプッシュしません。
クレジット
このプロジェクトは、Magdoub による awesome-gsc-mcp のフォークとして始まりました。同プロジェクトからは、Search Console ツール、分析レイヤー(CTR ベンチマーク、トレンド検出、クエリ分類、機会スコアリング、推奨事項)、キャッシュ、レートリミッターが提供されました。GA4 Admin/Data およびサイト確認ツール、認証の再構成、その後の修正は、このプロジェクトで追加されました。オリジナルは MIT ライセンスで公開されています。
ライセンス
MIT — 詳細は LICENSE を参照してください。オリジナルプロジェクトの著作権表示は、このプロジェクトの表示と併記されています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。