mcpField
G
Google Cloud MCP Server

Google Cloud MCP Server

ローカル
github.com/krzkoクラウド・インフラ8065 週間前に更新

Google Cloud MCP Server について

Google Cloud MCP Server は、Google Cloud のサービスに接続し、課金、ロギング、モニタリング、トレースなどのリソースに関するコンテキストとツールを提供する MCP サーバーです。自然言語で GCP リソースを照会・分析したい開発者や運用担当者を対象としています。

主な機能

  1. 01八つの Google Cloud サービスに対応
  2. 02課金コストの分析と異常検出
  3. 03エラーグループの一覧と傾向分析
  4. 04IAM ポリシーと権限の確認
  5. 05Spanner のクエリ実行とテーブル構造の確認

活用シーン

  1. 01プロジェクトの最近のコストを確認し、課金異常を調べる
  2. 02重大度でログを検索し、サービスのエラーグループを一覧する
  3. 03デプロイに必要な IAM 権限が揃っているかを確認する

MCP 対応

本プロジェクトは Google Cloud の各サービス向けツールを MCP クライアントに公開する MCP サーバーです。gcp-billing-* や gcp-logging-* などのツールを通じて、GCP リソースの情報を読み取ります。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"google-cloud": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/inspector"
]
}
}
}
起動コマンドnpx -y @modelcontextprotocol/inspector

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

パッケージ
npm@modelcontextprotocol/inspector

ツール

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

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

詳細

Google Cloud MCP サーバー

Google Cloud のサービスに接続し、Google Cloud リソースを操作するためのコンテキストとツールを提供する Model Context Protocol サーバーです。

Google Cloud Server MCP server

サービス

サポート対象の Google Cloud サービス:

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 つの方法を利用できます。

  1. サービスアカウントキー ファイル(推奨):GOOGLE_APPLICATION_CREDENTIALS 環境変数に、サービスアカウントキー ファイルのパスを設定します。これは標準的な Google Cloud の認証方法です。

  2. 環境変数: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 でサーバーを実行する際にタイムアウトが発生する場合は、次のことをお試しください。

  1. 設定で debug: true にして、デバッグログを有効にします
  2. 認証を実際に必要とするまで遅らせるため、lazyAuth: true が設定されていることを確認します
  3. 認証情報ファイルにアクセスでき、有効であることを確認します
  4. エラーメッセージがないかログを確認します

重要:動作には引き続き認証が必要ですが、遅延読み込みを有効にすると、サーバーはすぐに起動し、初期化時ではなく必要になった時点で認証します。

認証に関する問題

このサーバーでは、次の 2 つの認証方法を利用できます。

  1. サービスアカウントキー ファイル:GOOGLE_APPLICATION_CREDENTIALS 環境変数に、サービスアカウントキー ファイルのパスを設定します
  2. 環境変数:GOOGLE_CLIENT_EMAIL と GOOGLE_PRIVATE_KEY の環境変数を設定します

認証で問題が発生する場合は、次の点を確認してください。

  • サービスアカウントに必要な権限があること
  • キー ファイルが適切な形式で、アクセス可能であること
  • 環境変数が正しく設定されていること

コメント

MCP は初めてですか?

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

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