MCP Google Search Console について
検索パフォーマンスの分析やサイトデータの管理を行うチーム向けの、Google Search Console 用 MCP サーバーです。検索分析、サイトマップ、URL 検査、サイトプロパティ操作に対応し、ブラウザー OAuth またはリフレッシュトークンで認証します。
主な機能
- 01クリック数、表示回数、CTR、掲載順位の取得
- 02サイトプロパティの一覧表示と管理
- 03サイトマップの一覧表示、送信、削除
- 04URL のインデックス登録状況の確認
- 05ブラウザー OAuth とトークン更新
活用シーン
- 01検索パフォーマンス指標の確認
- 02サイトマップの送信または削除
- 03URL のインデックス登録状況の確認
MCP 対応
Google Search Console の検索分析、サイトマップ、URL 検査、サイトプロパティ操作をツールとして MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
mcp-google-search-console-crunchtools
Google Search Console 用のセキュアな MCP サーバーです。検索アナリティクス(クリック数、表示回数、CTR、掲載順位)の取得、サイトマップの管理、URL のインデックス登録状況の確認、サイト プロパティの管理を行えます。
インストール
uvx(推奨、インストール不要)
claude mcp add mcp-google-search-console-crunchtools \
--env GSC_CLIENT_ID=your_client_id \
--env GSC_CLIENT_SECRET=your_client_secret \
--env GSC_REFRESH_TOKEN=your_refresh_token \
-- uvx mcp-google-search-console-crunchtools
pip
pip install mcp-google-search-console-crunchtools
コンテナ(Podman/Docker)
podman run -d -p 8017:8017 \
--env-file ~/.config/mcp-env/mcp-google-search-console.env \
quay.io/crunchtools/mcp-google-search-console \
--transport streamable-http --host 0.0.0.0
OAuth の設定
このサーバーは、ブラウザベースの OAuth(推奨)と環境変数(代替)の 2 つの認証方式に対応しています。
オプション A:ブラウザベースの OAuth(推奨)
ブラウザベースの OAuth では、トークンの交換が自動的に行われます。認証情報の有効期限が切れた場合は、/auth URL にアクセスして Google の同意画面で操作するだけで再認証できます。手動でコードを交換する必要はありません。
ステップ 1:Google Cloud OAuth アプリを作成する
- Google Cloud Console にアクセスします
- 新しいプロジェクトを作成します(または既存のプロジェクトを選択します)
- APIs & Services > Library に移動します
- Google Search Console API を検索し、Enable をクリックします
- APIs & Services > Credentials に移動します
- + CREATE CREDENTIALS > OAuth client ID をクリックします
- プロンプトが表示された場合は、先に OAuth 同意画面を設定します:
- User type:External(Google Workspace を使用している場合は Internal)
- App name:任意の名前(例:「MCP Search Console」)
- Scopes:
https://www.googleapis.com/auth/webmastersを追加します - Test users:Google アカウントのメールアドレスを追加します
- Create OAuth client ID に戻ります:
- Application type:Web application
- Name:任意の名前(例:「MCP Search Console」)
- Authorized redirect URIs:サーバーのコールバック URL(例:
https://mcp-gsc.example.com/oauth2callback)を追加します
- Create をクリックし、Client ID と Client Secret をコピーします
ステップ 2:設定して起動する
env ファイルを作成します:
cat > ~/.config/mcp-env/mcp-google-search-console.env << 'EOF'
GSC_CLIENT_ID=your_client_id
GSC_CLIENT_SECRET=your_client_secret
GSC_CREDENTIALS_DIR=/data
GSC_OAUTH_REDIRECT_URI=https://mcp-gsc.example.com/oauth2callback
EOF
chmod 600 ~/.config/mcp-env/mcp-google-search-console.env
認証情報用の永続ボリュームを指定してサーバーを起動します:
podman run -d -p 8017:8017 \
--env-file ~/.config/mcp-env/mcp-google-search-console.env \
-v mcp-gsc-data:/data:Z \
quay.io/crunchtools/mcp-google-search-console \
--transport streamable-http --host 0.0.0.0
ステップ 3:認証する
ブラウザで https://mcp-gsc.example.com/auth にアクセスします。Google の同意画面にリダイレクトされます。アクセスを許可すると、サーバーが認証情報を自動的に保存します。
トークンの有効期限が切れると、ツールの呼び出し時に /auth URL が返されます。この URL をクリックして再認証してください。コンテナの再起動は不要です。
オプション B:環境変数(代替)
静的な認証情報を使用する場合や、コールバック URL を公開できない場合は、env ファイルで GSC_REFRESH_TOKEN を設定してください。以下の手動 OAuth フローを参照してください。
手動 OAuth フロー
export GSC_CLIENT_ID="your_client_id_here"
export GSC_CLIENT_SECRET="your_client_secret_here"
echo "https://accounts.google.com/o/oauth2/v2/auth?client_id=${GSC_CLIENT_ID}&redirect_uri=http://127.0.0.1&response_type=code&scope=https://www.googleapis.com/auth/webmasters&access_type=offline&prompt=consent"
- ブラウザで URL を開いてサインインし、Allow をクリックします
- リダイレクト URL から
code=の値をコピーします - コードを交換します:
curl -s -X POST https://oauth2.googleapis.com/token \
-d "client_id=${GSC_CLIENT_ID}" \
-d "client_secret=${GSC_CLIENT_SECRET}" \
-d "code=PASTE_CODE_HERE" \
-d "grant_type=authorization_code" \
-d "redirect_uri=http://127.0.0.1" | python3 -m json.tool
- レスポンスから
refresh_tokenをコピーし、env ファイルにGSC_REFRESH_TOKEN=...を追加します。
実行時の動作
サーバーは次の順序で認証情報を確認します:
GSC_CREDENTIALS_DIR/credentials.jsonにあるファイルベースの認証情報(ブラウザベースのフローで書き込まれます)- 環境変数
GSC_REFRESH_TOKEN(代替)
API 呼び出しのたびに、サーバーはリフレッシュトークンを短時間有効なアクセストークン(約 1 時間)に交換します。アクセストークンはメモリにキャッシュされ、自動的に更新されます。更新されたトークンは認証情報ファイルに保存され、コンテナを再起動しても再利用できます。
利用可能なツール(10)
| カテゴリ | 数 | ツール |
|---|---|---|
| サイト | 4 | list_sites, get_site, add_site, delete_site |
| 検索アナリティクス | 1 | query_search_analytics |
| サイトマップ | 4 | list_sitemaps, get_sitemap, submit_sitemap, delete_sitemap |
| URL 検査 | 1 | inspect_url |
セキュリティ
- OAuth2 認証情報は
SecretStrとして保存されます(ログには決して記録されません) - ファイルベースの認証情報は
0o600のアクセス許可で書き込まれます(アトミックな書き込み) - エラーメッセージからトークンを自動的に除去します
- Pydantic による入力検証で
extra="forbid"を指定しています - ファイルシステムへのアクセス、シェルの実行、コードの評価は行いません
- TLS 証明書を検証します(httpx のデフォルト設定)
- リクエストのタイムアウトとレスポンスサイズの上限を設定しています
- Hummingbird のコンテナイメージをベースにしています
セキュリティ設計の全容については、SECURITY.md をご覧ください。
開発
uv sync --all-extras
uv run ruff check src tests
uv run mypy src
uv run pytest -v
gourmand --full .
podman build -f Containerfile .
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。