WatsonX Orchestrate+QRadar MCP演示
本地演示连接 WatsonX Orchestrate开发者版 到 IBM QRadar MCP服务器 在Docker中运行。MCP服务器使用基本身份验证(用户名/密码)通过VPN访问QRadar API。
Agent in wxo integrated to Qradar
建筑
MacBook Host
├── VPN ──────────────────────────────────────────► QRadar API
├── Docker: qradar-mcp-server (port 8008)
│ ├── Basic auth to QRadar (QRADAR_USERNAME + QRADAR_PASSWORD)
│ └── Bearer auth for MCP endpoint (MCP_API_KEY)
└── Docker: WXO Developer Edition
└── Calls MCP tools via http://host.docker.internal:8008/sse先决条件
- Docker(Rancher Desktop或Colima)
- Python 3.11
ibm-watsonx-orchestrate安装 - 已连接VPN(用于QRadar访问)
______________________________________________________________________
步骤1--配置凭据
复制 .env.template 到 .env 并填写您的值:
cp .env.template .env# WatsonX Orchestrate Developer Edition
WO_DEVELOPER_EDITION_SOURCE=orchestrate
WO_INSTANCE=
WO_API_KEY=
# QRadar API (Basic auth — username/password)
QRADAR_HOST=https://
QRADAR_USERNAME=
QRADAR_PASSWORD=
QRADAR_VERIFY_SSL=false
# MCP server Bearer token — WXO authenticates to the MCP server with this
MCP_API_KEY=______________________________________________________________________
步骤2--克隆并构建QRadar MCP服务器
cd docker/qradar-mcp-server
git clone https://github.com/IBM/qradar-mcp-server.git qradar-mcp-server构建和启动:
docker-compose --env-file ../../.env up -d --build验证它是否正常工作:
# Health check (no auth required)
curl http://localhost:8008/health
# Tool list (auth required)
curl -H "Authorization: Bearer " http://localhost:8008/tools
# Test a real QRadar query
curl -X POST http://localhost:8008/tools/call \
-H "Authorization: Bearer " \
-H "Content-Type: application/json" \
-d '{"name": "qradar_get", "arguments": {"endpoint": "/siem/offenses", "range": "0-4"}}'______________________________________________________________________
步骤3--启动WatsonX Orchestrate开发人员版
在终端中(venv已激活):
source venv/bin/activate
orchestrate env activate local
orchestrate server start --env-file=.env等待: Orchestrate services initialized successfully
______________________________________________________________________
步骤4——注册MCP连接
在新的终端选项卡中:
source venv/bin/activate
orchestrate env activate local
# Create connection entry
orchestrate connections add --app-id qradar-mcp-conn
# Configure as bearer auth
orchestrate connections configure \
--app-id qradar-mcp-conn \
--kind bearer \
--type team \
--env draft \
--url http://host.docker.internal:8008
# Set the bearer token
orchestrate connections set-credentials \
--app-id qradar-mcp-conn \
--env draft \
--token ______________________________________________________________________
步骤5——导入QRadar MCP工具包
orchestrate toolkits add \
--kind mcp \
--name qradar-toolkit \
--description "IBM QRadar SIEM tools via MCP" \
--url http://host.docker.internal:8008/sse \
--transport sse \
--app-id qradar-mcp-conn验证:
orchestrate toolkits list______________________________________________________________________
步骤6——导入并部署QRadar代理
orchestrate agents import -f adk-project/agents/qradar-agent.yaml
orchestrate agents deploy -n QRadar_Security_Agent______________________________________________________________________
步骤7——启动聊天界面
orchestrate chat start选择 QRadar_安全_代理 并尝试:
- “显示最新的公开违规行为”
- “严重程度超过7级”
- “显示网络活动的可用QRadar API终结点”
______________________________________________________________________
项目结构
.
├── .env # Credentials (never commit)
├── adk-project/
│ └── agents/
│ └── qradar-agent.yaml # QRadar Security Agent definition
└── docker/
└── qradar-mcp-server/
├── Dockerfile # Built from cloned GitHub source
├── docker-compose.yml # Runs MCP server on port 8008
└── src/ # MCP server source (cloned from GitHub)
├── server.py # HTTP/SSE server + Bearer auth
├── config.py # Env var loading (SEC token or Basic auth)
├── auth.py # Auth header builder
├── client.py # QRadar REST API client
└── tools.py # 4 MCP tools (get/delete/discover/execute)对上游QRadar MCP服务器的修改
这 docker/qradar-mcp-server/src/ 在此存储库中跟踪目录,并在其上应用以下更改 IBM/qradar mcp服务器:
src/auth.py
除了现有的SEC令牌模式外,还添加了基本身份验证支持。优先级:SEC令牌(QRADAR_API_TOKEN)如果已设置,否则为基本身份验证(QRADAR_USERNAME + QRADAR_PASSWORD).
# Basic auth header generated as:
Authorization: Basic base64(QRADAR_USERNAME:QRADAR_PASSWORD)src/config.py
添加 QRADAR_USERNAME 和 QRADAR_PASSWORD env变量读取。两者都传递给 QRadarAuth 通过 headers 财产。
src/client.py
添加 username 和 password 构造函数参数,转发给 QRadarConfig.
______________________________________________________________________
备注
network_mode: "host"仅限Linux——docker compose使用端口映射,WXO通过以下方式到达MCP服务器host.docker.internal:8008- MCP服务器支持两种QRadar身份验证模式:SEC令牌(
QRADAR_API_TOKEN)或基本身份验证(QRADAR_USERNAME+QRADAR_PASSWORD) - 端口8001已在使用中(Lima/WXO),因此MCP服务器被映射到 8008 在主机上
