RAD Security MCP Server について
RAD Security MCP Serverは、MCPクライアントをRAD SecurityのKubernetesおよびクラウドセキュリティデータに接続します。検出事項やワークロード、脆弱性、監査を調査するツールを提供し、ツールセットや書き込み権限を制限できます。
主な機能
- 01クラスターとコンテナの確認
- 02セキュリティ検出事項の確認と更新
- 03実行プロセスとベースラインの分析
- 04イメージ、脆弱性、Kubernetesリソースの照会
- 05自動化、ダッシュボード、連携の管理
- 06ツールセットの絞り込みと書き込み制限
活用シーン
- 01Kubernetesのセキュリティ検出事項の調査
- 02脆弱性のあるイメージとSBOMの確認
- 03コンテナ内で動作中のプロセスの確認
- 04選択したツールのみをエージェントに読み取り専用で提供
MCP 対応
ホスト型Streamable HTTPまたはセルフホスト型サーバーを通じて、RAD Securityのデータと操作をMCPツールとして提供します。クライアント側で利用するツールセットを限定し、読み取り専用にできます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
52掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| filters | string | いいえ | フィルター文字列(例:'image_name:nginx'、'image_digest:sha256:...'、'owner_namespace:namespace'、'cluster_id:cluster_id')。複数のフィルターはカンマで結合できます。 |
| offset | number | いいえ | ページネーションのオフセット。デフォルト:0 |
| limit | number | いいえ | 返す結果の最大数。デフォルト:20 |
| q | string | いいえ | フリーテキスト検索クエリ |
詳細
RAD Security MCP サーバー
RAD Security 向けの Model Context Protocol(MCP)サーバーです。Kubernetes とクラウド環境に、AI を活用したセキュリティに関する分析情報を提供します。
接続(ホスト型 — 推奨)
RAD Security が MCP サーバーを実行するため、ほとんどのユーザーはインストールやホスティングを行う必要がありません。MCP クライアントからホスト型エンドポイントに接続し、RAD Security の認証情報で認証してください。
-
エンドポイント:
https://api.rad.security/mcp/— 末尾のスラッシュに注意してください。 -
トランスポート: Streamable HTTP。
-
認証:
Authorizationヘッダーで認証情報を送信します。Authorization: Bearer <access_key_id>:<secret_key>:<account_id><access_key_id>と<secret_key>は RAD Security API アクセスキーです(RAD Security コンソールで作成してください)。<account_id>はアカウント ID です。サーバーはすべてのリクエストを RAD Security API に対して認証します。サーバー側に認証情報は保存されません。
有効期間の短い形式
Bearer ory_st_<session_token>:<account_id>も使用できますが、セッショントークンには有効期限があります。長期利用(Slack / Claude Tag など)にはアクセスキーをお勧めします。
Claude Code
claude mcp add --transport http rad-security https://api.rad.security/mcp/ \
--header "Authorization: Bearer <access_key_id>:<secret_key>:<account_id>"
OpenAI Codex CLI
~/.codex/config.toml:
[mcp_servers.rad-security]
url = "https://api.rad.security/mcp/"
http_headers = { "Authorization" = "Bearer <access_key_id>:<secret_key>:<account_id>" }
または CLI を使用し、シークレットを環境変数に保存します(export RAD_MCP_TOKEN=<access_key_id>:<secret_key>:<account_id>)。
codex mcp add rad-security --url https://api.rad.security/mcp/ --bearer-token-env-var RAD_MCP_TOKEN
Cursor
.cursor/mcp.json:
{
"mcpServers": {
"rad-security": {
"type": "http",
"url": "https://api.rad.security/mcp/",
"headers": {
"Authorization": "Bearer <access_key_id>:<secret_key>:<account_id>"
}
}
}
}
VS Code(GitHub Copilot)
.vscode/mcp.json — ラッパーキーは mcpServers ではなく servers です。
{
"servers": {
"rad-security": {
"type": "http",
"url": "https://api.rad.security/mcp/",
"headers": {
"Authorization": "Bearer <access_key_id>:<secret_key>:<account_id>"
}
}
}
}
Gemini CLI
~/.gemini/settings.json — URL フィールドは url ではなく httpUrl です。
{
"mcpServers": {
"rad-security": {
"httpUrl": "https://api.rad.security/mcp/",
"headers": {
"Authorization": "Bearer <access_key_id>:<secret_key>:<account_id>"
}
}
}
}
Cline
cline_mcp_settings.json — type は正確に streamableHttp(キャメルケース)である必要があります。
{
"mcpServers": {
"rad-security": {
"type": "streamableHttp",
"url": "https://api.rad.security/mcp/",
"headers": {
"Authorization": "Bearer <access_key_id>:<secret_key>:<account_id>"
}
}
}
}
Windsurf
~/.codeium/windsurf/mcp_config.json — URL フィールドは serverUrl です。
{
"mcpServers": {
"rad-security": {
"serverUrl": "https://api.rad.security/mcp/",
"headers": {
"Authorization": "Bearer <access_key_id>:<secret_key>:<account_id>"
}
}
}
}
その他のクライアント
ほとんどの MCP クライアントは、URL と Authorization ヘッダーを指定してリモートの Streamable HTTP サーバーに接続できます。フィールド名だけが異なります。どの場合も、URL の末尾のスラッシュを残してください。
| クライアント | 設定場所 | URL フィールド | トランスポート識別子 | ヘッダーフィールド |
|---|---|---|---|---|
| Claude Code | claude mcp add | 位置引数 | --transport http | --header |
| OpenAI Codex CLI | ~/.codex/config.toml | url | 自動判定 | http_headers / bearer_token_env_var |
| Cursor | .cursor/mcp.json | url | type: "http" | headers |
| VS Code | .vscode/mcp.json (servers) | url | type: "http" | headers |
| Gemini CLI | ~/.gemini/settings.json | httpUrl | 自動判定 | headers |
| Cline | cline_mcp_settings.json | url | type: "streamableHttp" | headers |
| Windsurf | ~/.codeium/windsurf/mcp_config.json | serverUrl | 自動判定 | headers |
Claude.ai / Claude Desktop / Claude Tag(Slack)
これらの環境では、リモート MCP サーバーをコネクタとして追加します。コネクタは、リクエストヘッダーを直接指定するのではなく、独自の認証情報設定を使用します。カスタムコネクタとして https://api.rad.security/mcp/ を追加し、コネクタの設定からベアラー認証情報を指定してください。
- Claude Tag(Slack):
.mcp.jsonでエンドポイントを指定したサーバーをプラグインとして追加し、Access バンドルの Credentials タブでベアラー認証情報を追加します。Claude Tag — カスタム MCP サーバーへの接続を参照してください。 - Claude.ai / Desktop: Settings → Connectors で追加してください。カスタムコネクタを参照してください。
テスト(MCP Inspector または curl)
npx @modelcontextprotocol/inspector
# Transport: Streamable HTTP
# URL: https://api.rad.security/mcp/ (trailing slash)
# Custom headers: { "Authorization": "Bearer <access_key_id>:<secret_key>:<account_id>" }
curl -H "authorization: Bearer <access_key_id>:<secret_key>:<account_id>" \
-H "content-type: application/json" \
-H "accept: application/json, text/event-stream" \
-X POST https://api.rad.security/mcp/ \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"curl","version":"1"}}}'
エージェントに表示するツールのスコープ設定
デフォルトでは、接続ですべてのツールキットが利用できます。エージェントにより小さなセットを割り当てるには(コンテキストやトークンのオーバーヘッドを抑え、最小権限にするため)、Authorization とともに、その接続にスコープ設定用のヘッダーを追加します。指定したサブセットが強制されます。スコープ外のツールは tools/list に表示されず、呼び出された場合も拒否されます。
| ヘッダー | 効果 |
|---|---|
X-Rad-Toolkits: findings, images | 指定したツールキットのみ |
X-Rad-Exclude-Toolkits: workflows | 指定したものを除くすべてのツールキット |
X-Rad-Readonly: true | 読み取り専用ツールのみ(書き込みツールを除外) |
ツールキット:containers、clusters、audit、images、kubeobject、runtime、findings、inbox、workflows、knowledge_base、radql、dashboards、integrations。デフォルトではすべて有効です。上記のヘッダーで範囲を絞り、すべての書き込みツールを除外する場合は X-Rad-Readonly を使用してください。
例 — 読み取り専用の findings/images エージェント(ヘッダーに対応する任意のクライアント。ここでは Cursor を使用):
{
"mcpServers": {
"rad-security-findings": {
"type": "http",
"url": "https://api.rad.security/mcp/",
"headers": {
"Authorization": "Bearer <access_key_id>:<secret_key>:<account_id>",
"X-Rad-Toolkits": "findings, images",
"X-Rad-Readonly": "true"
}
}
}
}
Claude Code では、追加の --header を渡します。
claude mcp add --transport http rad-security https://api.rad.security/mcp/ \
--header "Authorization: Bearer <access_key_id>:<secret_key>:<account_id>" \
--header "X-Rad-Toolkits: findings, images"
機能
すべてのツールを使用するには、RAD Security のアカウントと認証が必要です。ホスト型エンドポイントでは、デフォルトですべてのツールキットが公開されます。X-Rad-Toolkits / X-Rad-Exclude-Toolkits でクライアントの範囲を絞るか、X-Rad-Readonly: true ですべての書き込みツールを除外してください。
-
アカウントインベントリ
- クラスターとその詳細を一覧表示
-
コンテナインベントリ
- コンテナとその詳細を一覧表示
-
セキュリティ検出結果
- セキュリティ検出結果を一覧表示して分析
- セキュリティ検出結果のステータスを更新
-
ランタイムセキュリティ
- 実行中のコンテナのプロセスツリーを取得
- 実行中のコンテナのランタイムベースラインを取得
- 実行中のコンテナのプロセス動作を分析
-
監査
- ポッドにシェル接続したユーザーを一覧表示
-
イメージと脆弱性
- SBOM を取得
- イメージとその脆弱性を一覧表示
- 脆弱性が最も多いイメージを取得
- CVE を無視/無視解除し、有効な CVE の処理を一覧表示
-
Kubernetes オブジェクト
- 特定の Kubernetes リソースの詳細を取得
- Kubernetes リソースを一覧表示
-
インボックス
- インボックス項目とその詳細を一覧表示
- インボックス項目を誤検知としてマーク
-
自動化(
workflows)- 自動化、実行、スケジュールを一覧表示
- 自動化と実行の詳細を取得
- 自動化を実行
- 自動化を作成・更新し、cron スケジュールを追加
「自動化」はユーザーに表示される製品名です。「workflow」は API とツール名で使用される基盤の Windmill オブジェクトです。 これらは同じものです。
-
ナレッジベース
- ナレッジベースを検索
- コレクションとドキュメントを一覧表示
- ドキュメントに対して構造化クエリを実行
-
ダッシュボード
- ダッシュボードを一覧表示し、詳細を取得
- ダッシュボードとウィジェットのテンプレートを一覧表示・取得
- ダッシュボードを作成し、その場で更新(省略したフィールドは変更されないため、小さな編集でダッシュボード全体を再送信する必要はありません)
-
インテグレーション
- 外部インテグレーションを一覧表示
-
RadQL(高度なクエリ)
- クエリに利用できるデータ型(containers、findings、kubernetes_resources など)を一覧表示
- 特定のデータ型のスキーマ/メタデータを取得
- フィルターフィールドで指定可能な値を一覧表示
- フィルタリング、検索、集計を使用して RadQL クエリを実行
- 構造化条件からプログラムでクエリを構築
- 複数のクエリを並列実行
セルフホスト
たとえば、エアギャップ環境やデータレジデンシー要件がある場合、あるいはホスト型ゲートウェイを経由したくない場合など、サーバーを自分で実行したい場合は、npm パッケージとコンテナイメージとして公開されています。
前提条件
- Node.js 20.x 以降
認証情報
環境変数を使用して RAD Security の認証情報を設定します。
RAD_SECURITY_ACCESS_KEY_ID="your_access_key"
RAD_SECURITY_SECRET_KEY="your_secret_key"
RAD_SECURITY_ACCOUNT_ID="your_account_id"
# Optional: fetched automatically from the account if not set
RAD_SECURITY_TENANT_ID="your_tenant_id"
npx(stdio)— 例:Claude Desktop
{
"mcpServers": {
"rad-security": {
"command": "npx",
"args": ["-y", "@rad-security/mcp-server"],
"env": {
"RAD_SECURITY_ACCESS_KEY_ID": "<your-access-key-id>",
"RAD_SECURITY_SECRET_KEY": "<your-secret-key>",
"RAD_SECURITY_ACCOUNT_ID": "<your-account-id>"
}
}
}
}
Docker(Streamable HTTP)
docker build -t rad-security/mcp-server .
docker run \
-e TRANSPORT_TYPE=streamable \
-e RAD_SECURITY_ACCESS_KEY_ID=your_access_key \
-e RAD_SECURITY_SECRET_KEY=your_secret_key \
-e RAD_SECURITY_ACCOUNT_ID=your_account_id \
-p 3000:3000 \
rad-security/mcp-server
ツールキットのフィルタリング
セルフホスト可能なサーバーが公開するツールキットを制御します。
INCLUDE_TOOLKITS:含めるツールキットのカンマ区切りリストです(これらのみが有効になります)。EXCLUDE_TOOLKITS:除外するツールキットのカンマ区切りリストです(それ以外はすべて有効になります)。INCLUDE_TOOLKITSが設定されている場合は無視されます。
利用可能なツールキット:containers、clusters、audit、images、kubeobject、runtime、findings、inbox、workflows、knowledge_base、radql、dashboards、integrations。デフォルトではすべて有効です。
# Only the workflows toolkit
INCLUDE_TOOLKITS="workflows"
# Everything except runtime
EXCLUDE_TOOLKITS="runtime"
マルチテナント(リクエストごとの認証)
MCP_AUTH_MODE は、ストリーミング可能な HTTP デプロイメントで受信リクエストを認証する方法を制御します。ホスト型エンドポイントでは、この設定が使用されます。
MCP_AUTH_MODE=env(デフォルト):すべてのセッションでRAD_SECURITY_*環境変数の認証情報を使用します。シングルテナントであり、HTTP 層では認証されないため、信頼できないネットワークからアクセス可能にしてはいけません。MCP_AUTH_MODE=header:すべてのリクエストで、Authorizationヘッダーに独自の認証情報(上記のBearer <access_key_id>:<secret_key>:<account_id>形式)を含める必要があります。ヘッダーがない場合や形式が不正な場合は、401で拒否されます。TRANSPORT_TYPE=streamableの場合にのみサポートされます。RAD_SECURITY_API_URLは呼び出し元ではなく、サーバー設定から取得されます。
docker run \
-e TRANSPORT_TYPE=streamable \
-e MCP_AUTH_MODE=header \
-e RAD_SECURITY_API_URL=https://api.rad.security \
-p 3000:3000 \
rad-security/mcp-server
SSE トランスポート(
TRANSPORT_TYPE=sse)は非推奨であり、Streamable HTTP が推奨されています。また、環境変数の認証情報のみを使用します。
開発
# Install dependencies
npm install
# Run type checking
npm run type-check
# Run linter
npm run lint
# Build
npm run build
ライセンス
MIT ライセンスの詳細については、LICENSE ファイルを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。