Google SCC MCP サーバーを試してみた
はじめに
今回は RSA Conference 2025 [1] で Google Cloud が発表した Google Unified Security MCP Server を試したので、その備忘録的な内容になります。
Google Unified Security MCP Server とは
下記 4 つの API に対して MCP 接続するための MCP サーバー [2]になります。
- SecOps(Security Operations) API
- GTI(Google Threat Inteligence) API
- SCC(Security Command Center) API
- 3rd Party API
Google 公式の GitHub リポジトリで各 API に対する MCP サーバーが公開されています。
本投稿では、SCC MCP サーバーでできることと実装手順を解説します。
AI-Ready Google Unified Security
SCC MCP サーバーでできること
SCC MCP サーバーには下記 2 つのツールが用意されています。
1. Top_vulnerability_findings
- 指定したプロジェクトにおいて、検出結果クラスが Vulnerability、重要度が High と Critical 状態が Active の検出結果を Attack Exposure Score の降順で一覧表示します。
- パラメータ
-
project_id
(必須): Google Cloud プロジェクト ID -
max_findings
(オプション): 表示する Findings の最大件数(デフォルト 20 件)
-
以下、プロンプトの実行結果になります。
Top_vulnerability_findings の実行結果
2. get_findings_remediation
- プロジェクト内の特定の検出結果に対する修復手順と影響を受けるリソースの詳細を表示します(
finding_id
またはresource_name
とcategory
のいずれかを指定します)。 - パラメータ
-
project_id
(必須): Google Cloud プロジェクト ID -
resource_name
(オプション): 影響を受けているリソース名 -
category
(オプション): 検出結果のカテゴリー名 -
finding_id
(オプション): 検出結果 ID
-
以下、プロンプトの実行結果になります。
get_findings_remediation の実行結果(検出結果詳細と影響を受けるリソース)
get_findings_remediation の実行結果(修復手順)
実装の流れ
以下、実施手順になります。
- サービスアカウントキーの作成
- API の有効化設定
- LibreChat の初期設定
- Vertex AI 接続設定
- MCP サーバー設定
- エージェントの設定
前提
・本手順は基本的に gcloud コマンドで実施しています
・LibreChat [3] は ChatGPT をクローンした OSS で AI Agent 機能を持つチャットツールです
・LibreChat 一式は Compute Engine 上の Docker 環境に Docker Compose でデプロイします
・LibreChat をデプロイする Compute Engine は事前に作成しています
・Git, Docker, Docker Compose はあらかじめインストールしています
・Private Google Access は事前に有効化しています
・Compute Engine に適用するファイアウォールルールは事前に作成しています
利用環境
各ソフトウェアのバージョンは以下の通りです。
Product | Version |
---|---|
Linux OS | CentOS Stream 9 |
Docker | CE 28.3.2 |
Docker Compose | 2.38.2 |
Git | 2.47.3 |
LibreChat | 0.7.9-rc1 |
Google Model | Gemini 2.5 Pro |
【構成図】
・SCC MCP サーバーは LibreChat コンテナ内にデプロイします(stdio 方式)
・Gemini 2.5 Pro モデルを利用するため、Vertex AI API にアクセスします
・Compute Engine から Google API へのアクセスは Private Google Access 経由となります
・ファイアウォールは利用者からの TCP22, TCP3080 の通信を許可しています
・利用者から LibreChat には TCP3080 ポートでブラウザアクセスします
全体構成図
実施手順
以下、実装手順の詳細になります。
1. サービスアカウントキーの作成
LibreChat の公式ドキュメント([Docs] > [Configuration] > [AI Providers] > [Google]
)を参考にサービスアカウントキーを作成します。
Google Cloud コンソールから Cloud Shell を起動し、サービスアカウントを作成します。
# サービスアカウントの作成
gcloud iam service-accounts create librechat-sa \
--display-name="LibreChat Service Account"
# Vertex AI User 権限を付与
gcloud projects add-iam-policy-binding {PROJECT_ID} \
--member="serviceAccount:librechat-sa@{PROJECT_ID}.iam.gserviceaccount.com" \
--role=roles/aiplatform.user
# Security Center Admin Editor 権限を付与
gcloud projects add-iam-policy-binding {PROJECT_ID} \
--member="serviceAccount:librechat-sa@{PROJECT_ID}.iam.gserviceaccount.com" \
--role="roles/securitycenter.adminEditor"
# Cloud Asset Viewer 権限を付与
gcloud projects add-iam-policy-binding {PROJECT_ID} \
--member="serviceAccount:librechat-sa@{PROJECT_ID}.iam.gserviceaccount.com" \
--role="roles/cloudasset.viewer"
Google Cloud コンソールの [IAM と管理] > [サービスアカウント]
に移動します。
作成したサービスアカウントを開き、[鍵] タブから 新しい鍵を作成
を選択します。
サービスアカウントキーの作成
キータイプは JSON
のまま作成します。(キーファイル名をauth.json
とします)
2. API の有効化設定
Cloud Shell で下記の Google API を有効化します。
#Vertex AI API を有効化
gcloud services enable aiplatform.googleapis.com --project={PROJECT_ID}
# SCC API を有効化
gcloud services enable securitycenter.googleapis.com --project={PROJECT_ID}
# Cloud Asset Inventory API を有効化
gcloud services enable cloudasset.googleapis.com --project={PROJECT_ID}
3. LibreChat の初期設定
事前に作成した Compute Engine に SSH ログインし、環境構築準備を行います。
Google Cloud コンソールから [Compute Engine] > [VM インスタンス]
に移動します。
LibreChat マシンを開き、[詳細] タブの [SSH] からブラウザウィンドウで開く
を開きます。
[ファイルをアップロード]
から作成したキーファイル(auth.json
)をアップロードします。
サービスアカウントキーのファイルアップロード
以下のシェル操作で LibreChat の初期環境を構築します。
# 特権ユーザーに昇格する
sudo su -
# LibreChat リポジトリのクローン
git clone https://github.com/danny-avila/LibreChat.git
cd LibreChat
# 設定ファイルのコピー
cp .env.example .env
cp librechat.example.yaml librechat.yaml
cp docker-compose.override.yml.example docker-compose.override.yml
# サービスアカウントキーのファイル(auth.json)を配置する
sudo mv auth.json /root/LibreChat/api/data/
sudo chown root:root /root/LibreChat/api/data/auth.json
4. Vertex AI 接続設定
Gemini 2.5 Pro を利用するために Vertex AI の設定を行います。
引き続き、シェル操作で前手順で作成した .env
ファイルを編集します。
vi /root/LibreChat/.env
Google セクションで下記の環境変数を追記し、:wq!
でファイルを保存します。
#============#
# Google #
#============#
# Vertex AI
GOOGLE_MODELS=gemini-2.5-pro,gemini-2.5-flash,gemini-2.5-flash-lite-preview-06-17,gemini-2.0-flash-001,gemini-2.0-flash-lite-001
GOOGLE_CLOUD_PROJECT={PROJECT_ID}
GOOGLE_CLOUD_REGION=asia-northeast1
GOOGLE_SAFETY_SEXUALLY_EXPLICIT=BLOCK_ONLY_HIGH
GOOGLE_SAFETY_HATE_SPEECH=BLOCK_ONLY_HIGH
GOOGLE_SAFETY_HARASSMENT=BLOCK_ONLY_HIGH
GOOGLE_SAFETY_DANGEROUS_CONTENT=BLOCK_ONLY_HIGH
GOOGLE_SAFETY_CIVIC_INTEGRITY=BLOCK_ONLY_HIGH
次は docker-compose.yml
ファイルを編集します。
vi /root/LibreChat/docker-compose.yml
services
配下の api
(LibreChat 用のコンテナ)で環境変数ファイルの参照を追記します。
services:
api:
#(省略)
# 環境変数ファイルの参照を追記
env_file:
- .env
# コンテナへのボリュームのマウントを追記
volumes:
- type: bind
source: ./librechat.yaml
target: /app/librechat.yaml
docker-compose.override.yml
ファイルを編集します。
vi /root/LibreChat/docker-compose.override.yml
services
配下の api
でコンテナへのボリュームマウントを追記します。
services:
# USE LIBRECHAT CONFIG FILE
api:
command: npm run backend:dev
volumes:
- type: bind
source: ./api/data/auth.json
target: /app/api/data/auth.json
5. MCP サーバー設定
Google MCP Security リポジトリのクローンをします。
# 特権ユーザーに昇格する
sudo su -
# プロジェクトディレクトリに移動
cd LibreChat
# Google MCP Security リポジトリをクローン
git clone https://github.com/google/mcp-security.git
ディレクトリの構造は以下のようになります。
/root/LibreChat/
├── mcp-security/ # クローンしたリポジトリ
│ ├── server/
│ │ ├── scc/
│ │ ├── secops/
│ │ └── gti/
│ └── README.md
├── docker-compose.yml
├── docker-compose.override.yml
├── librechat.yaml
└── .env
docker-compose.yml
ファイルを編集します。
vi /root/LibreChat/docker-compose.yml
services
配下の api
でコンテナへのボリュームマウントを追記します。
services:
api:
#(省略)
volumes:
#(省略)
# コンテナへのボリュームのマウントを追記
- ./mcp-security:/app/mcp-security
LibreChat 設定ファイル(librechat.yaml
)を編集します。
vi /root/LibreChat/librechat.yaml
mcpServers
と endpoints
配下の agents
に設定を追記します。
# MCP サーバーの設定
mcpServers:
scc-mcp:
type: stdio
command: uv
args:
- "--directory"
- "/app/mcp-security/server/scc"
- "run"
- "scc_mcp.py"
disabled: false
autoApprove: []
timeout: 600000
# エージェント機能を有効化(MCP サーバーを使用するため)
endpoints:
agents:
disableBuilder: false
capabilities:
- "tools"
- "actions"
- "execute_code"
recursionLimit: 25
LibreChat を起動します。
# Docker Compose でサービスを起動
docker compose up -d
# ログを確認して MCP サーバーが正常に初期化されたかチェック
docker compose logs librechat
【参考】
・LibreChat Agents Endpoint Object Structure
・LibreChat MCP Servers Object Structure
6. エージェントの設定
Web ブラウザで LibreChat(http://{グローバル IP アドレス}:3080
)にアクセスします。
LibreChat アカウント登録とログイン
ログイン後、画面右側のパネル(サイドバー)で[エージェントビルダー]
を開きます。
[+ 作成 New エージェント]
をクリックし、以下の設定を行い、エージェントを作成します。
項目 | 設定内容 |
---|---|
名前 | Google Unified Security AI Agent |
説明 | Google Cloud の Security を解析する AI エージェント |
モデル | gemini-2.5-pro |
ツールを追加 | scc-mcp |
エージェントの作成
あとは新規プロントで SCC に関する問い合わせをすれば結果が返ってきます。
【参考】
・LibreChat Agents: Build Custom AI Assistants
まとめ
いかがでしたでしょうか?
SCC MCP サーバーでできることはそこまで大層なものではありませんが、生成 AI アプリケーションで何ができるのか、どのような仕組みで動いているのかがなんとなく理解できたのではないでしょうか。
正直に言うと現状の SCC MCP サーバーですと直接 Google Cloud コンソール画面で確認するほうがラクかもしれません。今後のアップデートに期待したいです(笑)
Discussion