RAD Security

chính thức

Tương tác với nền tảng RAD Security cung cấp thông tin chi tiết về bảo mật dựa trên AI cho môi trường Kubernetes và đám mây.

Bạn có thể làm gì với RAD Security MCP?

  • Liệt kê các phát hiện bảo mật — Yêu cầu trợ lý của bạn liệt kê và phân tích các phát hiện bảo mật trên môi trường Kubernetes và đám mây của bạn.
  • Điều tra hành vi runtime — Nhận cây tiến trình, đường cơ sở runtime và phân tích hành vi tiến trình cho các container đang chạy.
  • Truy vấn hình ảnh và lỗ hổng — Truy xuất SBOM, liệt kê các hình ảnh dễ bị tấn công hàng đầu và quản lý trạng thái CVE như bỏ qua hoặc bỏ bỏ qua CVE.
  • Quản lý tự động hóa — Liệt kê, tạo, cập nhật và chạy các tự động hóa (quy trình làm việc) với lịch trình cron trực tiếp từ chat.
  • Tìm kiếm cơ sở tri thức — Tìm kiếm bộ sưu tập và tài liệu, đồng thời chạy các truy vấn có cấu trúc trên các tài liệu cụ thể.
  • Thực thi truy vấn RadQL — Chạy các truy vấn nâng cao với bộ lọc, tìm kiếm và tổng hợp trên các loại dữ liệu như container và phát hiện.

Tài liệu

RAD Security MCP Server

npm version

Máy chủ MCP (Model Context Protocol) dành cho RAD Security, cung cấp thông tin chi tiết bảo mật hỗ trợ bởi AI cho môi trường Kubernetes và đám mây.

RAD Security MCP server

Kết nối (được lưu trữ — khuyến nghị)

RAD Security vận hành máy chủ MCP cho bạn, vì vậy hầu hết người dùng không cần cài đặt hoặc tự lưu trữ bất cứ thứ gì. Trỏ ứng dụng MCP client của bạn đến endpoint được lưu trữ và xác thực bằng thông tin đăng nhập RAD Security của bạn.

  • Endpoint: https://api.rad.security/mcp/ — lưu ý dấu gạch chéo ở cuối.

  • Giao thức truyền tải: Streamable HTTP.

  • Xác thực: gửi thông tin đăng nhập của bạn trong header Authorization:

    Authorization: Bearer <access_key_id>:<secret_key>:<account_id>
    

    <access_key_id><secret_key> là khóa truy cập API RAD Security (tạo một khóa trong bảng điều khiển RAD Security); <account_id> là ID tài khoản của bạn. Máy chủ xác thực mọi yêu cầu với API RAD Security — không có thông tin đăng nhập nào được lưu trữ phía máy chủ.

