mcpField
G
Google Search Console MCP by DigestSEO

Google Search Console MCP by DigestSEO

ローカル
digestseo.comデータ・分析61 日前に更新

Google Search Console MCP by DigestSEO について

Google Search Console MCP by DigestSEO は、MCP クライアントから自然検索の実績、インデックス状況、サイトマップを調べるセルフホスト可能なサービスです。Google OAuth を使い、権限と利用可能なツールを制限できる読み取り専用モードも備えています。

主な機能

  1. 01表示回数、クリック数、上位検索クエリの確認
  2. 02URL のインデックス状況の確認
  3. 03サイトマップ状態の確認
  4. 04Google OAuth 認証
  5. 05読み取り専用・読み書きモード

活用シーン

  1. 01サイトの自然検索実績を確認
  2. 02URL のインデックス問題を調査
  3. 03サイトマップの状態を点検
  4. 04読み取り専用権限で検索分析

MCP 対応

MCP サーバーは、Google Search Console の分析、URL 検査、サイトマップ、インデックス関連ツールをクライアントに公開します。読み書きモードでは 23 ツール、読み取り専用モードでは 16 ツールを提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"gsc-akzar1el": {
"command": "npx",
"args": [
"-y",
"@digestseo/mcp-gsc"
],
"env": {
"PORT": "<PORT>",
"GSC_ACCESS_MODE": "<GSC_ACCESS_MODE>",
"MCP_GSC_STATE_DIR": "<MCP_GSC_STATE_DIR>",
"GOOGLE_CLIENT_ID": "<GOOGLE_CLIENT_ID>",
"GOOGLE_CLIENT_SECRET": "<GOOGLE_CLIENT_SECRET>",
"TOKEN_ENCRYPTION_KEY": "<TOKEN_ENCRYPTION_KEY>"
}
}
}
}
起動コマンドnpx -y @digestseo/mcp-gsc
設定が必要な環境変数
PORTLocal HTTP port used by the npm launcher.
GSC_ACCESS_MODEGoogle/Search Console access mode for the local launcher. Use readonly for least privilege or readwrite for the six mutation tools.
MCP_GSC_STATE_DIROptional directory for persistent local Wrangler/KV/Durable Object/OAuth state. When omitted, the npm launcher uses its stable per-user default.
GOOGLE_CLIENT_IDGoogle OAuth client ID for the local Worker.
GOOGLE_CLIENT_SECRETシークレットGoogle OAuth client secret for the local Worker.
TOKEN_ENCRYPTION_KEYシークレットBase64-encoded 32-byte key used to encrypt stored Google refresh tokens.

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@digestseo/mcp-gsc0.4.40

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

mcp-gsc

License: MIT MCP MCP Registry CI npm version mcp-gsc MCP server

オープンソースの SEO ツールスイート DigestSEO の一部です。

セルフホスト用ランチャーは @digestseo/mcp-gsc として利用できます。

npx -y @digestseo/mcp-gsc

npm ランチャーは、127.0.0.1(デフォルトのポートは 8080)でループバック専用の Streamable HTTP Worker を起動します。これは stdio MCP プロセスではありません。ランチャーはインストール済みパッケージから同梱の Worker 設定を解決するため、どのディレクトリからでも npx コマンドを実行できます。パッケージを起動するクライアントは、SETUP.md に記載された Google OAuth とトークン暗号化の環境変数を設定した後、http://127.0.0.1:8080/mcp に接続してください。GOOGLE_CLIENT_ID、GOOGLE_CLIENT_SECRET、TOKEN_ENCRYPTION_KEY のいずれかが未設定または空の場合、ランチャーは Wrangler を起動する前に終了します。また、空でない TOKEN_ENCRYPTION_KEY が、有効な Base64 であり、デコード後に正確に 32 バイトになる場合を除き、これも拒否します。エラーには無効または不足している設定だけが示され、シークレット値は表示されないため、OAuth セッションが不完全な状態で開始されることはありません。シークレット値は子プロセスの環境変数に保持され、Wrangler は宣言済みのローカルシークレットを通じて読み込みます。値が Wrangler の --var コマンドライン引数にコピーされることはありません。最初の OAuth サインインの前に、Google Cloud でコールバック URL http://127.0.0.1:8080/google/callback を正確に許可してください(または、起動時に使用するものと同じカスタム PORT を使用してください)。ランチャーは起動時に両方の URL を表示します。

