RAD Security
官方與RAD Security平台互動,該平台為Kubernetes和雲端環境提供AI驅動的安全洞察。
你可以用 RAD Security MCP 做什麼?
- 列出安全發現 — 要求您的助理列出並分析 Kubernetes 與雲端環境中的安全發現。
- 調查執行期行為 — 取得執行中容器的程序樹、執行期基線與程序行為分析。
- 查詢映像檔與漏洞 — 擷取 SBOM、列出高風險映像檔,並管理 CVE 處置狀態,例如忽略或取消忽略 CVE。
- 管理自動化 — 直接從聊天中列出、建立、更新及執行具有 cron 排程的自動化(工作流程)。
- 搜尋知識庫 — 搜尋集合與文件,並針對特定文件執行結構化查詢。
- 執行 RadQL 查詢 — 對容器與安全發現等資料類型執行進階查詢,包含篩選、搜尋與彙總。
文件
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 — 請注意包裝鍵是 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(camelCase):
{
"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 套件的憑證標籤頁中新增 bearer 憑證。請參閱 Claude Tag — 連接自訂 MCP 伺服器。 - Claude.ai / Desktop: 在「設定 → 連接器」下新增;請參閱自訂連接器。
測試(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 移除所有寫入工具。
-
帳戶庫存(Account Inventory)
- 列出叢集及其詳細資訊
-
容器庫存(Containers Inventory)
- 列出容器及其詳細資訊
-
安全發現(Security Findings)
- 列出並分析安全發現
- 更新安全發現的狀態
-
執行時期安全(Runtime Security)
- 取得執行中容器的程序樹
- 取得執行中容器的執行時期基準
- 分析執行中容器的程序行為
-
稽核(Audit)
- 列出誰登入過 Pod
-
映像與漏洞(Images and Vulnerabilities)
- 取得 SBOM
- 列出映像及其漏洞
- 取得漏洞最嚴重的映像
- 忽略 / 取消忽略 CVE 並列出有效的 CVE 處置
-
Kubernetes 物件(Kubernetes Objects)
- 取得特定 Kubernetes 資源的詳細資訊
- 列出 Kubernetes 資源
-
收件匣(Inbox)
- 列出收件匣項目及其詳細資訊
- 將收件匣項目標記為誤報
-
自動化(
workflows)- 列出自動化、執行和排程
- 取得自動化和執行詳細資訊
- 執行自動化
- 建立和更新自動化,並新增 cron 排程
「Automation」是使用者看到的產品名稱;「workflow」是 API 和工具名稱所使用的底層 Windmill 物件。它們是同一件事。
-
知識庫(Knowledge Base)
- 搜尋知識庫
- 列出集合和文件
- 對文件執行結構化查詢
-
儀表板(Dashboards)
- 列出儀表板並取得其詳細資訊
- 列出並取得儀表板和 widget 範本
- 建立儀表板,並就地更新(省略的欄位保持不變,因此小幅編輯不需要重新傳送整個儀表板)
-
整合(Integrations)
- 列出外部整合
-
RadQL(進階查詢)
- 列出可查詢的資料類型(containers、findings、kubernetes_resources 等)
- 取得特定資料類型的 schema/中繼資料
- 列出篩選欄位的可能值
- 使用篩選、搜尋和彙總執行 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 控制 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 檔案