Một dạng Bearer ory_st_<session_token>:<account_id> ngắn hạn cũng hoạt động, nhưng token phiên sẽ hết hạn — hãy ưu tiên khóa truy cập cho bất kỳ thứ gì dài hạn (ví dụ: 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>" }

Hoặc qua CLI, giữ bí mật trong biến môi trường (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 — lưu ý khóa bọc ngoài là servers, không phải 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 — lưu ý trường URL là httpUrl (không phải 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 — lưu ý type phải chính xác là 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 — lưu ý trường URL là serverUrl:

{
  "mcpServers": {
    "rad-security": {
      "serverUrl": "https://api.rad.security/mcp/",
      "headers": {
        "Authorization": "Bearer <access_key_id>:<secret_key>:<account_id>"
      }
    }
  }
}

Các client khác

Hầu hết các MCP client chấp nhận máy chủ Streamable HTTP từ xa với URL và header Authorization — chỉ khác tên trường. Giữ dấu gạch chéo ở cuối trên URL trong mọi trường hợp.

ClientVị trí cấu hìnhTrường URLDấu hiệu giao thức truyền tảiTrường header
Claude Codeclaude mcp addđối số vị trí--transport http--header
OpenAI Codex CLI~/.codex/config.tomlurlđược suy rahttp_headers / bearer_token_env_var
Cursor.cursor/mcp.jsonurltype: "http"headers
VS Code.vscode/mcp.json (servers)urltype: "http"headers
Gemini CLI~/.gemini/settings.jsonhttpUrlđược suy raheaders
Clinecline_mcp_settings.jsonurltype: "streamableHttp"headers
Windsurf~/.codeium/windsurf/mcp_config.jsonserverUrlđược suy raheaders

Claude.ai / Claude Desktop / Claude Tag (Slack)

Các bề mặt này thêm máy chủ MCP từ xa dưới dạng connector, sử dụng cài đặt thông tin đăng nhập riêng thay vì header yêu cầu thô. Thêm https://api.rad.security/mcp/ làm connector tùy chỉnh, sau đó cung cấp thông tin đăng nhập bearer qua cài đặt của connector:

Kiểm thử (MCP Inspector hoặc 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"}}}'

Giới hạn phạm vi công cụ mà agent thấy

Theo mặc định, một kết nối nhận được mọi bộ công cụ. Để cấp cho agent một tập nhỏ hơn — ít chi phí context/token hơn và quyền tối thiểu — hãy thêm header giới hạn phạm vi vào kết nối đó cùng với Authorization. Tập con được thực thi: một công cụ ngoài phạm vi sẽ bị ẩn khỏi tools/list bị từ chối nếu được gọi.

HeaderHiệu ứng
X-Rad-Toolkits: findings, imageschỉ các bộ công cụ này
X-Rad-Exclude-Toolkits: workflowsmọi bộ công cụ trừ những bộ này
X-Rad-Readonly: truechỉ các công cụ chỉ đọc (loại bỏ các công cụ ghi)

Các bộ công cụ: containers, clusters, audit, images, kubeobject, runtime, findings, inbox, workflows, knowledge_base, radql, dashboards, integrations. Tất cả đều được bật theo mặc định — thu hẹp bằng các header trên và sử dụng X-Rad-Readonly khi bạn muốn loại trừ mọi công cụ ghi.

Ví dụ — một agent chỉ đọc về findings/images (bất kỳ client nào hỗ trợ header; Cursor được hiển thị):

{
  "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"
      }
    }
  }
}

Trong Claude Code, truyền thêm --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"

Tính năng

Tất cả công cụ đều yêu cầu xác thực và một tài khoản trong RAD Security. Endpoint được lưu trữ hiển thị mọi bộ công cụ bên dưới theo mặc định; giới hạn phạm vi client bằng X-Rad-Toolkits / X-Rad-Exclude-Toolkits, hoặc loại bỏ tất cả công cụ ghi bằng X-Rad-Readonly: true.

  • Kiểm kê tài khoản

    • Liệt kê các cụm (cluster) và chi tiết của chúng
  • Kiểm kê container

    • Liệt kê các container và chi tiết của chúng
  • Phát hiện bảo mật

    • Liệt kê và phân tích các phát hiện bảo mật
    • Cập nhật trạng thái của một phát hiện bảo mật
  • Bảo mật thời gian chạy

    • Lấy cây tiến trình của các container đang chạy
    • Lấy đường cơ sở thời gian chạy của các container đang chạy
    • Phân tích hành vi tiến trình của các container đang chạy
  • Kiểm toán

    • Liệt kê ai đã shell vào một pod
  • Hình ảnh và lỗ hổng

    • Lấy SBOM
    • Liệt kê hình ảnh và lỗ hổng của chúng
    • Lấy các hình ảnh dễ bị tấn công hàng đầu
    • Bỏ qua / bỏ bỏ qua CVE và liệt kê các xử lý CVE đang hoạt động
  • Đối tượng Kubernetes

    • Lấy chi tiết của một tài nguyên Kubernetes cụ thể
    • Liệt kê các tài nguyên Kubernetes
  • Hộp thư đến

    • Liệt kê các mục hộp thư đến và chi tiết của chúng
    • Đánh dấu một mục hộp thư đến là dương tính giả
  • Tự động hóa (workflows)

    • Liệt kê các tự động hóa, lần chạy và lịch trình
    • Lấy chi tiết tự động hóa và lần chạy
    • Chạy một tự động hóa
    • Tạo và cập nhật tự động hóa, và thêm lịch trình cron

    "Automation" là tên sản phẩm người dùng thấy; "workflow" là đối tượng Windmill bên dưới mà API và tên công cụ sử dụng. Chúng là cùng một thứ.

  • Cơ sở tri thức

    • Tìm kiếm cơ sở tri thức
    • Liệt kê các bộ sưu tập và tài liệu
    • Chạy truy vấn có cấu trúc trên một tài liệu
  • Bảng điều khiển

    • Liệt kê các bảng điều khiển và lấy chi tiết của chúng
    • Liệt kê và lấy các mẫu bảng điều khiển và widget
    • Tạo bảng điều khiển và cập nhật một bảng tại chỗ (các trường bị bỏ qua sẽ được giữ nguyên, vì vậy một chỉnh sửa nhỏ không yêu cầu gửi lại toàn bộ bảng điều khiển)
  • Tích hợp

    • Liệt kê các tích hợp bên ngoài
  • RadQL (Truy vấn nâng cao)

    • Liệt kê các loại dữ liệu có sẵn để truy vấn (container, findings, kubernetes_resources, v.v.)
    • Lấy schema/siêu dữ liệu cho các loại dữ liệu cụ thể
    • Liệt kê các giá trị có thể cho các trường lọc
    • Thực thi truy vấn RadQL với lọc, tìm kiếm và tổng hợp
    • Xây dựng truy vấn theo chương trình từ các điều kiện có cấu trúc
    • Thực thi nhiều truy vấn song song

Tự lưu trữ

Muốn tự chạy máy chủ — ví dụ môi trường cách ly mạng, yêu cầu cư trú dữ liệu, hoặc nếu bạn không muốn định tuyến qua cổng được lưu trữ? Nó được xuất bản lên npm và dưới dạng image container.

Điều kiện tiên quyết

  • Node.js 20.x trở lên

Thông tin đăng nhập

Cung cấp thông tin đăng nhập RAD Security của bạn qua biến môi trường:

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) — ví dụ: 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