Docker/Glama のネットワークバインド。 通常の npx ランチャーは、デフォルトでループバック専用(MCP_GSC_BIND_IP=127.0.0.1)のままです。Docker のポートフォワーディングでは、コンテナのループバックインターフェースだけにバインドされたサービスに接続できないため、Docker イメージ内では MCP_GSC_BIND_IP=0.0.0.0 を明示的に設定しています。お使いのコンピューターで Docker のポートを公開する場合は、ホストからのアクセスを制限するため、-p 127.0.0.1:8080:8080 を使用してください。ホストの外部に公開する場合は、適切な HTTPS/OAuth のデプロイ設定と、Google で許可されたリダイレクト URI を必ず使用してください。MCP_GSC_BIND_IP に指定できるのは 127.0.0.1 または 0.0.0.0 のみです。通常のローカル npm 利用では、すべてのインターフェースへのバインドを使用しないでください。

Google セッションの暗号化データを含むローカルの KV と Durable Object の状態は、デフォルトでバージョン管理された npm キャッシュ内ではなく、~/.mcp-gsc/state に保存されます。これにより、パッケージのアップグレード後や通常の npm キャッシュのクリーンアップ後も、ローカル接続を利用できます。別のディレクトリを使用するには MCP_GSC_STATE_DIR を設定してください。既存の状態を再利用する場合は、保存済みのリフレッシュトークンがそのキーで暗号化されているため、同じ TOKEN_ENCRYPTION_KEY を使用してください。ランチャーは起動時に実際に使用する状態ディレクトリを表示します。この安定したパスを使用する最初のリリースでは、以前のランチャーリリースがローカル状態を npm パッケージキャッシュ内に保存していたため、Google への再接続が一度必要になる場合があります。 ローカルランチャーのデフォルトは GSC_ACCESS_MODE=readwrite です。最小権限で分析・レポート作成のみを行う場合は、npx の実行前に環境で GSC_ACCESS_MODE=readonly を設定してください。ランチャーはその値をローカル Worker に渡すため、OAuth リクエストでは読み取り専用の Search Console スコープのみが要求され、6 つの変更ツールは登録されません。

Google OAuth と Cloudflare のデプロイ設定については、SETUP.md を参照してください。

ローカルランチャーに接続する

現在検証済みのクイック接続手順では、SETUP.md に記載されている Google OAuth とトークン暗号化の環境変数を設定してから、最初に npm ランチャーを起動します。

npx -y @digestseo/mcp-gsc

次に、MCP クライアントをランチャーのループバックエンドポイントに接続します。

http://127.0.0.1:8080/mcp

セルフホスト可能な Cloudflare Worker のデプロイでは、引き続き https://<your-worker>.workers.dev/mcp を使用します。デプロイ済みのツール仕様が公開済みパッケージより古いため、このリポジトリでは現在、所有者がホストするリモートサーバーをクイック接続手順として案内していません。

Claude Code

claude mcp add --transport http gsc http://127.0.0.1:8080/mcp

OpenAI Codex CLI / IDE

codex mcp add gsc --url http://127.0.0.1:8080/mcp

Codex CLI と Codex IDE 拡張機能は MCP の設定を共有するため、サーバーを一度登録すれば、両方のクライアントで同じローカル接続を利用できます。接続を使用する前に npm ランチャーを起動してください。認証が必要な場合、Codex はサーバーの OAuth フローを開始します。

Cursor

Cursor に追加

このリポジトリを Cursor プラグインとしてインストールすると、Cursor は MCP ツールをエビデンスに基づくワークフローに組み合わせる、同梱の 3 つの Agent Skills も自動検出します。gsc-weekly-review、gsc-indexing-triage、gsc-search-opportunities がそのスキルです。上の Cursor に追加 ボタンでインストールされるのは MCP 接続のみです。同梱のスキルは、このリポジトリの Cursor プラグインパッケージに含まれています。

