RAD Security

resmi

Berinteraksi dengan platform RAD Security yang menyediakan wawasan keamanan berbasis AI untuk lingkungan Kubernetes dan cloud.

Apa yang bisa Anda lakukan dengan RAD Security MCP?

  • Tinjau temuan keamanan — Daftar dan analisis temuan keamanan, lalu perbarui status suatu temuan.
  • Periksa image dan CVE — Dapatkan SBOM, daftar image yang memiliki kerentanan, temukan image dengan kerentanan terbanyak, serta abaikan atau batalkan pengabaian CVE.
  • Telusuri perilaku runtime — Dapatkan pohon proses dan baseline runtime untuk container yang sedang berjalan, lalu analisis perilaku prosesnya.
  • Audit akses pod — Daftar pengguna yang pernah masuk ke shell pod.
  • Jalankan kueri RadQL — Daftar tipe data, dapatkan skema, dan jalankan kueri yang difilter atau diagregasi, termasuk beberapa kueri secara paralel.
  • Kelola otomatisasi — Daftar otomatisasi, eksekusi, dan jadwal; dapatkan detail eksekusi; jalankan otomatisasi; atau buat dan perbarui otomatisasi.

Dokumentasi

Server MCP RAD Security

npm version

Server Model Context Protocol (MCP) untuk RAD Security, yang menyediakan wawasan keamanan berbasis AI untuk lingkungan Kubernetes dan cloud.

RAD Security MCP server

Hubungkan (dihosting — direkomendasikan)

RAD Security menjalankan server MCP untuk Anda, jadi sebagian besar pengguna tidak perlu menginstal atau menghosting apa pun. Arahkan klien MCP Anda ke endpoint yang dihosting dan lakukan autentikasi dengan kredensial RAD Security Anda.

  • Endpoint: https://api.rad.security/mcp/ — perhatikan garis miring di akhir.

  • Transport: Streamable HTTP.

  • Autentikasi: kirim kredensial Anda di header Authorization:

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

    <access_key_id> dan <secret_key> adalah kunci akses API RAD Security (buat di konsol RAD Security); <account_id> adalah ID akun Anda. Server mengautentikasi setiap permintaan terhadap API RAD Security — tidak ada kredensial yang disimpan di sisi server.

Bentuk Bearer ory_st_<session_token>:<account_id> yang berumur pendek juga berfungsi, tetapi token sesi akan kedaluwarsa — utamakan kunci akses untuk penggunaan jangka panjang (misalnya Slack / Claude Tag).

Satu koneksi untuk seluruh tenant

Untuk bekerja di semua akun Anda dari satu konfigurasi MCP, buat kunci akses di tenant Anda dan gunakan tenant=<tenant_id> sebagai pengganti ID akun:

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

Dalam sesi dengan cakupan tenant:

  • Alat list_accounts mengembalikan akun-akun tenant.
  • Alat dengan cakupan akun memerlukan argumen account_id, yang harus berupa akun anak dari tenant. Setiap pemanggilan mencakup satu akun; hasil tidak digabungkan antar akun.
  • Secara default, hanya alat baca-saja yang tersedia, karena kredensial tenant dapat menjangkau setiap akun. Untuk mengaktifkan alat tulis, kirim X-Rad-Readonly: false.

Untuk server npx/stdio, atur RAD_SECURITY_TENANT_ID tanpa RAD_SECURITY_ACCOUNT_ID, dan gunakan RAD_SECURITY_READONLY=false untuk mengaktifkan alat tulis.

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

