Google Cloud MCP Server について
Google Cloud MCP Server は、Google Cloud のサービスに接続し、課金、ロギング、モニタリング、トレースなどのリソースに関するコンテキストとツールを提供する MCP サーバーです。自然言語で GCP リソースを照会・分析したい開発者や運用担当者を対象としています。
主な機能
- 01八つの Google Cloud サービスに対応
- 02課金コストの分析と異常検出
- 03エラーグループの一覧と傾向分析
- 04IAM ポリシーと権限の確認
- 05Spanner のクエリ実行とテーブル構造の確認
活用シーン
- 01プロジェクトの最近のコストを確認し、課金異常を調べる
- 02重大度でログを検索し、サービスのエラーグループを一覧する
- 03デプロイに必要な IAM 権限が揃っているかを確認する
MCP 対応
本プロジェクトは Google Cloud の各サービス向けツールを MCP クライアントに公開する MCP サーバーです。gcp-billing-* や gcp-logging-* などのツールを通じて、GCP リソースの情報を読み取ります。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Google Cloud MCP サーバー
Google Cloud のサービスに接続し、Google Cloud リソースを操作するためのコンテキストとツールを提供する Model Context Protocol サーバーです。
サービス
サポート対象の Google Cloud サービス:
- Billing
- Error Reporting
- Identity and Access Management (IAM)
- Logging
- Monitoring
- Profiler
- Spanner
- Trace
Billing
コスト最適化の分析情報を活用して、Google Cloud の請求を管理・分析します。
ツール: gcp-billing-list-accounts、gcp-billing-get-account-details、gcp-billing-list-projects、gcp-billing-get-project-info、gcp-billing-list-services、gcp-billing-list-skus、gcp-billing-analyse-costs、gcp-billing-detect-anomalies、gcp-billing-cost-recommendations、gcp-billing-service-breakdown
プロンプトの例:
- 「すべての請求先アカウントを表示してください」
- 「プロジェクト my-app-prod-123 の過去 30 日間のコストを分析してください」
- 「請求先アカウント billingAccounts/123456-789ABC-DEF012 のコストに関する推奨事項を生成してください」
- 「プロジェクト my-ecommerce-456 で請求の異常がないか確認してください」
Error Reporting
自動調査と修正案を活用して、アプリケーションのエラーを監視・分析します。
ツール: gcp-error-reporting-list-groups、gcp-error-reporting-get-group-details、gcp-error-reporting-analyse-trends
プロンプトの例:
- 「プロジェクト my-webapp-prod-789 の過去 1 時間のエラーグループを表示してください」
- 「エラーグループ projects/my-app-123/groups/xyz789 の詳細を取得してください」
- 「プロジェクト analytics-prod-456 のサービス my-api のエラー傾向を分析してください」
IAM
IAM ポリシーと権限を照会・分析します。
ツール: gcp-iam-get-project-policy、gcp-iam-test-project-permissions、gcp-iam-test-resource-permissions、gcp-iam-validate-deployment-permissions、gcp-iam-list-deployment-services、gcp-iam-analyse-permission-gaps
プロンプトの例:
- 「プロジェクト my-webapp-prod-123 の IAM ポリシーを取得してください」
- 「プロジェクト data-lake-456 で storage.buckets.create 権限があるかテストしてください」
- 「プロジェクト microservices-789 の Cloud Run のデプロイ権限を確認してください」
- 「プロジェクト k8s-prod-321 の GKE クラスタへのデプロイに関する権限の不足を分析してください」
Logging
Google Cloud Logging のログエントリを照会・フィルタリングします。
ツール: gcp-logging-query-logs、gcp-logging-query-time-range、gcp-logging-search-comprehensive
プロンプトの例:
- 「プロジェクト my-app-prod-123 の過去 1 時間の重大度が ERROR のログを表示してください」
- 「プロジェクト backend-456 のサービス my-api から、'timeout' を含むログを検索してください」
- 「プロジェクト compute-prod-789 でリソースタイプ gce_instance のログを照会してください」
Spanner
Google Cloud Spanner データベースを操作します。
ツール: gcp-spanner-execute-query、gcp-spanner-list-tables、gcp-spanner-list-instances、gcp-spanner-list-databases、gcp-spanner-query-natural-language、gcp-spanner-query-count
プロンプトの例:
- 「プロジェクト ecommerce-prod-123 の Spanner インスタンス my-instance にあるすべてのデータベースを一覧表示してください」
- 「プロジェクト my-app-456 のデータベース user-db で SQL を実行してください:SELECT COUNT(*) FROM users」
- 「プロジェクト retail-789 のデータベース inventory-db にある orders のテーブル構造を表示してください」
モニタリング
Google Cloud Monitoring からメトリクスを取得して分析します。
ツール: gcp-monitoring-query-metrics、gcp-monitoring-list-metric-types、gcp-monitoring-query-natural-language
プロンプトの例:
- 「プロジェクト web-app-prod-123 の過去 6 時間の CPU 使用率メトリクスを表示してください」
- 「プロジェクト infrastructure-456 の Compute Engine で利用可能なメトリクスタイプを一覧表示してください」
- 「プロジェクト backend-services-789 のインスタンスのメモリ使用量をクエリしてください」
プロファイラー
Google Cloud Profiler でアプリケーションのパフォーマンスを分析します。
ツール: gcp-profiler-list-profiles、gcp-profiler-analyse-performance、gcp-profiler-compare-trends
プロンプトの例:
- 「プロジェクト my-java-app-123 の過去 24 時間の CPU プロファイルを一覧表示してください」
- 「プロジェクト backend-prod-456 のサービス my-api のパフォーマンスボトルネックを分析してください」
- 「プロジェクト performance-test-789 のデプロイメント v1.2 と v1.3 のヒーププロファイルを比較してください」
トレース
Google Cloud Trace から分散トレースを分析します。
ツール: gcp-trace-get-trace、gcp-trace-list-traces、gcp-trace-find-from-logs、gcp-trace-query-natural-language
プロンプトの例:
- 「プロジェクト distributed-app-789 の ID abc123def456 のトレース詳細を取得してください」
- 「プロジェクト microservices-prod-123 の過去 1 時間の失敗したトレースを表示してください」
- 「プロジェクト web-backend-456 のトレース xyz789 に関連するログを探してください」
- 「プロジェクト ecommerce-prod-321 のサービス checkout-api のトレースをクエリしてください」
クイックスタート
設定が完了すると、自然言語を使って Google Cloud サービスを操作できます。
"What are my current billing costs for project my-webapp-prod-123?"
"Show me errors from project ecommerce-api-456 in the last hour"
"Check if I have permission to deploy to Cloud Run in project microservices-789"
"Find logs containing 'database timeout' from project backend-prod-321 yesterday"
"List Spanner databases in instance prod-db for project data-store-654"
"What's the CPU usage of Compute Engine instances in project infrastructure-987?"
認証
このサーバーでは、Google Cloud の認証に次の 2 つの方法を利用できます。
-
サービスアカウントキー ファイル(推奨):
GOOGLE_APPLICATION_CREDENTIALS環境変数に、サービスアカウントキー ファイルのパスを設定します。これは標準的な Google Cloud の認証方法です。 -
環境変数:
GOOGLE_CLIENT_EMAILとGOOGLE_PRIVATE_KEYの環境変数を直接設定します。キー ファイルの保存が現実的でない環境で役立ちます。
GOOGLE_CLOUD_PROJECT 環境変数が設定されている場合、サーバーはその値も使用します。設定されていない場合は、認証情報からプロジェクト ID の特定を試みます。
インストール
# Clone the repository
git clone https://github.com/krzko/google-cloud-mcp.git
cd google-cloud-mcp
# Install dependencies
pnpm install
# Build
pnpm build
Google Cloud に認証します。
gcloud auth application-default login
クライアントで mcpServers を設定します。
{
"mcpServers": {
"google-cloud-mcp": {
"command": "node",
"args": [
"/Users/foo/code/google-cloud-mcp/dist/index.js"
],
"env": {
"GOOGLE_APPLICATION_CREDENTIALS": "/Users/foo/.config/gcloud/application_default_credentials.json"
}
}
}
}
開発
サーバーの起動
# Build the project
pnpm build
# Start the server
pnpm start
開発モード
# Build the project
pnpm build
# Start the server and inspector
npx -y @modelcontextprotocol/inspector node dist/index.js
トラブルシューティング
サーバーのタイムアウトに関する問題
Smithery でサーバーを実行する際にタイムアウトが発生する場合は、次のことをお試しください。
- 設定で
debug: trueにして、デバッグログを有効にします - 認証を実際に必要とするまで遅らせるため、
lazyAuth: trueが設定されていることを確認します - 認証情報ファイルにアクセスでき、有効であることを確認します
- エラーメッセージがないかログを確認します
重要:動作には引き続き認証が必要ですが、遅延読み込みを有効にすると、サーバーはすぐに起動し、初期化時ではなく必要になった時点で認証します。
認証に関する問題
このサーバーでは、次の 2 つの認証方法を利用できます。
- サービスアカウントキー ファイル:
GOOGLE_APPLICATION_CREDENTIALS環境変数に、サービスアカウントキー ファイルのパスを設定します - 環境変数:
GOOGLE_CLIENT_EMAILとGOOGLE_PRIVATE_KEYの環境変数を設定します
認証で問題が発生する場合は、次の点を確認してください。
- サービスアカウントに必要な権限があること
- キー ファイルが適切な形式で、アクセス可能であること
- 環境変数が正しく設定されていること
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。