RAD Security
resmiBerinteraksi dengan platform RAD Security yang menyediakan wawasan keamanan berbasis AI untuk lingkungan Kubernetes dan cloud.
Apa yang bisa Anda lakukan dengan RAD Security MCP?
- Daftarkan temuan keamanan — Minta asisten Anda untuk mendaftarkan dan menganalisis temuan keamanan di lingkungan Kubernetes dan cloud Anda.
- Selidiki perilaku runtime — Dapatkan pohon proses, baseline runtime, dan analisis perilaku proses untuk kontainer yang berjalan.
- Kueri gambar dan kerentanan — Ambil SBOM, daftarkan gambar yang paling rentan, dan kelola disposisi CVE seperti mengabaikan atau membatalkan pengabaian CVE.
- Kelola otomatisasi — Daftarkan, buat, perbarui, dan jalankan otomatisasi (alur kerja) dengan jadwal cron langsung dari obrolan.
- Cari basis pengetahuan — Cari koleksi dan dokumen, serta jalankan kueri terstruktur terhadap dokumen tertentu.
- Jalankan kueri RadQL — Jalankan kueri lanjutan dengan pemfilteran, pencarian, dan agregasi di berbagai tipe data seperti kontainer dan temuan.
Dokumentasi
Server MCP RAD Security
Server Model Context Protocol (MCP) untuk RAD Security, menyediakan wawasan keamanan bertenaga AI untuk lingkungan Kubernetes dan cloud.
Hubungkan (hosted — disarankan)
RAD Security menjalankan server MCP untuk Anda, sehingga sebagian besar pengguna tidak perlu menginstal atau menghosting apa pun. Arahkan klien MCP Anda ke endpoint yang di-host dan 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 satu 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 berumur pendek
Bearer ory_st_<session_token>:<account_id>juga berfungsi, tetapi token sesi kedaluwarsa — lebih baik gunakan kunci akses untuk hal yang berumur panjang (misalnya 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>" }
Atau melalui CLI, simpan rahasia di 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 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 bidang 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 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 bidang 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 — hanya nama bidang yang berbeda. Pertahankan garis miring di akhir pada URL di setiap kasus.
| Klien | Lokasi konfigurasi | Bidang URL | Penanda transport | Bidang header |
|---|---|---|---|---|
| Claude Code | claude mcp add | argumen posisional | --transport http | --header |
| OpenAI Codex CLI | ~/.codex/config.toml | url | disimpulkan | 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 | disimpulkan | headers |
| Cline | cline_mcp_settings.json | url | type: "streamableHttp" | headers |
| Windsurf | ~/.codeium/windsurf/mcp_config.json | serverUrl | disimpulkan | headers |
Claude.ai / Claude Desktop / Claude Tag (Slack)
Permukaan ini menambahkan server MCP jarak jauh sebagai konektor, yang menggunakan pengaturan kredensial mereka sendiri daripada header permintaan mentah. Tambahkan https://api.rad.security/mcp/ sebagai konektor kustom, lalu berikan kredensial bearer melalui pengaturan konektor:
- Claude Tag (Slack): lampirkan server sebagai plugin yang
.mcp.jsonmenunjuk ke endpoint, dan tambahkan kredensial bearer pada tab Credentials dari paket Access. Lihat Claude Tag — hubungkan server MCP kustom. - Claude.ai / Desktop: tambahkan di bawah Settings → Connectors; lihat konektor kustom.
Uji coba (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 dilihat agen
Secara default, koneksi mendapatkan semua toolkit. Untuk memberi agen set yang lebih kecil — overhead konteks/token lebih sedikit, dan hak istimewa paling rendah — tambahkan header pembatasan ke koneksi tersebut bersama Authorization. Subsetnya ditegakkan: alat di luar cakupan disembunyikan dari tools/list dan ditolak jika dipanggil.
| Header | Efek |
|---|---|
X-Rad-Toolkits: findings, images | hanya toolkit ini |
X-Rad-Exclude-Toolkits: workflows | semua toolkit kecuali ini |
X-Rad-Readonly: true | hanya alat baca-saja (membuang alat tulis) |
Toolkit: containers, clusters, audit, images, kubeobject, runtime, findings, inbox, workflows, knowledge_base, radql, dashboards, integrations. Semua diaktifkan secara default — persempit dengan header di atas, dan gunakan X-Rad-Readonly saat Anda ingin mengecualikan semua alat tulis.
Contoh — agen temuan/gambar baca-saja (klien mana pun yang mendukung header; ditampilkan 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 ekstra:
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 hosted mengekspos setiap toolkit di bawah ini secara default; persempit klien dengan X-Rad-Toolkits / X-Rad-Exclude-Toolkits, atau hapus semua alat tulis dengan X-Rad-Readonly: true.
-
Inventaris Akun
- Daftar cluster dan detailnya
-
Inventaris Kontainer
- Daftar kontainer dan detailnya
-
Temuan Keamanan
- Daftar dan analisis temuan keamanan
- Perbarui status temuan keamanan
-
Keamanan Runtime
- Dapatkan pohon proses dari kontainer yang berjalan
- Dapatkan baseline runtime dari kontainer yang berjalan
- Analisis perilaku proses dari kontainer yang berjalan
-
Audit
- Daftar siapa yang masuk (shell) ke pod
-
Gambar dan Kerentanan
- Dapatkan SBOM
- Daftar gambar dan kerentanannya
- Dapatkan gambar paling rentan
- Abaikan / batalkan abaikan CVE dan daftar disposisi CVE aktif
-
Objek Kubernetes
- Dapatkan detail dari 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, run, dan jadwal
- Dapatkan detail otomatisasi dan run
- Jalankan otomatisasi
- Buat dan perbarui otomatisasi, dan tambahkan jadwal cron
"Otomatisasi" adalah nama produk yang dilihat pengguna; "alur kerja" adalah objek Windmill yang mendasar yang digunakan oleh API dan nama alat. Mereka 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 template dasbor dan widget
- Buat dasbor, dan perbarui di tempat (bidang yang dihilangkan dibiarkan tidak berubah, sehingga edit kecil tidak perlu mengirim ulang seluruh dasbor)
-
Integrasi
- Daftar integrasi eksternal
-
RadQL (Kueri Lanjutan)
- Daftar tipe data yang tersedia untuk kueri (kontainer, temuan, kubernetes_resources, dll.)
- Dapatkan skema/metadata untuk tipe data tertentu
- Daftar nilai yang mungkin untuk bidang filter
- Jalankan kueri RadQL dengan pemfilteran, pencarian, dan agregasi
- Bangun kueri secara terprogram dari kondisi terstruktur
- Jalankan beberapa kueri secara paralel
Hosting Sendiri
Lebih suka menjalankan server sendiri — misalnya lingkungan yang terisolasi udara, persyaratan residensi data, atau jika Anda tidak ingin merutekan melalui gateway yang di-host? Ini diterbitkan ke npm dan sebagai gambar kontainer.
Prasyarat
- Node.js 20.x atau lebih tinggi
Kredensial
Berikan kredensial RAD Security Anda 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
RAD_SECURITY_TENANT_ID="your_tenant_id"
npx (stdio) — mis. 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 mana yang diekspos oleh server yang di-host sendiri:
INCLUDE_TOOLKITS: daftar toolkit yang dipisahkan koma untuk disertakan (hanya ini yang diaktifkan).EXCLUDE_TOOLKITS: daftar toolkit yang dipisahkan koma untuk dikecualikan (semua lainnya diaktifkan). Diabaikan jikaINCLUDE_TOOLKITSdiatur.
Toolkit yang tersedia: containers, clusters, audit, images, kubeobject, runtime, findings, inbox, workflows, knowledge_base, radql, dashboards, integrations. Semua 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 bagaimana penyebaran HTTP streamable mengautentikasi permintaan masuk — ini yang digunakan endpoint yang di-host:
MCP_AUTH_MODE=env(default) — setiap sesi menggunakan kredensial lingkunganRAD_SECURITY_*. Single-tenant, dan tidak terautentikasi di lapisan HTTP, sehingga tidak boleh dapat diakses dari jaringan yang tidak tepercaya.MCP_AUTH_MODE=header— setiap permintaan harus membawa kredensialnya sendiri di headerAuthorization(bentukBearer <access_key_id>:<secret_key>:<account_id>di atas); permintaan yang hilang atau header yang salah format ditolak dengan401. Hanya didukung denganTRANSPORT_TYPE=streamable.RAD_SECURITY_API_URLdiambil 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) tidak digunakan lagi demi Streamable HTTP dan 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 detail