上記のボタンとプラグインの MCP 設定は、npm ランチャーと同じマシンで Cursor を実行する場合に使用します。Cursor Cloud Agents は分離されたクラウド VM で実行されるため、お使いのコンピューター上の 127.0.0.1 には接続できません。 Cloud Agents を使用する場合は、外部からアクセス可能な HTTPS Worker を独自にデプロイし、cursor.com/agents の MCP コントロールからその /mcp URL を追加してください。Cursor は HTTP MCP サーバーと OAuth に対応しています。Cloud Agent ではループバック URL を再利用しないでください。

GitHub Copilot CLI

copilot plugin marketplace add AKzar1el/mcp-gsc
copilot plugin install mcp-gsc@digestseo

マーケットプレイス経由の方法を使うと、Copilot のマーケットプレイスワークフローからプラグインを検出および更新できるようになります。copilot plugin install AKzar1el/mcp-gsc によるリポジトリからの直接インストールも引き続きサポートされています。Copilot プラグインには、同じ 3 つの Agent Skills とローカルのループバック MCP 設定が同梱されています。プラグインの MCP サーバーを使用する前に npm ランチャーを起動してください。プラグインが mcp-gsc を起動またはデプロイすることはありません。

Gemini CLI

gemini extensions install https://github.com/AKzar1el/mcp-gsc

Gemini CLI 拡張機能には、検証済みのローカルループバック MCP 設定と、同じ 3 つの Agent Skills(gsc-weekly-review、gsc-indexing-triage、gsc-search-opportunities)が同梱されています。拡張機能を使用する前に npm ランチャーを起動してください。拡張機能が mcp-gsc を起動またはデプロイすることはありません。

Kiro

Kiro に追加

どちらかのインストールボタンまたは Copilot プラグインを使用する前に、npm ランチャーを起動してください。初回使用時に Google OAuth フローを完了してください。 ChatGPT — ChatGPT はこのループバック 127.0.0.1 エンドポイントに直接接続できません。プライベート/ローカルで使用するには、OpenAI の Secure MCP Tunnel を作成し、ランチャーと同じマシンで tunnel-client を実行して、http://127.0.0.1:8080/mcp に接続できるようにします。ChatGPT アプリの作成時には、Tunnel 接続を選択し、そのトンネルを指定してください。トンネルのセットアップには、OpenAI の tunnel_id と実行時 API キーが必要です。詳しくは、OpenAI の Secure MCP Tunnel guide をご覧ください。このトンネルを使うと MCP サーバーを非公開に保てます。プライベート/開発者モードでの接続を目的としており、公開プラグインの配布には適していません。

または、独自のリモート Cloudflare Worker をデプロイし、その HTTPS /mcp URL を開発者モードでカスタム MCP アプリとして追加します。詳しくは、以下の AI クライアントで接続する をご覧ください。

Google Search Console 用のセルフホスト可能な Model Context Protocol(MCP)サーバーです。Claude.ai、Cursor、ChatGPT、または MCP 対応クライアントに接続すると、インプレッション数、クリック数、上位の検索クエリ、インデックス状況、サイトマップの健全性など、サイトのオーガニック検索のパフォーマンスについて、Google アカウントから直接 AI アシスタントに質問できます。

Cloudflare Workers 上で動作し、Google OAuth によるオンボーディング機能を備えています。クライアントでサーバーに接続し、リクエスト元の MCP クライアントと権限を示す mcp-gsc の同意ページを確認した後、Google にサインインして、要求された Google Search Console の権限を付与します。API キーをコピーして管理したり、サービスアカウントの JSON を管理したりする必要はありません。

ツール

デフォルト(GSC_ACCESS_MODE=readwrite)では、このサーバーは 23 個のツールを公開します。読み取り専用の分析・レポートツールには、MCP の readOnlyHint が設定されています。以下の書き込みツールを使うと、Search Console のプロパティ、サイトマップ、またはインデックス登録の状態を変更できます。GSC_ACCESS_MODE=readonly を設定すると、Search Console の読み取り専用スコープのみを要求し、書き込みアクセス権も個別の Indexing API スコープも必要としない 16 個のツールを公開します。