Atau melalui CLI, dengan menyimpan rahasia dalam variabel env (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 — perhatikan bahwa kunci pembungkusnya adalah servers, bukan 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 — perhatikan bahwa kolom URL adalah httpUrl (bukan 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 — perhatikan bahwa type harus persis 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 — perhatikan bahwa kolom URL adalah serverUrl:

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

Klien lainnya

Sebagian besar klien MCP menerima server Streamable HTTP jarak jauh dengan URL dan header Authorization — yang berbeda hanya nama kolomnya. Pertahankan garis miring di akhir URL dalam setiap kasus.

KlienLokasi konfigurasiKolom URLPenanda transportKolom header
Claude Codeclaude mcp addargumen posisional--transport http--header
OpenAI Codex CLI~/.codex/config.tomlurldisimpulkanhttp_headers / bearer_token_env_var
Cursor.cursor/mcp.jsonurltype: "http"headers
VS Code.vscode/mcp.json (servers)urltype: "http"headers
Gemini CLI~/.gemini/settings.jsonhttpUrldisimpulkanheaders
Clinecline_mcp_settings.jsonurltype: "streamableHttp"headers
Windsurf~/.codeium/windsurf/mcp_config.jsonserverUrldisimpulkanheaders

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

Antarmuka ini menambahkan server MCP jarak jauh sebagai konektor, yang menggunakan pengaturan kredensialnya sendiri, bukan header permintaan mentah. Tambahkan https://api.rad.security/mcp/ sebagai konektor khusus, lalu berikan kredensial bearer melalui pengaturan konektor:

  • Claude Tag (Slack): lampirkan server sebagai plugin yang .mcp.json-nya mengarah ke endpoint, lalu tambahkan kredensial bearer di tab Credentials pada Access bundle. Lihat Claude Tag — hubungkan server MCP khusus.
  • Claude.ai / Desktop: tambahkan di Settings → Connectors; lihat konektor khusus.

Uji (MCP Inspector atau 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"}}}'

Membatasi alat yang dapat dilihat agen

Secara default, koneksi mendapatkan semua toolkit. Untuk memberikan kumpulan yang lebih kecil kepada agen — mengurangi penggunaan konteks/token dan menerapkan hak akses minimum — tambahkan header pembatasan ke koneksi tersebut bersama Authorization. Subset ini diberlakukan: alat di luar cakupan disembunyikan dari tools/list dan ditolak jika dipanggil.

HeaderEfek
X-Rad-Toolkits: findings, imageshanya toolkit ini
X-Rad-Exclude-Toolkits: workflowssemua toolkit kecuali yang ini
X-Rad-Readonly: truehanya alat baca-saja (menghapus alat tulis)

Toolkit: containers, clusters, audit, images, kubeobject, runtime, findings, inbox, workflows, knowledge_base, radql, dashboards, integrations. Semuanya diaktifkan secara default — persempit dengan header di atas, dan gunakan X-Rad-Readonly jika ingin mengecualikan semua alat tulis.

Contoh — agen temuan/citra baca-saja (klien apa pun yang mendukung header; contoh menggunakan 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"
      }
    }
  }
}

Di Claude Code, berikan --header tambahan:

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"

Fitur

Semua alat memerlukan autentikasi dan akun di RAD Security. Endpoint yang dihosting mengekspos semua toolkit di bawah ini secara default; batasi cakupan klien dengan X-Rad-Toolkits / X-Rad-Exclude-Toolkits, atau hapus semua alat tulis dengan X-Rad-Readonly: true.

  • Inventaris Akun

    • Daftar klaster dan detailnya
  • Inventaris Kontainer

    • Daftar kontainer dan detailnya
  • Temuan Keamanan

    • Daftar dan analisis temuan keamanan
    • Perbarui status temuan keamanan
  • Keamanan Runtime

    • Dapatkan pohon proses kontainer yang sedang berjalan
    • Dapatkan baseline runtime kontainer yang sedang berjalan
    • Analisis perilaku proses kontainer yang sedang berjalan
  • Audit

    • Daftar pengguna yang masuk ke shell pod
  • Citra dan Kerentanan

    • Dapatkan SBOM
    • Daftar citra dan kerentanannya
    • Dapatkan citra dengan kerentanan terbanyak
    • Abaikan / batalkan pengabaian CVE dan daftar disposisi CVE aktif
  • Objek Kubernetes

    • Dapatkan detail sumber daya Kubernetes tertentu
    • Daftar sumber daya Kubernetes
  • Kotak Masuk

    • Daftar item kotak masuk dan detailnya
    • Tandai item kotak masuk sebagai positif palsu
  • Otomatisasi (workflows)

    • Daftar otomatisasi, eksekusi, dan jadwal
    • Dapatkan detail otomatisasi dan eksekusi
    • Jalankan otomatisasi
    • Buat dan perbarui otomatisasi, serta tambahkan jadwal cron

    "Automation" adalah nama produk yang dilihat pengguna; "workflow" adalah objek Windmill yang mendasarinya, yang digunakan dalam nama API dan alat. Keduanya adalah hal yang sama.

  • Basis Pengetahuan

    • Cari basis pengetahuan
    • Daftar koleksi dan dokumen
    • Jalankan kueri terstruktur pada dokumen
  • Dasbor

    • Daftar dasbor dan dapatkan detailnya
    • Daftar dan dapatkan templat dasbor dan widget
    • Buat dasbor, dan perbarui dasbor yang sudah ada (kolom yang tidak disertakan tidak berubah, sehingga perubahan kecil tidak memerlukan pengiriman ulang seluruh dasbor)
  • Integrasi

    • Daftar integrasi eksternal
  • RadQL (Kueri Lanjutan)

    • Daftar tipe data yang tersedia untuk kueri (containers, findings, kubernetes_resources, dll.)
    • Dapatkan skema/metadata untuk tipe data tertentu
    • Daftar nilai yang mungkin untuk kolom filter
    • Jalankan kueri RadQL dengan pemfilteran, pencarian, dan agregasi
    • Susun kueri secara terprogram dari kondisi terstruktur
    • Jalankan beberapa kueri secara paralel