Lọc bộ công cụ

Kiểm soát bộ công cụ nào mà máy chủ tự lưu trữ hiển thị:

  • INCLUDE_TOOLKITS: danh sách phân tách bằng dấu phẩy các bộ công cụ để bao gồm (chỉ những bộ này được bật).
  • EXCLUDE_TOOLKITS: danh sách phân tách bằng dấu phẩy các bộ công cụ để loại trừ (tất cả các bộ khác được bật). Bị bỏ qua nếu INCLUDE_TOOLKITS được đặt.

Các bộ công cụ có sẵn: containers, clusters, audit, images, kubeobject, runtime, findings, inbox, workflows, knowledge_base, radql, dashboards, integrations. Tất cả đều được bật theo mặc định.

# Only the workflows toolkit
INCLUDE_TOOLKITS="workflows"

# Everything except runtime
EXCLUDE_TOOLKITS="runtime"

Đa khách thuê (xác thực theo yêu cầu)

MCP_AUTH_MODE kiểm soát cách một triển khai streamable HTTP xác thực các yêu cầu đến — đây là thứ mà endpoint được lưu trữ sử dụng:

  • MCP_AUTH_MODE=env (mặc định) — mọi phiên sử dụng thông tin đăng nhập môi trường RAD_SECURITY_*. Đơn khách thuê và không xác thực ở lớp HTTP, vì vậy nó không được truy cập từ các mạng không tin cậy.
  • MCP_AUTH_MODE=header — mọi yêu cầu phải mang thông tin đăng nhập riêng trong header Authorization (dạng Bearer <access_key_id>:<secret_key>:<account_id> ở trên); một yêu cầu thiếu hoặc có header sai định dạng sẽ bị từ chối với 401. Chỉ được hỗ trợ với TRANSPORT_TYPE=streamable. RAD_SECURITY_API_URL được lấy từ cấu hình máy chủ, không phải từ người gọi.
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

Giao thức truyền tải SSE (TRANSPORT_TYPE=sse) đã bị ngừng sử dụng để chuyển sang Streamable HTTP và chỉ sử dụng thông tin đăng nhập môi trường.

Phát triển

# Install dependencies
npm install

# Run type checking
npm run type-check

# Run linter
npm run lint

# Build
npm run build

Giấy phép

Giấy phép MIT — xem tệp LICENSE để biết chi tiết