ツールアクセス機能
server.capabilities読み取りこのサーバーが公開するすべてのツールを一覧表示し、ローカルの Google 認証情報の状態を報告します。connected は、保存済みの更新用認証情報が存在することを意味します。レスポンスには auth_status_basis と provider_auth_live_verified: false も含まれます。これは、この検出呼び出しでは Google への接続を確認しないためです。認証情報の有効期限が切れていたり、取り消されていたりすると、後続の Google ツール呼び出しで再接続が必要になる場合があります。引数は不要です。
sites.list読み取り接続中の Google アカウントがアクセスできる Search Console プロパティ(siteUrl、permissionLevel)を一覧表示します。
sites.get読み取り指定した Search Console プロパティを取得し、そのプロパティに対する接続中アカウントの権限レベルを返します。
analytics.query読み取り指定した期間の表示回数、クリック数、CTR、平均掲載順位を、ディメンション、フィルター、安全なページネーション、選択可能な検索タイプとともに取得します。正確なサイト全体の合計値を取得するには、dimensions: [] を指定します。Google の集計行では keys が省略される場合があります。Search Analytics ではすべてのデータ行が保証されず、上位の行のみが返される場合があるため、ローカルでページネーションを最後まで行っても、プロバイダーのデータセットをすべて取得できた証明にはなりません。data_state: "all" では新しい暫定データが含まれる場合がありますが、final では確定済みデータのみが返されます。レスポンスには data_state と preliminary_data_possible が含まれ、日付/時間単位のグループ化では、返された場合に Google の不完全なデータ範囲に関するメタデータが保持されます。検索での表示方法を確認するには、2 段階のワークフローを使用します。まず searchAppearance のみでグループ化して、そのプロパティについて Google が返す正確な値を確認し、次にページ/クエリ/国/デバイス/日付/時間でグループ化する別のクエリで、返された値のいずれか 1 つに絞り込みます。search_type: "discover" または "googleNews" の場合、position_supported は false です。これらのレポートではクリック数、表示回数、CTR は取得できますが、平均掲載順位は取得できないため、返される行で position が省略される場合があり、クエリのグループ化/フィルタリングも利用できません。Search Console 専用の生成 AI パフォーマンスレポートは、現在ドキュメント化されている Search Analytics API では専用の検索タイプまたはフィルターセレクターとして公開されていません。そのため、generative_ai_report_isolatable は false です。Search Console の新しいウェブ向けマルチモーダル UI フィルターも、ドキュメント化された Search Analytics API のセレクターとして公開されていません。そのため、multimodal_report_isolatable は false です。
insights.page_queries / insights.query_pages読み取り指定したページから Search Console のクエリを確認するか、指定したクエリから Google に表示されたページを確認します。row_limit/start_row によるページネーションに対応しています。これらのクエリ中心のヘルパーは、ウェブ、画像、動画、検索結果のニュースタブに対応します。クエリデータが公開されていない Discover と Google ニュースのレポートは対象外です。
urls.inspect読み取りGoogle のインデックスに現在登録されているページのバージョンについて、Google の URL 検査レポートを取得します。ライブ URL テストではありません。モバイル ユーザビリティの出力は非推奨です。
urls.inspect_many読み取り1 回の呼び出しで、同時実行数を 3 に制限し、入力順の結果を保ちながら、最大 10 件の URL について Google のインデックス登録済みバージョンを検査します。各 URL は引き続き Google URL Inspection リクエストを 1 件消費し、サーバー共有の検査安全枠を 1 単位消費します。ライブ URL テストは実行しません。
sitemaps.list / sitemaps.get読み取り送信済みのサイトマップを一覧表示するか、指定したサイトマップの詳細を取得します。lastSubmitted はサイトマップを Search Console に送信した日時、lastDownloaded は Google がサイトマップを最後にダウンロードした日時です。どちらの値も、サイトマップファイルの変更/デプロイ日時や、ページのクロール/インデックス登録日時を示すものではありません。
insights.quick_wins / insights.cannibalization / insights.content_decay読み取り平均掲載順位に基づく機会の行、クエリ/ページの重複、根拠に基づいて順位付けしたクリック数の減少を提示します。クイックウィン候補は、Search Console の集計平均掲載順位に基づいて選択された、観測済みのクエリ/ページ行です。安定した現在の順位を示す証拠ではなく、CTR は適格性の判定条件ではなく、判断材料として扱われます。カニバリゼーション候補の合計/比率は、クエリ単位のプロパティ全体の合計ではなく、観測済みのクエリ/ページ行を対象とします。コンテンツ減衰の結果は、両期間で返されたページのみを比較し、片方の期間だけで行が存在しないことをトラフィックがゼロであるとみなすことはありません。
indexing.list_pages / analytics.compare読み取りSearch Console の表示回数があるページを分析し、2 つの期間を比較します。必要に応じて、両期間に同じ検索タイプおよびクエリ/ページ/国/デバイス/検索での表示方法のフィルターを適用できます。analytics.compare は、両期間のレスポンスに含まれるディメンションキーのみを比較します。網羅性が保証されない Search Analytics のレスポンスで片方に存在しないキーを、指標がゼロだとはみなしません。Google の dataState 省略時の動作を維持するため、確定済みの Search Analytics 行(data_state=final)がデフォルトで使用されます。最近の暫定データを含む可能性がある行が必要な場合は、明示的に all を渡してください。比較仕様に平均掲載順位が含まれるため、Discover と Google ニュースは対象外です。indexing.list_pages が扱うのはパフォーマンスデータであり、インデックス登録状況ではありません。URL が見つからなくても、インデックスに登録されている可能性があります。URL 単位のインデックス状況を確認するには、urls.inspect/urls.inspect_many を使用してください。
reports.weekly_digest読み取り変動した項目、上位ページ、推奨アクションを含む、平易な表現の 7 日間のパフォーマンスレポートを生成します。クエリの変動は、週ごとの Search Analytics 結果セットの両方で返された行のみを比較します。Google はすべてのデータ行を保証していないため、上限のあるレスポンスで片方の週にクエリが見つからない場合でも、ゼロとはみなしません。
sites.add / sites.delete書き込み接続中のアカウントの Search Console サイトセットにプロパティを追加または削除します。sites.add は、所有権の確認が別途 Google Site Verification/Search Console のワークフローで行われるため、ownership_verification_performed: false を返します。sites.delete はそのアカウントの Search Console サイトセットからプロパティを削除します。ウェブサイト自体は削除しません。
sitemaps.submit / sitemaps.delete書き込みサイトマップを送信または削除します。
indexing.status読み取り以前に送信した URL について、Google の Indexing API の最新の成功した URL_UPDATED/URL_DELETED 通知の受領情報を読み取ります。これは通知のメタデータのみであり、インデックス登録状況、クロール状況、インデックス登録の完了、削除の完了を示すものではありません。Google のメタデータエンドポイントでは Indexing API の OAuth スコープが使われるため、GSC_ACCESS_MODE=readwrite が必要です。
indexing.request書き込みGoogle の Indexing API を使ってインデックス登録をリクエストします。現在、Google はこの API の利用を、JobPosting 構造化データを含むページ、または VideoObject 内に BroadcastEvent を含むライブ配信ページに制限しています。一般的なウェブページの送信には利用できません。Google が公表しているデフォルトの上限は、更新と削除で共有される、プロジェクトあたり 1 日 200 件の公開リクエストです。対象コンテンツの種類、API 認証、クォータの上限、スパムポリシーは引き続き適用されます。このクォータは、他の種類のページを送信したり、Google の上限を超えたりする許可を意味しません。
indexing.remove書き込みIndexing API の対象として以前に適格だったページについて、URL_DELETED 通知をリクエストします。削除する前に、URL がすでに HTTP 404/410 を返すか、robots の noindex メタディレクティブを公開している必要があります。Google の受領情報は削除の完了を証明するものではありません。インデックス登録状態の根拠を確認するには、URL Inspection を使用してください。
Search Analytics のカレンダー日付(start_date、end_date、比較期間の日付)には、呼び出し元のローカルタイムゾーンや UTC ではなく、Google の太平洋時間のカレンダー(America/Los_Angeles、夏時間に応じて UTC-8/UTC-7)が使用されます。これは、サーバーが生成する Search Analytics の日付範囲のデフォルト値にも適用されます。

