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?

  • Xem xét các 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, sau đó cập nhật trạng thái của một phát hiện.
  • Kiểm tra hình ảnh và CVE — Lấy SBOM, liệt kê hình ảnh có lỗ hổng, tìm các hình ảnh có nhiều lỗ hổng nhất, và bỏ qua hoặc ngừng bỏ qua CVE.
  • Theo dõi hành vi khi chạy — Lấy cây tiến trình và đường cơ sở khi chạy của các container đang hoạt động, đồng thời phân tích hành vi tiến trình của chúng.
  • Kiểm tra quyền truy cập pod — Liệt kê những người đã truy cập shell vào một pod.
  • Chạy truy vấn RadQL — Liệt kê các kiểu dữ liệu, lấy lược đồ và thực thi truy vấn có bộ lọc hoặc truy vấn tổng hợp, bao gồm nhiều truy vấn chạy song song.
  • Quản lý tự động hóa — Liệt kê các quy trình tự động hóa, lần chạy và lịch chạy; lấy thông tin chi tiết về lần chạy; chạy một quy trình tự động hóa; hoặc tạo và cập nhật quy trình đó.

Tài liệu

RAD Security MCP Server

npm version

Máy chủ Model Context Protocol (MCP) dành cho RAD Security, cung cấp thông tin chuyên sâu về bảo mật bằng AI cho các 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 chạy máy chủ MCP thay bạn, vì vậy hầu hết người dùng không cần cài đặt hay lưu trữ bất cứ thứ gì. Trỏ ứng dụng MCP của bạn đến điểm cuối được lưu trữ và xác thực bằng thông tin đăng nhập RAD Security.

  • Điểm cuối: 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 xác thực trong tiêu đề Authorization:

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

    <access_key_id> và <secret_key> là khóa truy cập API RAD Security (tạo 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 lưu thông tin xác thực ở phía máy chủ.

Dạng Bearer ory_st_<session_token>:<account_id> có thời hạn ngắn cũng hoạt động, nhưng mã thông báo phiên sẽ hết hạn — hãy ưu tiên dùng khóa truy cập cho mọi thứ cần hoạt động lâu dài (ví dụ: Slack / Claude Tag).

Một kết nối cho toàn bộ tenant

Để làm việc trên tất cả tài khoản từ một cấu hình MCP, hãy tạo khóa truy cập trên tenant của bạn và dùng tenant=<tenant_id> thay cho ID tài khoản:

Authorization: Bearer <access_key_id>:<secret_key>:tenant=<tenant_id>

Trong phiên có phạm vi tenant:

  • Công cụ list_accounts trả về các tài khoản của tenant.
  • Các công cụ có phạm vi tài khoản yêu cầu đối số account_id, phải là tài khoản con của tenant. Mỗi lệnh gọi áp dụng cho một tài khoản; kết quả không được gộp giữa các tài khoản.
  • Theo mặc định, chỉ có các công cụ chỉ đọc, vì thông tin xác thực của tenant có thể truy cập mọi tài khoản. Để bật công cụ ghi, hãy gửi X-Rad-Readonly: false.

Đối với máy chủ npx/stdio, hãy đặt RAD_SECURITY_TENANT_ID mà không đặt RAD_SECURITY_ACCOUNT_ID, và dùng RAD_SECURITY_READONLY=false để bật công cụ ghi.

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 dùng 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 bao 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 ứng dụng khác

Hầu hết ứng dụng MCP chấp nhận máy chủ Streamable HTTP từ xa với URL và tiêu đề Authorization — chỉ tên trường là khác nhau. Trong mọi trường hợp, hãy giữ dấu gạch chéo ở cuối URL.

Ứng dụngVị trí cấu hìnhTrường URLDấu hiệu giao thức truyền tảiTrường tiêu đề
Claude Codeclaude mcp addđối số vị trí--transport http--header
OpenAI Codex CLI~/.codex/config.tomlurlsuy 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.jsonhttpUrlsuy raheaders
Clinecline_mcp_settings.jsonurltype: "streamableHttp"headers
Windsurf~/.codeium/windsurf/mcp_config.jsonserverUrlsuy raheaders

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

Các giao diện này thêm máy chủ MCP từ xa dưới dạng trình kết nối, sử dụng cài đặt thông tin xác thực riêng thay vì tiêu đề yêu cầu thô. Thêm https://api.rad.security/mcp/ làm trình kết nối tùy chỉnh, sau đó cung cấp thông tin xác thực bearer trong phần cài đặt của trình kết nối:

Kiểm tra (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à tác nhân nhìn thấy

Theo mặc định, một kết nối nhận được mọi bộ công cụ. Để cung cấp cho tác nhân một tập hợp nhỏ hơn — giảm lượng ngữ cảnh/token và áp dụng đặc quyền tối thiểu — hãy thêm tiêu đề giới hạn phạm vi vào kết nối đó cùng với Authorization. Tập hợp con được áp dụng bắt buộc: công cụ nằm ngoài phạm vi sẽ bị ẩn khỏi tools/list và bị từ chối nếu được gọi.

Tiêu đềTác dụng
X-Rad-Toolkits: findings, imageschỉ các bộ công cụ này
X-Rad-Exclude-Toolkits: workflowsmọi bộ công cụ ngoại trừ các bộ này
X-Rad-Readonly: truechỉ các công cụ chỉ đọc (loại bỏ công cụ ghi)

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

Ví dụ — tác nhân chỉ đọc dành cho phát hiện/ảnh (bất kỳ ứng dụng nào hỗ trợ tiêu đề; ví dụ dùng 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"
      }
    }
  }
}

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

