RAD Security
官方與RAD Security平台互動,該平台為Kubernetes和雲端環境提供AI驅動的安全洞察。
你可以用 RAD Security MCP 做什麼?
- 檢視安全性發現 — 列出並分析安全性發現,然後更新發現的狀態。
- 檢查映像檔與 CVE — 取得 SBOM、列出含有漏洞的映像檔、找出漏洞最多的映像檔,以及忽略或取消忽略 CVE。
- 追蹤執行階段行為 — 取得執行中容器的程序樹與執行階段基準,並分析其程序行為。
- 稽核 Pod 存取 — 列出曾進入 Pod shell 的使用者。
- 執行 RadQL 查詢 — 列出資料類型、取得結構描述,並執行篩選或彙總查詢,包括平行執行多個查詢。
- 管理自動化 — 列出自動化項目、執行記錄與排程;取得執行詳細資料;執行自動化;或建立及更新自動化項目。
文件
RAD Security MCP Server
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),建議使用存取金鑰。
使用一個連線存取整個租用戶
若要透過一個 MCP 設定存取所有帳戶,請在租用戶上建立存取金鑰,並以 tenant=<tenant_id> 取代帳戶 ID:
Authorization: Bearer <access_key_id>:<secret_key>:tenant=<tenant_id>
在租用戶範圍的工作階段中:
list_accounts工具會傳回租用戶的帳戶。- 帳戶範圍的工具需要
account_id引數,且該引數必須是租用戶的子帳戶。每次呼叫只會涵蓋一個帳戶;結果不會跨帳戶合併。 - 預設只提供唯讀工具,因為租用戶憑證可存取每個帳戶。若要啟用寫入工具,請傳送
X-Rad-Readonly: false。
對於 npx/stdio 伺服器,請設定 RAD_SECURITY_TENANT_ID,但不要設定 RAD_SECURITY_ACCOUNT_ID,並使用 RAD_SECURITY_READONLY=false 啟用寫入工具。
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 — 請注意,包裝鍵是 servers,不是 mcpServers:
{
"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 欄位是 httpUrl(不是 url):
{
"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/ 新增為自訂連接器,然後透過連接器的設定提供 bearer 憑證:
- Claude Tag (Slack): 將伺服器附加為外掛程式,其
.mcp.json指向端點,並在 Access bundle 的 Credentials 索引標籤中新增 bearer 憑證。請參閱 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。
範例 — 唯讀的發現項目/映像代理程式(任何支援標頭的用戶端;此處以 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 移除所有寫入工具。
-
帳戶清查
- 列出叢集及其詳細資料
-
容器清查
- 列出容器及其詳細資料
-
安全性發現項目
- 列出並分析安全性發現項目
- 更新安全性發現項目的狀態
-
執行階段安全性
- 取得執行中容器的程序樹
- 取得執行中容器的執行階段基準
- 分析執行中容器的程序行為
-
稽核
- 列出曾進入 Pod shell 的使用者
-
映像與弱點
- 取得 SBOM
- 列出映像及其弱點
- 取得弱點最多的映像
- 忽略/取消忽略 CVE,並列出有效的 CVE 處置
-
Kubernetes 物件
- 取得特定 Kubernetes 資源的詳細資料
- 列出 Kubernetes 資源
-
收件匣
- 列出收件匣項目及其詳細資料
- 將收件匣項目標記為誤報
-
自動化 (
workflows)- 列出自動化、執行記錄和排程
- 取得自動化和執行記錄的詳細資料
- 執行自動化
- 建立和更新自動化,並新增 cron 排程
「Automation」是使用者看到的產品名稱;「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.
# Set this without RAD_SECURITY_ACCOUNT_ID for a session across all the tenant's accounts.
RAD_SECURITY_TENANT_ID="your_tenant_id"
# Optional: true exposes only read-only tools. Tenant-scoped sessions are read-only unless this is false.
RAD_SECURITY_READONLY="true"
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 控制 Streamable 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 - 詳情請參閱 LICENSE 檔案