プラットフォームプロパティ。 Search Console の UI では、Instagram、TikTok、X、YouTube などのソーシャル/動画アカウントのプラットフォームプロパティがサポートされるようになりました。Google の現行 Search Console API ドキュメントでは、引き続き siteUrl は URL プレフィックス形式と sc-domain: ウェブサイトプロパティ形式で定義されており、プラットフォームプロパティの API 識別子の仕様は公開されていません。そのため、sites.list は Google から返されるすべての識別子をそのまま保持し、ドキュメントに記載された API の文法に一致するかどうかを示します。他のツールは、識別子を独自に作り出すのではなく、ドキュメントに記載されていない形式を意図的に拒否します。Google が API のサポートを文書化するまでは、プラットフォームプロパティには Search Console の UI/エクスポートを使用してください。

読み書きモードでは、Google Search Console の読み書きスコープと Indexing API のスコープをリクエストします。読み取り専用モードでは、https://www.googleapis.com/auth/webmasters.readonly(および openid と email)のみをリクエストし、6 つの書き込みツールと読み取り専用の indexing.status 照会ツールを登録しません。この照会にも、Google の別個の Indexing API スコープが必要だからです。既存のデプロイでこれまでの動作を維持できるよう、読み書きモードが引き続きデフォルトです。ユーザーの接続前にモードを選択する方法については、SETUP.md を参照してください。