Mọi công cụ đều yêu cầu xác thực và một tài khoản trong RAD Security. Theo mặc định, điểm cuối được lưu trữ cung cấp mọi bộ công cụ bên dưới; hãy thu hẹp phạm vi ứng dụng bằng X-Rad-Toolkits / X-Rad-Exclude-Toolkits, hoặc loại bỏ toàn bộ công cụ ghi bằng X-Rad-Readonly: true.

  • Kho tài khoản

    • Liệt kê các cụm và thông tin chi tiết của chúng
  • Kho container

    • Liệt kê các container và thông tin 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 tra

    • Liệt kê những người đã mở shell vào một pod
  • Ảnh và lỗ hổng

    • Lấy SBOM
    • Liệt kê ảnh và các lỗ hổng của chúng
    • Lấy danh sách ảnh có nhiều lỗ hổng nhất
    • Bỏ qua / bỏ bỏ qua CVE và liệt kê các quyết định xử lý CVE đang hoạt động
  • Đối tượng Kubernetes

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

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

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

    “Automation” là tên sản phẩm mà người dùng nhìn thấy; “workflow” là đối tượng Windmill nền tảng 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 trong cơ sở tri thức
    • Liệt kê 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ê bảng điều khiển và lấy thông tin chi tiết
    • Liệt kê và lấy mẫu bảng điều khiển và tiện ích
    • Tạo bảng điều khiển và cập nhật trực tiếp bảng hiện có (các trường bị lược bỏ sẽ không thay đổi, vì vậy một chỉnh sửa nhỏ không cần 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 kiểu dữ liệu có thể truy vấn (containers, findings, kubernetes_resources, v.v.)
    • Lấy lược đồ/siêu dữ liệu cho các kiểu dữ liệu cụ thể
    • Liệt kê các giá trị có thể có cho trường bộ lọc
    • Thực thi truy vấn RadQL với chức năng lọc, tìm kiếm và tổng hợp
    • Tạo 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ữ

Bạn muốn tự chạy máy chủ — chẳng hạn trong môi trường cách ly mạng, khi có yêu cầu về nơi lưu trữ dữ liệu, hoặc nếu bạn không muốn định tuyến qua cổng được lưu trữ? Máy chủ được phát hành trên npm và dưới dạng ảnh container.

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

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

Thông tin xác thực

Cung cấp thông tin xác thực RAD Security qua các 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.
# 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) — 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 những bộ công cụ mà máy chủ tự lưu trữ cung cấp:

  • INCLUDE_TOOLKITS: danh sách bộ công cụ phân tách bằng dấu phẩy cần đưa vào (chỉ bật các bộ này).
  • EXCLUDE_TOOLKITS: danh sách bộ công cụ phân tách bằng dấu phẩy cần loại trừ (bật tất cả bộ công cụ còn lại). Bị bỏ qua nếu đặt INCLUDE_TOOLKITS.

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

# Only the workflows toolkit
INCLUDE_TOOLKITS="workflows"

# Everything except runtime
EXCLUDE_TOOLKITS="runtime"

Đa tenant (xác thực theo từng 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à chế độ mà điểm cuối được lưu trữ sử dụng:

  • MCP_AUTH_MODE=env (mặc định) — mọi phiên đều dùng thông tin xác thực môi trường RAD_SECURITY_*. Chỉ dành cho một tenant và không xác thực ở lớp HTTP, vì vậy không được để có thể truy cập từ các mạng không đáng tin cậy.
  • MCP_AUTH_MODE=header — mỗi yêu cầu phải mang thông tin xác thực riêng trong tiêu đề Authorization (dạng Bearer <access_key_id>:<secret_key>:<account_id> ở trên); tiêu đề bị thiếu hoặc 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ừ bên 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) đã lỗi thời và được thay thế bằng Streamable HTTP; giao thức này chỉ sử dụng thông tin xác thực 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