Hosting mandiri

Lebih memilih menjalankan server sendiri — misalnya di lingkungan air-gapped, karena persyaratan residensi data, atau jika Anda tidak ingin melewati gateway yang dihosting? Server ini dipublikasikan ke npm dan sebagai citra kontainer.

Prasyarat

  • Node.js 20.x atau lebih tinggi

Kredensial

Berikan kredensial RAD Security melalui variabel lingkungan:

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) — misalnya 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

Pemfilteran toolkit

Kontrol toolkit yang diekspos oleh server yang dihosting sendiri:

  • INCLUDE_TOOLKITS: daftar toolkit yang dipisahkan koma untuk disertakan (hanya ini yang diaktifkan).
  • EXCLUDE_TOOLKITS: daftar toolkit yang dipisahkan koma untuk dikecualikan (semua yang lain diaktifkan). Diabaikan jika INCLUDE_TOOLKITS diatur.

Toolkit yang tersedia: containers, clusters, audit, images, kubeobject, runtime, findings, inbox, workflows, knowledge_base, radql, dashboards, integrations. Semuanya diaktifkan secara default.

# Only the workflows toolkit
INCLUDE_TOOLKITS="workflows"

# Everything except runtime
EXCLUDE_TOOLKITS="runtime"

Multi-tenant (autentikasi per permintaan)

MCP_AUTH_MODE mengontrol cara deployment Streamable HTTP mengautentikasi permintaan masuk — inilah yang digunakan endpoint yang dihosting:

  • MCP_AUTH_MODE=env (default) — setiap sesi menggunakan kredensial lingkungan RAD_SECURITY_*. Satu tenant, dan tidak diautentikasi pada lapisan HTTP, sehingga tidak boleh dapat dijangkau dari jaringan yang tidak tepercaya.
  • MCP_AUTH_MODE=header — setiap permintaan harus membawa kredensialnya sendiri di header Authorization (bentuk Bearer <access_key_id>:<secret_key>:<account_id> di atas); header yang tidak ada atau tidak valid akan ditolak dengan 401. Hanya didukung dengan TRANSPORT_TYPE=streamable. RAD_SECURITY_API_URL diambil dari konfigurasi server, bukan dari pemanggil.
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

Transport SSE (TRANSPORT_TYPE=sse) sudah tidak digunakan lagi dan digantikan oleh Streamable HTTP, serta hanya menggunakan kredensial env.

Pengembangan

# Install dependencies
npm install

# Run type checking
npm run type-check

# Run linter
npm run lint

# Build
npm run build

Lisensi

Lisensi MIT - lihat file LICENSE untuk detailnya