大規模な分析レスポンスは、生成後にクライアントの構造化コンテンツ制限によって破棄されるのではなく、MCP 境界でサイズが制限されます。該当するリスト形式のツールでは start_row/next_start_row を公開します。ランキング形式の分析ツールでは limit、start_row と、has_more、truncated、byte_limit_reached を含む result_page メタデータを公開します。1 回のレスポンスですべて取得できると決めつけず、has_more が true の間はページングを続けてください。

Indexing API の利用資格とクォータ。 Google の Indexing API は、一般用途のページ送信ツールではありません。本稿執筆時点で、Google の公式ドキュメントでは、対象を 2 種類のコンテンツに限定しています。すなわち、JobPosting 構造化データを含むページと、VideoObject 内に BroadcastEvent 構造化データを含むライブ配信ページです。indexing.request の前に、サーバーは対象 URL を取得し、静的な JSON-LD、Microdata、RDFa マークアップに、この 2 種類のいずれかが含まれているかを確認します。どちらも存在しない場合、またはページを取得できない場合は、Indexing API を呼び出す代わりに、その URL が対象外である理由を説明するエラーを返します。クライアント側 JavaScript の実行後にのみ挿入される構造化データは、この制限付きの事前チェックでは確認できないため、安全側に倒して処理を拒否します。indexing.remove の前には、代わりに Google が求める削除の前提条件を確認します。URL がすでに HTTP 404/410 を返しているか、robots の noindex メタディレクティブを公開している必要があります。更新通知と削除通知は、同じ公開クォータを共有します。Google の現行ドキュメントには、プロジェクトあたり 1 日 200 件の公開リクエストがデフォルト値として記載されています。2026 年 10 月 16 日の更新で、古くなったクォータ申請フォームは削除されましたが、公開済みのクォータを超えることや、サポート対象外のコンテンツを送信することが許可されたわけではありません。Google Cloud Console で、プロジェクトの API アクセス権と現在のクォータを確認してください。また、Google はすべての送信をスパム検出の対象としており、複数アカウントなどを利用してクォータを超過しようとしたり、その他の方法で不正利用したりすると、アクセスが取り消される可能性があると警告しています。通知が成功したという応答は、Google が受信したことを確認するだけであり、インデックス登録または削除の完了を保証するものではありません。

質問できること

接続すると、アシスタントに次のような質問ができます。

  • 「過去28日間で、クリック数が多い上位20件のクエリは何ですか?」
  • 「今月と先月の example.com の表示回数を比較してください。表示回数が減ったページはどれですか?」
  • 「Google にインデックス登録された https://example.com/pricing のバージョンでは、インデックス状況と最終クロール日時はどのように表示されていますか?」
  • 「表示回数が多いクエリ/ページの行のうち、平均掲載順位が5~15のものはどれですか?最適化の機会を示してください。」
  • 「今日を終了日とする sc-domain:example.com の週間ダイジェストを作成してください。」
  • 「サイトマップにエラーや警告はありますか?」
  • 「指定するブランドの正規表現を使って、クリック数をブランドと非ブランドに概算で分類してください。」
  • 「Google Discover と通常のウェブ検索で、サイトのパフォーマンスはどう違いますか?」

