RAD Security
공식RAD Security 플랫폼과 상호작용하여 Kubernetes 및 클라우드 환경에 대한 AI 기반 보안 인사이트를 제공합니다.
RAD Security MCP(으)로 무엇을 할 수 있나요?
- 보안 결과 나열 — 어시스턴트에게 Kubernetes 및 클라우드 환경 전반의 보안 결과를 나열하고 분석하도록 요청하세요.
- 런타임 동작 조사 — 실행 중인 컨테이너에 대한 프로세스 트리, 런타임 기준선, 프로세스 동작 분석을 얻으세요.
- 이미지 및 취약점 조회 — SBOM을 검색하고, 상위 취약 이미지를 나열하며, CVE 무시 또는 무시 해제와 같은 CVE 처리 상태를 관리하세요.
- 자동화 관리 — 채팅에서 직접 cron 일정으로 자동화(워크플로)를 나열, 생성, 업데이트, 실행하세요.
- 지식 베이스 검색 — 컬렉션과 문서를 검색하고, 특정 문서에 대해 구조화된 쿼리를 실행하세요.
- RadQL 쿼리 실행 — 컨테이너 및 결과와 같은 데이터 유형에 대해 필터링, 검색, 집계를 포함한 고급 쿼리를 실행하세요.
문서
RAD Security MCP Server
RAD Security용 Model Context Protocol(MCP) 서버로, Kubernetes 및 클라우드 환경에 대한 AI 기반 보안 인사이트를 제공합니다.
연결(호스팅 — 권장)
RAD Security가 MCP 서버를 대신 실행하므로 대부분의 사용자는 아무것도 설치하거나 호스팅할 필요가 없습니다. MCP 클라이언트를 호스팅 엔드포인트에 연결하고 RAD Security 자격 증명으로 인증하세요.
-
엔드포인트:
https://api.rad.security/mcp/— 끝에 슬래시가 있어야 합니다. -
전송 방식: Streamable HTTP.
-
인증:
Authorization헤더에 자격 증명을 보내세요:Authorization: Bearer <access_key_id>:<secret_key>:<account_id><access_key_id>및<secret_key>는 RAD Security API 액세스 키입니다(RAD Security 콘솔에서 생성).<account_id>는 계정 ID입니다. 서버는 모든 요청을 RAD Security API에 대해 인증합니다 — 자격 증명은 서버 측에 저장되지 않습니다.
수명이 짧은
Bearer ory_st_<session_token>:<account_id>형식도 작동하지만 세션 토큰은 만료됩니다 — 장기 실행 작업(예: 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>" }
또는 CLI를 통해 비밀을 환경 변수(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 — 래퍼 키는 servers이며 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 — URL 필드는 httpUrl입니다(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 — type는 정확히 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 — URL 필드는 serverUrl입니다:
{
"mcpServers": {
"rad-security": {
"serverUrl": "https://api.rad.security/mcp/",
"headers": {
"Authorization": "Bearer <access_key_id>:<secret_key>:<account_id>"
}
}
}
}
기타 클라이언트
대부분의 MCP 클라이언트는 URL과 Authorization 헤더가 있는 원격 Streamable HTTP 서버를 지원합니다 — 필드 이름만 다를 뿐입니다. 모든 경우에 URL 끝의 슬래시를 유지하세요.
| 클라이언트 | 구성 위치 | URL 필드 | 전송 표시 | 헤더 필드 |
|---|---|---|---|---|
| Claude Code | claude mcp add | 위치 인수 | --transport http | --header |
| OpenAI Codex CLI | ~/.codex/config.toml | url | 자동 감지 | 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 | 자동 감지 | headers |
| Cline | cline_mcp_settings.json | url | type: "streamableHttp" | headers |
| Windsurf | ~/.codeium/windsurf/mcp_config.json | serverUrl | 자동 감지 | headers |
Claude.ai / Claude Desktop / Claude Tag(Slack)
이러한 표면은 원격 MCP 서버를 커넥터로 추가하며, 원시 요청 헤더 대신 자체 자격 증명 설정을 사용합니다. https://api.rad.security/mcp/을 사용자 지정 커넥터로 추가한 다음 커넥터 설정을 통해 bearer 자격 증명을 제공하세요:
- Claude Tag(Slack):
.mcp.json가 엔드포인트를 가리키는 플러그인으로 서버를 연결하고, Access 번들의 Credentials 탭에 bearer 자격 증명을 추가하세요. Claude Tag — 사용자 지정 MCP 서버 연결 참조. - Claude.ai / Desktop: Settings → Connectors에서 추가하세요. 사용자 지정 커넥터 참조.
테스트(MCP Inspector 또는 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"}}}'
에이전트가 보는 도구 범위 지정
기본적으로 연결은 모든 툴킷을 가져옵니다. 에이전트에게 더 작은 세트를 제공하려면(컨텍스트/토큰 오버헤드 감소 및 최소 권한) Authorization와 함께 해당 연결에 범위 지정 헤더를 추가하세요. 하위 집합이 적용됩니다: 범위를 벗어난 도구는 tools/list에서 숨겨지고 그리고 호출 시 거부됩니다.
| 헤더 | 효과 |
|---|---|
X-Rad-Toolkits: findings, images | 이 툴킷만 |
X-Rad-Exclude-Toolkits: workflows | 이 툴킷을 제외한 모든 툴킷 |
X-Rad-Readonly: true | 읽기 전용 도구만(쓰기 도구 제외) |
툴킷: containers, clusters, audit, images, kubeobject, runtime, findings, inbox, workflows, knowledge_base, radql, dashboards, integrations. 기본적으로 모두 활성화됩니다 — 위의 헤더로 좁히고 모든 쓰기 도구를 제외하려면 X-Rad-Readonly을 사용하세요.
예시 — 읽기 전용 findings/images 에이전트(헤더를 지원하는 모든 클라이언트, 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"
}
}
}
}
Claude Code에서는 추가 --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"
기능
모든 도구는 인증과 RAD Security 계정이 필요합니다. 호스팅 엔드포인트는 기본적으로 아래의 모든 툴킷을 노출합니다. X-Rad-Toolkits / X-Rad-Exclude-Toolkits로 클라이언트 범위를 좁히거나 X-Rad-Readonly: true로 모든 쓰기 도구를 제외하세요.
-
계정 인벤토리
- 클러스터 및 세부 정보 나열
-
컨테이너 인벤토리
- 컨테이너 및 세부 정보 나열
-
보안 Findings
- 보안 findings 나열 및 분석
- 보안 finding의 상태 업데이트
-
런타임 보안
- 실행 중인 컨테이너의 프로세스 트리 가져오기
- 실행 중인 컨테이너의 런타임 베이스라인 가져오기
- 실행 중인 컨테이너의 프로세스 동작 분석
-
감사
- Pod에 셸로 접속한 사용자 나열
-
이미지 및 취약점
- SBOM 가져오기
- 이미지 및 취약점 나열
- 취약점이 가장 많은 이미지 가져오기
- CVE 무시/무시 해제 및 활성 CVE 처리 상태 나열
-
Kubernetes 오브젝트
- 특정 Kubernetes 리소스의 세부 정보 가져오기
- Kubernetes 리소스 나열
-
받은 편지함
- 받은 편지함 항목 및 세부 정보 나열
- 받은 편지함 항목을 오탐(false positive)으로 표시
-
자동화(
workflows)- 자동화, 실행 및 일정 나열
- 자동화 및 실행 세부 정보 가져오기
- 자동화 실행
- 자동화 생성 및 업데이트, cron 일정 추가
"Automation"은 사용자에게 표시되는 제품 이름이고, "workflow"는 API 및 도구 이름이 사용하는 기본 Windmill 오브젝트입니다. 둘은 같은 것입니다.
-
지식 베이스
- 지식 베이스 검색
- 컬렉션 및 문서 나열
- 문서에 대한 구조화된 쿼리 실행
-
대시보드
- 대시보드 나열 및 세부 정보 가져오기
- 대시보드 및 위젯 템플릿 나열 및 가져오기
- 대시보드 생성 및 제자리 업데이트(생략된 필드는 변경되지 않으므로 작은 편집에 전체 대시보드를 다시 보낼 필요 없음)
-
통합
- 외부 통합 나열
-
RadQL(고급 쿼리)
- 쿼리 가능한 데이터 유형 나열(컨테이너, findings, kubernetes_resources 등)
- 특정 데이터 유형의 스키마/메타데이터 가져오기
- 필터 필드의 가능한 값 나열
- 필터링, 검색 및 집계로 RadQL 쿼리 실행
- 구조화된 조건에서 프로그래밍 방식으로 쿼리 구축
- 여러 쿼리를 병렬로 실행
자체 호스팅
서버를 직접 실행하고 싶으신가요 — 예를 들어 에어갭 환경, 데이터 상주 요구 사항, 또는 호스팅 게이트웨이를 거치고 싶지 않은 경우? npm 및 컨테이너 이미지로 게시되어 있습니다.
사전 요구 사항
- Node.js 20.x 이상
자격 증명
환경 변수를 통해 RAD Security 자격 증명을 제공하세요:
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) — 예: 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
툴킷 필터링
자체 호스팅 서버가 노출하는 툴킷 제어:
INCLUDE_TOOLKITS: 포함할 툴킷의 쉼표로 구분된 목록(이것만 활성화됨).EXCLUDE_TOOLKITS: 제외할 툴킷의 쉼표로 구분된 목록(나머지 모두 활성화됨).INCLUDE_TOOLKITS가 설정된 경우 무시됨.
사용 가능한 툴킷: containers, clusters, audit, images, kubeobject, runtime, findings, inbox, workflows, knowledge_base, radql, dashboards, integrations. 기본적으로 모두 활성화됩니다.
# Only the workflows toolkit
INCLUDE_TOOLKITS="workflows"
# Everything except runtime
EXCLUDE_TOOLKITS="runtime"
멀티 테넌트(요청별 인증)
MCP_AUTH_MODE은 streamable HTTP 배포가 인바운드 요청을 인증하는 방식을 제어합니다 — 호스팅 엔드포인트가 사용하는 방식입니다:
MCP_AUTH_MODE=env(기본값) — 모든 세션이RAD_SECURITY_*환경 자격 증명을 사용합니다. 단일 테넌트이며 HTTP 계층에서 인증되지 않으므로 신뢰할 수 없는 네트워크에서 접근할 수 없어야 합니다.MCP_AUTH_MODE=header— 모든 요청이Authorization헤더에 자체 자격 증명을 포함해야 합니다(위의Bearer <access_key_id>:<secret_key>:<account_id>형식). 누락되거나 잘못된 헤더는401로 거부됩니다.TRANSPORT_TYPE=streamable에서만 지원됩니다.RAD_SECURITY_API_URL은 호출자가 아닌 서버 구성에서 가져옵니다.
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 전송(
TRANSPORT_TYPE=sse)은 Streamable HTTP를 위해 더 이상 사용되지 않으며 환경 자격 증명만 사용합니다.
개발
# Install dependencies
npm install
# Run type checking
npm run type-check
# Run linter
npm run lint
# Build
npm run build
라이선스
MIT 라이선스 — 자세한 내용은 LICENSE 파일 참조