RAD Security

resmi

Kubernetes ve bulut ortamları için yapay zeka destekli güvenlik içgörüleri sağlayan RAD Security platformu ile etkileşim kurun.

RAD Security MCP ile neler yapabilirsiniz?

  • Güvenlik bulgularını listele — Asistanınızdan Kubernetes ve bulut ortamlarınızdaki güvenlik bulgularını listelemesini ve analiz etmesini isteyin.
  • Çalışma zamanı davranışını incele — Çalışan konteynerler için süreç ağaçları, çalışma zamanı temelleri ve süreç davranışı analizi alın.
  • Görüntüleri ve güvenlik açıklarını sorgula — SBOM'ları alın, en çok güvenlik açığı olan görüntüleri listeleyin ve CVE'leri yok sayma veya yok saymayı kaldırma gibi CVE durumlarını yönetin.
  • Otomasyonları yönet — Sohbetten doğrudan cron zamanlamalarıyla otomasyonları (iş akışları) listeleyin, oluşturun, güncelleyin ve çalıştırın.
  • Bilgi tabanında ara — Koleksiyonlarda ve belgelerde arama yapın ve belirli belgelere karşı yapılandırılmış sorgular çalıştırın.
  • RadQL sorguları çalıştır — Konteynerler ve bulgular gibi veri türlerinde filtreleme, arama ve toplama işlemleriyle gelişmiş sorgular çalıştırın.

Dokümantasyon

RAD Security MCP Sunucusu

npm version

RAD Security için bir Model Context Protocol (MCP) sunucusu; Kubernetes ve bulut ortamları için yapay zeka destekli güvenlik içgörüleri sağlar.

RAD Security MCP server

Bağlan (barındırılan — önerilir)

RAD Security MCP sunucusunu sizin için çalıştırır, bu nedenle çoğu kullanıcının bir şey kurması veya barındırması gerekmez. MCP istemcinizi barındırılan uç noktaya yönlendirin ve RAD Security kimlik bilgilerinizle kimlik doğrulayın.

  • Uç nokta: https://api.rad.security/mcp/sondaki eğik çizgiye dikkat edin.

  • Taşıma: Streamable HTTP.

  • Kimlik doğrulama: kimlik bilginizi Authorization başlığında gönderin:

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

    <access_key_id> ve <secret_key> bir RAD Security API erişim anahtarıdır (RAD Security konsolunda bir tane oluşturun); <account_id> hesap kimliğinizdir. Sunucu her isteği RAD Security API'sine karşı doğrular — sunucu tarafında hiçbir kimlik bilgisi saklanmaz.