クエリの正規表現は、手動での概算にすぎません。Search Console の標準のブランド/非ブランドフィルターでは、Google 独自の AI 支援分類(言語のバリエーション、タイプミス、関連する製品/サービスを含む)が使われます。この標準分類は、Search Analytics API のフィルターとして公開されていません。

Search Console には、検索と Discover 向けの生成 AI パフォーマンスレポートも用意されています。現在のドキュメントに記載されている Search Analytics API では、生成 AI 専用の検索タイプやフィルター選択機能は公開されていないため、この MCP ではそれらを推測しません。AI Overviews と AI Mode は、引き続き全体のウェブ検索パフォーマンスデータに含まれます。Google が API アクセスを文書化するまでは、専用の生成 AI レポートに Search Console の UI を使用してください。

2026年9月24日時点で、Search Console の UI には、Lens、Circle to Search、画像のアップロード、Chrome の画像検索などの検索に対するウェブのマルチモーダルパフォーマンスフィルターもあります。現在の Search Analytics API と Discovery ドキュメントで公開されている検索タイプは、引き続き web、image、video、news、discover、googleNews のみです。そのため、この MCP では search_type: "multimodal" を作成したり、searchAppearance の値を推測したりしません。Google が API アクセスを文書化するまでは、マルチモーダル検索に絞ったレポートには Search Console の UI を使用してください。

AI クライアントに接続する

サーバーをデプロイしたら(SETUP.md を参照)、Worker の /mcp URL をクライアントに貼り付けて接続します。

https://<your-worker>.workers.dev/mcp
  • Claude.ai / Claude Desktop — Customize → Connectors に移動し、+ → Add custom connector をクリックして名前を入力し、/mcp URL を貼り付けます。任意の詳細設定である OAuth Client ID/Secret の欄は空欄のままにしてください。Team/Enterprise では、まず Owner または Primary Owner が Organization settings → Connectors からカスタム Web コネクターを追加する必要があります。その後、メンバーは Customize → Connectors から接続します。初回接続時に、Claude は Google のサインインフローを開きます。
  • Cursor — 同じ /mcp URL を指定するリモートの Streamable HTTP MCP サーバーを追加します。Cursor はリモート HTTP MCP サーバーの OAuth に対応しています。上の「Add to Cursor」ボタンは、代わりにローカル npm ランチャーのループバックエンドポイントを指定します。
  • ChatGPT — Developer mode を有効にしてから、Settings → Apps → Create でカスタム MCP app を作成します(管理者/オーナーは Workspace settings → Apps → Create も使用できます)。/mcp エンドポイントを指定し、該当する認証オプションを選択して Scan Tools をクリックし、OAuth を完了してから app を作成します。書き込み/変更ツールを含む完全な MCP は、現在 Business と Enterprise/Edu で利用できます。Pro のカスタム MCP アクセスは読み取り/取得のみのため、その場合は GSC_ACCESS_MODE=readonly を使用してください。

/mcp エンドポイントはどのクライアントでも同じですが、ホストごとに設定方法と権限の付与手順が異なります。

セットアップ

セルフホストするには、独自の Google OAuth 認証情報と Cloudflare アカウントが必要です。手順をすべてコピーして使える詳しいガイドは SETUP.md にあります。Google の OAuth 検証と、アプリが未検証の間は更新トークンの有効期間が7日間に制限される点に関する重要な注意事項も記載されています。

概要:

git clone https://github.com/AKzar1el/mcp-gsc.git
cd mcp-gsc
npm install
cp wrangler.example.jsonc wrangler.jsonc       # then paste in your KV ids
# set GOOGLE_CLIENT_ID / GOOGLE_CLIENT_SECRET / TOKEN_ENCRYPTION_KEY as secrets
# choose GSC_ACCESS_MODE=readonly in wrangler.jsonc for a read-only deployment
npm run deploy

各手順の詳細は SETUP.md を参照してください。

開発

npm install
npm test              # typecheck + offline unit tests (what CI runs)
npm run dev           # wrangler dev (local)
npm run test:smoke    # structural smoke tests against a deployment

貢献を歓迎します。詳しくは CONTRIBUTING.md をご覧ください。

ライセンス

MIT © 2026 DigestSEO.


DigestSEOを手がける開発者であるTomi Šeregiが構築・保守しています。DigestSEOはオープンソースのSEOツールと検索可視性ソフトウェアを提供しています。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。