GSC Wizard MCPサーバーは、OAuthで保護されたリモートのModel Context Protocolリソースです。Google Search Console、Bing Webmaster、GA4、Merchant CenterのデータをClaudeに提供します。このページは技術リファレンスで、トランスポート、認証の流れ、ツールの一覧、レスポンスの仕様、読み取りのルーティング、制限事項を扱います。
クリック単位のセットアップ手順をお探しの場合は、Claudeの接続ガイドをご覧ください。すべてのクライアントに共通する製品の概要は、Google Search Console MCPをご覧ください。
https://mcp.gscwizard.com/mcp
Streamable HTTP
OAuth 2.1 (DCR + PKCE) or Bearer key
128 · 96 read / 32 write
このサーバーは、Streamable HTTP上でMCPを話します。SSE専用のフォールバック用エンドポイントはありません。非推奨のHTTP+SSEの組み合わせを前提にしているクライアントは、リクエストごとにストリーミングをネゴシエートする単一の/mcpパスに向けてください。
| パス | 認証 | 用途 |
|---|---|---|
POST /mcp | 必須 | Streamable HTTP上のJSON-RPC |
/v1/* | 必須 | MCP以外の呼び出し元向けのREST |
GET /health | 公開 | { ok, sessions }を返します |
GET /, /docs | 公開 | 表示用のツールカタログ |
/.well-known/oauth-protected-resource | 公開 | RFC 9728のリソースメタデータ |
セッションの継続は、Mcp-Session-Idレスポンスヘッダーで行われ、クライアントは以降のリクエストでそれをそのまま返します。各セッションは、開いたuser_idにサーバー側で固定されます。別の認証情報で同じセッションIDを提示すると、暗黙に付け替えられることなく拒否されるため、セッションIDが漏れただけではアカウントを読み取れません。
MCP stdio、MCP Streamable HTTP、/v1のREST APIは、いずれも同じrunTool()パイプラインを通して実行されます。認可、引数の検証、プロパティ単位の権限の適用、サブスクリプションのチェック、レート制限、監査証跡は、この1か所で適用されるため、トランスポート間でずれることがありません。レジストリに追加したツールは、3つすべてから呼び出せ、同じルールで管理されます。
2つの方式があり、クライアントの機能に応じて使い分けます。ClaudeのConnectors UIはOAuth 2.1を使い、設定ファイル型やヘッドレスのクライアントは固定のAPIキーを提示します。
MCPサーバーがリソースサーバーで、tool.gscwizard.comのアプリが認可サーバーです。Claudeは、ユーザーの操作なしで次の流れをたどります。
リソースに対する認証なしのGETで、認可サーバーとスコープが示されます。
Claudeは発行元から/.well-known/oauth-authorization-serverを取得し、各エンドポイントの場所を確認します。
Claudeは自分自身を登録し、専用のクライアントIDを受け取ります。コネクタの追加時にクライアントIDとシークレットの欄を空欄にするのはこのためです。入力すると登録が先取りされ、フローが壊れます。
S256チャレンジを使うauthorization_codeグラントで、更新も可能です。Googleのサインインと同意は認可サーバー上で行われ、Claude側では行われません。
リソースのメタデータ
GET https://mcp.gscwizard.com/.well-known/oauth-protected-resource
{
"resource": "https://mcp.gscwizard.com/mcp",
"authorization_servers": ["https://tool.gscwizard.com"],
"scopes_supported": ["mcp:read", "mcp:write"],
"bearer_methods_supported": ["header"]
}認可サーバーのメタデータ
GET https://tool.gscwizard.com/.well-known/oauth-authorization-server
{
"issuer": "https://tool.gscwizard.com",
"authorization_endpoint": "https://tool.gscwizard.com/oauth/authorize",
"token_endpoint": "https://tool.gscwizard.com/api/oauth/token",
"registration_endpoint": "https://tool.gscwizard.com/api/oauth/register",
"revocation_endpoint": "https://tool.gscwizard.com/api/oauth/revoke",
"scopes_supported": ["mcp:read", "mcp:write"],
"response_types_supported": ["code"],
"grant_types_supported": ["authorization_code", "refresh_token"],
"code_challenge_methods_supported": ["S256"],
"token_endpoint_auth_methods_supported": [
"none", "client_secret_post", "client_secret_basic"
]
}トークン発行前の2つのゲート。認可エンドポイントでは、有効なサブスクリプションと、接続済みのSearch Consoleプロパティが1つ以上あることが必要です。どちらかが欠けているアカウントは、以降のツール呼び出しがすべて拒否されるトークンを渡される代わりに、先にそれらを完了するよう案内されます。
キーの接頭辞はgscw_live_で、アカウント → APIキーで作成し、Authorization: Bearerとして提示します。保存されるのはSHA-256ハッシュのみで、平文は作成時に一度だけ表示され、後から復元することはできません。ローテーションは、新しいキーを発行して古いキーを失効させることで行います。
各キーには、作成時に固定されるスコープがあります。読み取りスコープのキーは、変更系のツールを呼び出せません。このチェックはハンドラーの前にパイプラインで実行されるため、読み取り専用はモデルが言いくるめられかねない指示ではなく、認証情報の構造上の性質です。
Claudeの4つの利用環境に対して、3種類の接続方法があります。
設定 → コネクタ → カスタムコネクタを追加。URLを入力し、OAuthの2つの欄は空欄のままにします。
URL: https://mcp.gscwizard.com/mcp
OAuth Client ID: (leave blank)
OAuth Secret: (leave blank)1つのコマンドで、キーのヘッダーつきでリモートサーバーを登録します。セッション内で/mcpを実行して確認してください。
claude mcp add --transport http gsc-wizard \
https://mcp.gscwizard.com/mcp \
--header "Authorization: Bearer gscw_live_..."デスクトップの設定ファイルはローカルのstdioサーバーしか起動しないため、"type": "http"のエントリは検証で失敗します。OAuthではなく固定のキーを使いたい場合は、mcp-remote(Node.jsが必要)でリモートサーバーを橋渡ししてください。
{
"mcpServers": {
"gsc-wizard": {
"command": "npx",
"args": [
"-y", "mcp-remote",
"https://mcp.gscwizard.com/mcp",
"--header", "Authorization: Bearer gscw_live_..."
]
}
}
}エージェントのオプションでHTTPのMCPサーバーとして宣言します。JSON-RPCのハンドシェイクはSDKが処理します。
mcpServers: {
"gsc-wizard": {
type: "http",
url: "https://mcp.gscwizard.com/mcp",
headers: { Authorization: `Bearer ${process.env.GSCW_API_KEY}` }
}
}無人で動かす用途には、読み取りスコープのキーを使ってください。エージェントが少数のツールしか必要としない場合は、クライアント側でも許可するツールのリストを絞ります。表面が小さいほど1ターンあたりのコストが下がり、取得したページ内容に紛れ込んだプロンプトインジェクションが届く範囲も狭くなります。
登録されているツールは128個で、読み取り96個と変更32個です。すべてのアカウントで利用できます。どのツールもMCPのアノテーション(readOnlyHint、destructiveHint、openWorldHint、title)を備えているため、クライアントはツール名を決め打ちせずに、表示や制御ができます。
| グループ | 代表的なツール | スコープ |
|---|---|---|
| 検索アナリティクス | query_search_analytics, query_top_queries, query_top_pages, query_countries, query_devices | 読み取り |
| 分析 | find_decaying_content, analyze_cannibalization, get_ranking_changes, score_opportunities, analyze_ctr_curve | 読み取り |
| 検知 | detect_anomalies, detect_change_points, forecast_traffic, get_decay_overview | 読み取り |
| インデックス登録 | inspect_url, bulk_inspect_urls, get_indexing_tracker, list_sitemaps | 読み取り |
| その他のデータソース | Bing Webmaster、GA4、Yandex、Merchant Center、Core Web Vitals | 読み取り |
| 変更 | submit_sitemap, submit_indexnow_urls, create_topic_cluster, create_annotation, add_site | 書き込み |
分析はサーバー側で実行されます。劣化、カニバリゼーション、CTR曲線のモデリング、変化点の検知、機会のスコアリングはサーバーで計算され、結果として返されます。モデルが受け取るのは結論とその根拠となる行であり、統計的に推論させるための生データではありません。そのため、1ターンあたりのコストが下がり、計算のずれも起きません。
ツールごとの引数スキーマとペイロード例を含む完全なカタログは、mcp.gscwizard.comで公開されています。レジストリとの対応がテストされているため、実際に登録されているツールから静かに遅れることはありません。
行数の上限そのものがリスクなのではなく、上限が明示されないことがリスクです。ちょうどlimit件の行を渡されたモデルは、完全な回答と途中で切れた回答を区別できず、自信満々に「このサイトのクエリは100件です」と報告してしまいます。そのため、行数に上限のあるツールは、プローブ用に1行多く取得し、最大でもlimit件を返したうえで、対象期間、続きがあるかどうか、次に呼ぶべき正確な呼び出しを示すブロックを添付します。
"pagination": {
"limit": 100,
"offset": 0,
"returned": 100,
"hasMore": true,
"note": "Showing rows 1-100. Call again with offset: 100 for the next page."
}query_search_analyticsのデフォルトは、当初の1,000行ではなく100行です。1,000行では1回の呼び出しで約58kトークン、つまりツール一覧全体より多くのコンテキストを消費していました。ランキング型の分析ツールは共有の分析コア内で上限をかけており、ページネーションのブロックは付きません。
呼び出し側が今日の日付を知っていなければならないツールはありません。期間を省略すると、Search Consoleのレポートに約3日の遅延があることを考慮して、直近28日間の確定した日が使われ、比較の基準期間は直前の同じ長さの期間になります。また、日付パーサーは、LLMクライアントがよく出力するnull、"null"、""を検証エラーにせず「デフォルトを使う」として扱います。これにより、リトライのループという問題が丸ごとなくなります。
| フィールド | 意味 |
|---|---|
dataSource | clickhouseかapiのいずれか。この読み取りがどちらの経路で処理されたかを示します |
settledThrough | データが揃っている最後の日付 |
dataMaturity | 最初の未確定の日付、基準となるタイムゾーン、使用したプローブ |
note | モデルがそのまま伝えるための、データの鮮度に関する注意書き(文章) |
これらは、回答の出典を示せるようにするためのものです。Claudeが先週トラフィックが落ちたと伝えるとき、本当の減少とレポートの遅延を見分ける手がかりになるのがsettledThroughです。レポートの遅延は、Search Consoleの自動分析で最もよくある誤警報です。
大半の読み取りは、Search Console APIを呼びません。過去のパフォーマンスデータはClickHouseのウェアハウスに取り込まれ、対象となる読み取りはそこから処理されます。APIの16か月という範囲より長い履歴を扱え、クエリの種類が多いプロパティでもAPI側のサンプリングがありません。
検索アナリティクス系の8つのツール(query_search_analytics、query_top_queries、query_top_pages、query_countries、query_devices、get_site_summary、get_query_performance、get_page_performance)と、11の分析ツールです。
searchAppearance、googleNewsタイプ、3つ以上の異なるディメンション、またはページネーションが必要なリクエストです。バックフィルが完了していないプロパティも対象です。
ルーティングはリクエストごとに自動で行われ、呼び出し側が選ぶことはありません。ウェアハウスからの読み取りは、読み取り専用のロールと、アカウントに紐づく行ポリシーを使うため、テナントの境界はクエリビルダーだけでなくデータベースによっても強制されます。サーバーが読み取りの経路でウェアハウスに書き込むことはありません。
Claudeにとっての実際的な影響として、ウェアハウスは実時間より約2日、ライブAPIは約3日遅れており、ウェアハウスから返した応答はnoteでその旨を伝えます。「先週」を求めると、途中までのデータが減少として示されることなく、週単位で完結したデータが返ります。
| インターフェース | 1分あたり | 1時間あたり |
|---|---|---|
| MCP | 60 | 1,000 |
REST /v1 | 180 | 2,000 |
ユーザーごと、インターフェースごとにカウントされます。制限にかかった呼び出しには、どの時間枠に達したかと待つべき秒数が返されるため、エージェントは推測せずに正確にバックオフできます。URL検査には、Googleによる別の1日あたりのクォータがあり、get_inspection_quotaで確認できます。
| 状況 | 動作 |
|---|---|
| 読み取りキーで書き込みツールを呼び出した | ハンドラーの実行前に拒否される |
| プロパティが未接続、または権限が付与されていない | 権限の適用により、理由つきで拒否される |
| 連携が未設定 | エラーにはせず、理由つきでnotConfigured: trueを返す |
| 別の認証情報でセッションIDが再利用された | 付け替えられずに拒否される |
| 新規にGoogleのOAuthを行い、プロパティがまだ反映されていない | Googleが短時間403を返す。接続の直後は少し待って再試行する |
notConfiguredの規約は、エージェントにとって重要です。GA4やMerchant Centerの接続が未設定なのは、報告すべき状態であり、再試行すべき例外ではありません。この2つを区別することで、再試行では解決できない状況でレート制限を使い果たすループを防げます。
Googleの認証情報がClaudeに渡ることはありません。Search Consoleのトークンはサーバー側で保持され、保存時に暗号化され、サーバーが更新します。Claudeが持つのは、Googleではなく、GSC Wizard向けのトークンまたはキーです。
スコープは構造で担保されます。読み取りスコープの認証情報は、変更系のハンドラーに到達できません。これは共有パイプラインで強制されるため、MCPでもRESTでも同じように機能します。
キーはハッシュ化されます。保存されるのはSHA-256のみで、平文は一度だけ表示されます。失効は即時に反映されます。
すべての呼び出しが監査ログに記録されます。成功も失敗も対象で、読み取りは引数なし、書き込みは引数つきで記録されるため、エージェントの行動を後から再現できます。
プロパティへのアクセスは権限ごとに管理されます。Claudeに見えるのは、アカウントに接続されているプロパティだけです。共有プロパティにはそれぞれの権限が設定され、読み取り専用の権限を持つ人が、オーナーのクロール予算を消費することはありません。
無人で動くエージェントには、読み取りスコープのキーと、そのジョブに必要な特定のツールだけをクライアント側で許可するリストの組み合わせをおすすめします。この組み合わせにより、エージェントが取得するどのコンテンツ経由でプロンプトインジェクションが届いても、その影響範囲を限定できます。
多くの場合、クライアントIDまたはシークレットが入力されています。サーバーは動的クライアント登録を使うため、両方の欄を空にする必要があります。コネクタを削除し、URLだけで追加し直して、Claudeに自分自身を登録させてください。
認可エンドポイントが強制する2つのゲートを確認してください。有効なサブスクリプションと、アカウントに接続された1つ以上のSearch Consoleプロパティです。接続されたプロパティがないアカウントに発行されたトークンには、読み取りが許されるものが何もありません。
設定ファイルが起動するのはローカルのstdioプロセスだけなので、"type": "http"は有効なエントリではありません。Connectors UIを使うか、前述のようにnpx -y mcp-remoteで橋渡ししてください。
新しく付与されたSearch Consoleの認可がGoogle側に反映されるまで、少し時間がかかります。接続後の数分間に出る403は、多くの場合、権限エラーではなく反映待ちです。OAuthフローをやり直す前に、再試行してください。
レスポンスのdataSourceとsettledThroughを確認してください。ウェアハウスから返した読み取りと、名目上は同じ期間のUI表示とでは、終了日が異なることがあります。また、UI自体がクエリ数の多いレポートをサンプリングしますが、ウェアハウスはサンプリングしません。
多くの場合は、notConfiguredレスポンスに対するリトライのループが原因です。これは何度再試行しても解決しません。あるいは、1つの分析ツールなら1回の呼び出しで済むのに、ページごとに繰り返し呼んでいるケースです。行を取得して自分で推論するのではなく、サーバー側の分析ツールを使ってください。
https://mcp.gscwizard.com/mcpのStreamable HTTPです。セッションの継続はMcp-Session-Idレスポンスヘッダーで行われ、各セッションはそれを開いたユーザーにサーバー側で固定されるため、別の認証情報で再利用されたセッションIDは拒否されます。ローカルビルド用にstdioのエントリポイントがあり、/v1のRESTは同じパイプラインを通して、プレーンなHTTP+JSONを提供します。
MCPサーバーはOAuth 2.1のリソースサーバーで、tool.gscwizard.comを認可サーバーとして示すRFC 9728の保護リソースメタデータを公開しています。Claudeはその発行元からRFC 8414のメタデータを読み取り、RFC 7591の動的クライアント登録で自分自身を登録し、PKCE S256つきのauthorization_codeフローを実行します。クライアントIDとシークレットの欄を空欄にするのはこのためです。
mcp:readとmcp:writeです。Bearerトークンは、Authorizationヘッダーでのみ受け付けます。APIキーでは、同等の区別が作成時に固定されるスコープとして備わっており、読み取りキーは変更系のツールを呼び出せません。そのため、このゲートはプロンプトによる指示ではなく、構造的なものです。
登録されているツールは128個で、読み取り96個、変更32個、すべてのアカウントで利用できます。3つのインターフェースはすべて1つのrunTool()パイプラインを通して実行されるため、認可、検証、権限の適用、監査証跡がインターフェース間でずれることはありません。
Claude Desktopの設定ファイルが起動するのはローカルのstdioサーバーだけなので、リモートのHTTPエントリは検証で失敗します。Streamable HTTPをOAuthでネイティブに扱うConnectors UIを使うか、npx mcp-remote(Node.jsが必要)でリモートサーバーを橋渡ししてください。後者なら、代わりに固定のgscw_live_ APIキーを提示できます。
MCPのインターフェースは、ユーザーあたり1分に60回、1時間に1,000回まで呼び出せます。/v1のRESTインターフェースは、1分に180回、1時間に2,000回までです。制限はユーザーごと、インターフェースごとにカウントされ、制限にかかった呼び出しには、再試行までに待つべき秒数が返されます。
大半の読み取りでは読み取りません。検索アナリティクスの8つのツールと11の分析ツールは、アカウントの過去のSearch Consoleデータを保持するClickHouseのウェアハウスに自動でルーティングされ、より長い履歴が得られ、APIのサンプリングも避けられます。すべてのレスポンスに、clickhouseかapiの値を持つdataSourceフィールドが含まれ、ウェアハウスから返した場合はsettledThroughと鮮度に関する注意書きも付きます。searchAppearance、googleNewsタイプ、3つ以上の異なるディメンション、またはページネーションが必要なリクエストは、常にライブAPIにフォールバックします。
行数に上限のあるツールは、プローブ用に1行多く取得し、対象期間、続きの行があるかどうか、次に呼ぶべき正確な呼び出しを示すページネーションのブロックを返します。設計上なくそうとしているのは、黙って切り捨てられるという失敗です。ちょうどlimit件の行を渡されたモデルは、完全な回答と途中で切れた回答を区別できません。query_search_analyticsのデフォルトが100行なのは、1,000行では1回の呼び出しで約58kトークン、つまりツール一覧全体より多くのコンテキストを消費したためです。
Claudeのウェブ版、デスクトップ版、Claude Code向けの、ステップバイステップの設定ガイドです。
製品の概要:このサーバーがすべてのMCPクライアントで何をするか。
同じサーバーのGA4機能:セッション、キーイベント、eコマース、LLM経由のトラフィック。
同じサーバーのYandex機能:サイト品質指数、クエリ、インデックス登録履歴。
同じサーバーのショッピング機能:無料リスティング、商品の問題、価格、フィード監査。
Claudeに加えて、Cursor、VS Code、Windsurf、Gemini、Grok、ChatGPTに対応しています。
同じデータを、Geminiアプリ、Antigravity CLI、Gemini Enterprise、Gemini APIで利用できます。
このサーバーとクローラーMCPを組み合わせて構築した、無人で動くエージェントの実例です。
自社提供のデータサーバーと、サードパーティのプラットフォームを比較します。
1つのエンドポイント、OAuthまたはスコープ付きのキー、そして手持ちのプロパティに対する128のツール。
GSCとGA4の実践的なワークフロー、製品のアップデート、SEOの実験をお届けします。スパムは送りません。いつでも配信を停止できます。