MCP ロギング NL クエリ サーバー
このプロジェクトは、開発者とAIエージェントが自然言語を使用してGoogle Cloud Loggingにクエリを実行できるModel Context Protocol(MCP)サーバーを提供します。このサーバーは、Vertex AI Gemini 2.5を使用して自然言語クエリをGoogle Cloud Loggingクエリ言語(LQL)に変換し、Cloud Loggingにクエリを実行して結果を返します。
特徴
- Vertex AI Gemini 2.5 を使用した自然言語から LQL への翻訳
- 柔軟なログクエリ: 監視対象リソース、ログ名、重大度、時間などでフィルタリング
- 簡単に統合できるREST API
- Google Cloud Run または GKE へのデプロイ準備完了
APIの使用
エンドポイント
1. 自然言語クエリ
POST /logs/nl_query
リクエスト:
応答:
2. LQLフィルタークエリ
POST /logs/query
リクエスト:
応答:
OpenAPIとツール
- 実行時に、OpenAPI/Swagger ドキュメントが
/docs
および/openapi.json
で入手できます。 - 両方のエンドポイントは、エージェント フレームワーク (Smithery、Claude Desktop など) の MCP ツールとしても検出可能です。
curlコマンドの例
テスト
- テストスクリプトの例:
test_main.py
(リポジトリを参照)
.gitignore
- 標準の Python は含まれているものを無視します (リポジトリを参照)
展開
Google Cloud Run で実行
このサーバーをGoogle Cloud Runにデプロイすると、完全に管理されたスケーラブルなソリューションを実現できます。
手順:
- Docker イメージをビルドします。
- Cloud Run にデプロイする:
YOUR_PROJECT_ID
とYOUR_REGION
を実際の GCP プロジェクト ID とリージョン (例:us-central1
) に置き換えます。 - 環境変数を設定する:
- Cloud Run デプロイ UI または
--set-env-vars
フラグを使用して、以下を指定します。VERTEX_PROJECT=your-gcp-project-id
VERTEX_LOCATION=us-central1
(またはあなたのリージョン)
- 資格:
- 適切な IAM ロール (Logging 閲覧者、Vertex AI ユーザー) を持つ Cloud Run サービス アカウントを使用することを推奨します。
- 通常、デフォルト以外のサービス アカウント キーを使用しない限り、Cloud Run で
GOOGLE_APPLICATION_CREDENTIALS
設定する必要はありません。
- Cloud Run デプロイ UI または
- IAM 権限:
- Cloud Run サービス アカウントに次の内容があることを確認します。
roles/logging.viewer
roles/aiplatform.user
- Cloud Run サービス アカウントに次の内容があることを確認します。
- サービスへのアクセス:
- デプロイ後、Cloud Run はサービス URL (例:
https://mcp-logging-server-xxxxxx.a.run.app
) を提供します。 - API リクエストではこれを
$MCP_BASE_URL
として使用します。
- デプロイ後、Cloud Run はサービス URL (例:
Google Cloud 認証の設定
このプロジェクトでは、Logging および Vertex AI API にアクセスするために Google Cloud アプリケーションのデフォルト認証情報 (ADC) が必要です。
資格情報を設定する手順:
- サービス アカウントを作成します。
- Google Cloud Console → [IAM と管理] → [サービス アカウント]に移動します。
- プロジェクトを選択してください。
- Logging ViewerおよびVertex AI User の権限を持つサービス アカウントを作成または選択します。
- キーを作成してダウンロードする:
- サービス アカウントで、「キーの管理」→「キーの追加」→「新しいキーの作成」(JSON を選択) をクリックします。
- JSON キー ファイルをコンピューターにダウンロードします。
- 環境変数を設定します。
- ターミナルで、環境変数をダウンロードしたキーのパスに設定します。
/path/to/your/service-account-key.json
実際のパスに置き換えます。
- ターミナルで、環境変数をダウンロードしたキーのパスに設定します。
- (オプション) プロジェクトと場所を設定します。
- 次のものも必要になる場合があります:
- 次のものも必要になる場合があります:
- 認証の確認:
- 認証が機能していることを確認するには、単純な
gcloud
または Python クライアント呼び出しを実行します。 DefaultCredentialsError
が表示された場合は、環境変数とファイル パスを確認してください。
- 認証が機能していることを確認するには、単純な
前提条件
- Python 3.9以上
- Logging と Vertex AI API が有効になっている Google Cloud プロジェクト
- Logging Viewer と Vertex AI ユーザーの権限を持つサービス アカウント
- 環境変数を設定します。
VERTEX_PROJECT
: GCP プロジェクト IDVERTEX_LOCATION
: Vertex AI リージョン (デフォルト:us-central1
)GOOGLE_APPLICATION_CREDENTIALS
: サービス アカウントの JSON キー ファイルへのパス
地域開発
Cloud Run にデプロイする
自然言語クエリの例
- Kubernetes クラスターからのすべてのログを表示する
- Compute Engine および AWS EC2 インスタンスからのエラーログを表示する
- プロジェクト my-project の管理アクティビティ監査ログを検索する
- 「ユニコーン」という単語を含むログを検索
- ユニコーンとフェニックスの両方が描かれた丸太を探す
- textPayloadにunicornとphoenixの両方が含まれるログを見つける
- textPayload に「unicorn phoenix」というフレーズが含まれているログを検索します
- Cloud Run サービス「my-service」の昨日のログを表示します
- 過去30分間のログを表示
- GKE で request_log を含む logName のログを表示する
- 正規表現を使用して、pod_name が foo または bar に一致するログを表示します。
- 重大度が WARNING 以上の Compute Engine のログを表示します
- us-central1 の Cloud SQL インスタンスのログを表示する
- 「支払い」を含む Pub/Sub トピックのログを表示する
- 2つのタイムスタンプ間のログエントリのログを表示する
- jsonPayload.message が正規表現 'foo.*bar' に一致するログを表示する
- labels.env が prod ではない場合のログを表示する
その他の LQL の例については、公式ドキュメントを参照してください。
ライセンス
アパッチ 2.0
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
開発者と AI エージェントが自然言語を使用して Google Cloud Logging にクエリを実行し、Vertex AI Gemini 2.5 を使用してクエリを Google Cloud Logging クエリ言語(LQL)に変換できるようにします。
Related MCP Servers
- AsecurityAlicenseAqualityA Model Context Protocol server that enables AI assistants like Claude to interact with Google Cloud Platform environments through natural language, allowing users to query and manage GCP resources during conversations.Last updated -910262TypeScriptMIT License
- -securityFlicense-qualityEnables managing Google Cloud Platform resources through natural language commands in Claude Desktop, supporting comprehensive operations across compute, storage, databases, networking, monitoring, and IAM without manual credential setup.Last updated -8Python
- -securityFlicense-qualityA server implementing the Model Context Protocol that enables AI assistants like Claude to interact with Google's Gemini API for text generation, text analysis, and chat conversations.Last updated -Python
- -securityFlicense-qualityA Model Context Protocol server that enables Claude Desktop to interact with Google's Gemini 2.5 Pro Experimental AI model, with features like Google Search integration and token usage reporting.Last updated -JavaScript