Kısa ömürlü bir form olan Bearer ory_st_<session_token>:<account_id> de çalışır, ancak oturum belirteçleri süresi dolar — uzun ömürlü her şey için bir erişim anahtarı tercih edin (örn. 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>" }

Veya CLI üzerinden, sırrı bir ortam değişkeninde tutarak (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 — sarmalayıcı anahtarının servers olduğunu unutmayın, mcpServers değil:

{
  "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 alanının httpUrl olduğunu unutmayın (url değil):

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

Cline

cline_mcp_settings.jsontype tam olarak streamableHttp (camelCase) olmalıdır:

{
  "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 alanının serverUrl olduğunu unutmayın:

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

Diğer istemciler

Çoğu MCP istemcisi, bir URL ve Authorization başlığı ile uzak bir Streamable HTTP sunucusunu kabul eder — yalnızca alan adları farklıdır. Her durumda URL'deki sondaki eğik çizgiyi koruyun.

İstemciYapılandırma konumuURL alanıTaşıma işaretiBaşlık alanı
Claude Codeclaude mcp addkonumsal argüman--transport http--header
OpenAI Codex CLI~/.codex/config.tomlurlçıkarılanhttp_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çıkarılanheaders
Clinecline_mcp_settings.jsonurltype: "streamableHttp"headers
Windsurf~/.codeium/windsurf/mcp_config.jsonserverUrlçıkarılanheaders

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

Bu yüzeyler uzak MCP sunucularını bağlayıcılar olarak ekler; bunlar ham bir istek başlığı yerine kendi kimlik bilgisi ayarlarını kullanır. https://api.rad.security/mcp/ öğesini özel bir bağlayıcı olarak ekleyin ve ardından taşıyıcı kimlik bilgisini bağlayıcının ayarlarından sağlayın:

Test edin (MCP Inspector veya 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"}}}'

Bir aracının gördüğü araçların kapsamını belirleme

Varsayılan olarak bir bağlantı tüm araç setlerini alır. Bir aracıya daha küçük bir set vermek için — daha az bağlam/belirteç yükü ve en az ayrıcalık — bu bağlantıya Authorization ile birlikte bir kapsam başlığı ekleyin. Alt küme zorunludur: kapsam dışı bir araç tools/list öğesinden gizlenir ve çağrılırsa reddedilir.

BaşlıkEtki
X-Rad-Toolkits: findings, imagesyalnızca bu araç setleri
X-Rad-Exclude-Toolkits: workflowsbunlar dışındaki tüm araç setleri
X-Rad-Readonly: trueyalnızca salt okunur araçlar (yazma araçlarını bırakır)

Araç setleri: containers, clusters, audit, images, kubeobject, runtime, findings, inbox, workflows, knowledge_base, radql, dashboards, integrations. Tümü varsayılan olarak etkindir — yukarıdaki başlıklarla daraltın ve her yazma aracını hariç tutmak istediğinizde X-Rad-Readonly kullanın.

Örnek — salt okunur bulgular/görüntüler aracısı (başlıkları destekleyen herhangi bir istemci; Cursor gösterilmiştir):

{
  "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'da ek bir --header iletin:

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"

Özellikler

Tüm araçlar kimlik doğrulama ve RAD Security'de bir hesap gerektirir. Barındırılan uç nokta varsayılan olarak aşağıdaki tüm araç setlerini sunar; bir istemciyi X-Rad-Toolkits / X-Rad-Exclude-Toolkits ile daraltın veya tüm yazma araçlarını X-Rad-Readonly: true ile bırakın.

  • Hesap Envanteri

    • Kümeleri ve ayrıntılarını listele
  • Konteyner Envanteri

    • Konteynerleri ve ayrıntılarını listele
  • Güvenlik Bulguları

    • Güvenlik bulgularını listele ve analiz et
    • Bir güvenlik bulgusunun durumunu güncelle
  • Çalışma Zamanı Güvenliği

    • Çalışan konteynerlerin süreç ağaçlarını al
    • Çalışan konteynerlerin çalışma zamanı temellerini al
    • Çalışan konteynerlerin süreç davranışını analiz et
  • Denetim

    • Bir pod'a kimlerin kabuk erişimi olduğunu listele
  • Görüntüler ve Güvenlik Açıkları

    • SBOM'ları al
    • Görüntüleri ve güvenlik açıklarını listele
    • En çok güvenlik açığı olan görüntüleri al
    • CVE'leri yoksay / yoksaymayı kaldır ve etkin CVE durumlarını listele
  • Kubernetes Nesneleri

    • Belirli bir Kubernetes kaynağının ayrıntılarını al
    • Kubernetes kaynaklarını listele
  • Gelen Kutusu

    • Gelen kutusu öğelerini ve ayrıntılarını listele
    • Bir gelen kutusu öğesini yanlış pozitif olarak işaretle
  • Otomasyonlar (workflows)

    • Otomasyonları, çalıştırmaları ve zamanlamaları listele
    • Otomasyon ve çalıştırma ayrıntılarını al
    • Bir otomasyonu çalıştır
    • Otomasyonlar oluştur ve güncelle, cron zamanlamaları ekle

    "Otomasyon" kullanıcıların gördüğü ürün adıdır; "iş akışı" API ve araç adlarının kullandığı temel Windmill nesnesidir. Bunlar aynı şeydir.

  • Bilgi Tabanı

    • Bilgi tabanında arama yap
    • Koleksiyonları ve belgeleri listele
    • Bir belgeye karşı yapılandırılmış sorgular çalıştır
  • Panolar

    • Panoları listele ve ayrıntılarını al
    • Pano ve widget şablonlarını listele ve al
    • Bir pano oluştur ve yerinde güncelle (atlanan alanlar değiştirilmez, bu nedenle küçük bir düzenleme tüm panoyu yeniden göndermeyi gerektirmez)
  • Entegrasyonlar

    • Harici entegrasyonları listele
  • RadQL (Gelişmiş Sorgulama)

    • Sorgulama için kullanılabilir veri türlerini listele (konteynerler, bulgular, kubernetes_resources, vb.)
    • Belirli veri türleri için şema/üst veri al
    • Filtre alanları için olası değerleri listele
    • Filtreleme, arama ve toplama ile RadQL sorguları çalıştır
    • Yapılandırılmış koşullardan programatik olarak sorgular oluştur
    • Birden çok sorguyu paralel çalıştır

Kendi kendine barındırma

Sunucuyu kendiniz çalıştırmayı mı tercih edersiniz — örneğin hava boşluklu bir ortam, veri yerleşimi gereksinimleri veya barındırılan ağ geçidi üzerinden yönlendirmek istemiyorsanız? npm'de ve bir konteyner görüntüsü olarak yayınlanmıştır.

Ön koşullar

  • Node.js 20.x veya üzeri

Kimlik bilgileri

RAD Security kimlik bilgilerinizi ortam değişkenleri aracılığıyla sağlayın:

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) — örn. 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

Araç seti filtreleme

Kendi kendine barındırılan bir sunucunun hangi araç setlerini sunduğunu kontrol edin:

  • INCLUDE_TOOLKITS: dahil edilecek araç setlerinin virgülle ayrılmış listesi (yalnızca bunlar etkindir).
  • EXCLUDE_TOOLKITS: hariç tutulacak araç setlerinin virgülle ayrılmış listesi (diğerleri etkindir). INCLUDE_TOOLKITS ayarlanmışsa yok sayılır.

Kullanılabilir araç setleri: containers, clusters, audit, images, kubeobject, runtime, findings, inbox, workflows, knowledge_base, radql, dashboards, integrations. Tümü varsayılan olarak etkindir.

# Only the workflows toolkit
INCLUDE_TOOLKITS="workflows"

# Everything except runtime
EXCLUDE_TOOLKITS="runtime"

Çok kiracılı (isteğe göre kimlik doğrulama)

MCP_AUTH_MODE, bir streamable HTTP dağıtımının gelen istekleri nasıl doğruladığını kontrol eder — barındırılan uç noktanın kullandığı budur:

  • MCP_AUTH_MODE=env (varsayılan) — her oturum RAD_SECURITY_* ortam kimlik bilgilerini kullanır. Tek kiracılıdır ve HTTP katmanında kimlik doğrulaması yoktur, bu nedenle güvenilmeyen ağlardan erişilebilir olmamalıdır.
  • MCP_AUTH_MODE=header — her istek kendi kimlik bilgisini Authorization başlığında taşımalıdır (yukarıdaki Bearer <access_key_id>:<secret_key>:<account_id> formu); eksik veya hatalı bir başlık 401 ile reddedilir. Yalnızca TRANSPORT_TYPE=streamable ile desteklenir. RAD_SECURITY_API_URL sunucu yapılandırmasından alınır, çağırandan değil.
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 taşıması (TRANSPORT_TYPE=sse) Streamable HTTP lehine kullanımdan kaldırılmıştır ve yalnızca ortam kimlik bilgilerini kullanır.

Geliştirme

# Install dependencies
npm install

# Run type checking
npm run type-check

# Run linter
npm run lint

# Build
npm run build

Lisans

MIT Lisansı - ayrıntılar için LICENSE dosyasına bakın