【ITニュース解説】Google's Search Console API Fails Silently, So I Built an MCP Server That Doesn't
2026年10月15日に「Dev.to」が公開したITニュース「Google's Search Console API Fails Silently, So I Built an MCP Server That Doesn't」について初心者にもわかりやすく解説しています。
ITニュース概要
Google Search ConsoleのAPIは、不正なリクエストでもエラーを出さず空の結果を返す問題があった。この解決策として、API呼び出し前にリクエストをチェックし、何が間違っているかを明確に伝える「open-gsc-mcp」というツールが開発された。トラフィック分析やサイトインデックス状況の監査機能も備え、データ分析を効率化する。
ITニュース解説
Google Search Console(グーグル・サーチ・コンソール)は、ウェブサイトのパフォーマンスをGoogle検索上で確認できる非常に重要なツールだ。多くのウェブサイト運営者がこの情報を活用して、サイト改善に取り組んでいる。このツールが提供するデータを、プログラムから自動的に取得するための仕組みが「API(アプリケーション・プログラミング・インターフェース)」である。APIは、異なるソフトウェア同士が情報をやり取りするための窓口のようなもので、これにより自動でデータを収集・分析できる。
しかし、このGoogle Search Console APIには、システムエンジニアが直面する可能性のある厄介な問題が存在する。それが「サイレント障害」と呼ばれる現象だ。通常、APIに対して無効なリクエストを送ると、「このリクエストは間違っています」といったエラーメッセージが返ってきて、何が問題なのかを教えてくれる。ところが、Search Console APIの場合、特定の無効なリクエストに対してエラーを一切返さず、ただ単に「データがゼロ件」という結果を返してしまうことがあるのだ。これは、あたかも問題がなかったかのように振る舞うため、「サイレント(静かな)障害」と呼ばれる。
具体的には、以下のような状況でサイレント障害が発生する。例えば、Google Search Console APIに特定の国(例: us)で絞り込んだクリック数を要求したり、無効な正規表現(文字列のパターンを検索するルール)を使ったり、存在しないデバイスタイプを指定したり、あるいは約10日以上前の時間ごとのデータを要求したり、未来の日付範囲を指定したりすると、エラーメッセージなしで結果が空になる。
この問題の最も困るところは、返ってきた「データがゼロ件」という結果が、本当にデータが一つもなかったためなのか、それともAPIへのリクエスト自体が間違っていたためなのか、区別がつかない点だ。もしリクエストが間違っていたとしても、エラーが通知されないため、開発者は何時間もかけて原因を探す羽目になる。特に、最近普及が進んでいるAIアシスタントがこのAPIを利用する場合、AIは「ゼロ件」という結果をそのまま正しい情報として解釈し、間違った結論を導き出してしまう可能性がある。AIには、リクエストが不正だったことを知る術がないからだ。
このようなサイレント障害の問題を解決するため、あるエンジニアが「MCPサーバー」という新しいツールを開発した。MCPは「Model Context Protocol(モデル・コンテキスト・プロトコル)」の略で、これはGoogle Search Console APIへのリクエストを送信する前に、そのリクエストが適切な形式であるかを事前にチェックする「前処理サーバー」のような役割を果たす。このツールはopen-gsc-mcpという名前で、誰でも自由に利用・改変できる「オープンソース」ソフトウェアとして公開されている。
このMCPサーバーの最大の利点は、サイレント障害を引き起こすリクエストパターンを事前に検出し、ユーザーに何が問題かを明確に通知することだ。開発者は、実際にSearch Console APIに対して膨大なテストリクエストを実行し、どのようなリクエストが無効な結果を返すのかを徹底的に検証した。その検証結果に基づいて、無効な正規表現の使用、APIがサポートしないデータタイプの組み合わせ、古すぎるデータの要求といった、様々な不正リクエストをAPIに送る前に特定し、分かりやすい言葉で「このリクエストのここが間違っています」と教えてくれる。これにより、開発者は無駄なAPI呼び出しを避け、すぐにリクエストを修正できるようになる。
MCPサーバーは、単なるエラーチェックだけでなく、Search Consoleデータの分析を強力にサポートする機能も備えている。
一つは「explain_change(変更を説明する)」機能だ。ウェブサイトの運営では「なぜ最近クリック数が減ったのか?」という疑問が頻繁に生じる。この機能は、指定した二つの期間におけるクリック数の変動を、ページ別、検索キーワード別、国別、デバイス別、そして検索結果の表示形式別に詳細に分析する。さらに、検索結果への表示回数(インプレッション)の減少と、実際に表示されたのにクリックされなかった割合(クリック率、CTR)の低下という、性質の異なる二つの問題の原因を区別して分析してくれる。これにより、サイトパフォーマンス低下の根本原因を特定しやすくなる。また、Googleがウェブマスター向けに公開しているアルゴリズム更新情報と分析結果を照らし合わせることで、クリック数の変動がGoogleのアップデートによるものなのかどうかを推測する手助けもしてくれる。
もう一つは「audit_indexing(インデックス登録監査)」機能だ。Search Console APIは、ウェブサイトの「ページインデックス登録レポート」にあるURLリストを直接提供してくれない。しかし、この機能を使うと、サイトマップ(サイト内の全ページリスト)に記載されているすべてのURLを、GoogleのAPI利用制限(1日あたりのリクエスト数)内で一つずつ検査し、そのインデックス登録状況を把握できる。この検査は日をまたいで進行状況を保存しながら継続できるため、大規模なサイトでも全ページのインデックス状況を網羅的に監査できる。監査結果は、インデックス登録済みページ、登録されていないページ、正規URLに関する競合、インプレッションがないのにインデックス登録されているページなど、様々な問題ごとに分類され、それぞれに具体的な修正案が提示される。
このMCPサーバーは、ユーザーのセキュリティとプライバシーを重視して設計されている。デフォルトでは「リードオンリー」(データの読み取りのみ)に設定されており、ウェブサイトのデータを変更するような操作はできない。もしデータの書き込み機能が必要な場合は、特別な環境変数を設定し、明確に書き込み権限を要求してログインする必要がある。また、このサーバーはユーザーのコンピュータ上でローカルに動作するため、ユーザーの利用状況を外部に送信する「テレメトリー」機能は一切ない。Google以外の外部サイトにアクセスするのは、インデックス監査中にユーザー自身のウェブサイトを読み込む場合のみだ。ログイン情報や監査の進行状況は、ユーザーのコンピュータ内のローカルなSQLiteファイルに保存され、所有者のみが読み取れるように安全に管理される。
このMCPサーバーを利用するためには、uvというPythonのパッケージ管理ツール、Googleアカウント、そしてGoogle Cloud Platformで「OAuthクライアント」と呼ばれる認証設定を行う必要がある。OAuthクライアントのセットアップは初回のみで約5分程度で完了し、これにより自分のGoogleアカウントを通じて安全にSearch Consoleのデータにアクセスできるようになる。
このオープンソースプロジェクトはGoogleとは直接関係がない非公式なツールだが、Google Search Consoleのデータを扱うシステムエンジニアを目指す初心者にとって、APIの複雑な挙動を理解し、データ分析作業を効率化するための非常に役立つツールとなるだろう。サイレント障害という一見分かりにくい問題に対して具体的な解決策を提供し、さらに踏み込んだ分析機能を提供することで、ウェブサイトの運用や改善に大きく貢献する可能性を秘めている。このような課題解決のアプローチは、システム開発の現場で直面する様々な問題に対処する際の貴重な学びの機会にもなるはずだ。