illumio PCE 对话式AI服务器
一种模型上下文协议服务器,可实现与Illumio PCE的对话式AI交互,用于安全策略管理、工作负载操作、流量分析和合规性评估。
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"illumio-mcp-docker": {
"args": [
"run",
"-i",
"--init",
"--rm",
"-v",
"/Users/YOUR_USERNAME/tmp:/var/log/illumio-mcp",
"-e",
"DOCKER_CONTAINER=true",
"-e",
"PYTHONWARNINGS=ignore",
"--env-file",
"/Users/YOUR_USERNAME/.illumio-mcp.env",
"illumio-mcp:latest"
],
"command": "docker"
}
}
}
该服务需要配置环境变量:API_KEY、API_SECRET、PCE_HOST、PCE_ORG_ID、PCE_PORT
服务介绍
Illumio MCP 服务器
一个提供与 Illumio PCE(策略计算引擎)交互接口的模型上下文协议 (MCP) 服务器。此服务器支持以编程方式访问 Illumio 工作负载管理、标签操作和流量流分析。
它能做什么?
使用对话式 AI 与您的 PCE 对话:
- 创建、更新和删除工作负载
- 创建、更新和删除标签
- 获取流量摘要并对它们进行安全分析
- 获取 PCE 健康状况
先决条件
- Python 3.8+
- 访问 Illumio PCE 实例
- 有效的 PCE API 凭据
安装
- 克隆仓库:
git clone [repository-url]
cd illumio-mcp
- 安装依赖项:
pip install -r requirements.txt
配置
您应该使用 uv 命令来运行它,这使得传递环境变量并在后台运行更加容易。
使用 uv 和 Claude Desktop
在 MacOS 上:~/Library/Application\ Support/Claude/claude_desktop_config.json
在 Windows 上:%APPDATA%/Claude/claude_desktop_config.json
将以下内容添加到 custom_settings 部分:
"mcpServers": {
"illumio-mcp": {
"command": "uv",
"args": [
"--directory",
"/Users/alex.goller/git/illumio-mcp",
"run",
"illumio-mcp"
],
"env": {
"PCE_HOST": "your-pce-host",
"PCE_PORT": "your-pce-port",
"PCE_ORG_ID": "1", # your org id
"API_KEY": "api_key",
"API_SECRET": "api_secret"
}
}
}
}
功能
资源
资源尚未完成,我将在以后研究这个问题。
illumio://workloads- 从 PCE 获取工作负载illumio://labels- 从 PCE 获取所有标签
工具
工作负载管理
get-workloads- 从 PCE 检索所有工作负载create-workload- 使用指定名称、IP 地址和标签创建未管理的工作负载update-workload- 更新现有工作负载的属性delete-workload- 按名称从 PCE 中删除工作负载
标签操作
create-label- 使用键值对创建新标签delete-label- 通过键值对删除现有标签get-labels- 从 PCE 检索所有标签
流量分析
-
get-traffic-flows- 获取具有全面过滤选项的详细流量流数据:- 日期范围过滤
- 源/目标过滤
- 服务(端口/协议)过滤
- 策略决策过滤
- 工作负载和 IP 列表查询选项
- 结果限制
-
get-traffic-flows-summary- 获取与get-traffic-flows相同过滤能力的汇总流量流信息
策略管理
get-rulesets- 从 PCE 获取规则集,并可选过滤:- 按名称过滤
- 按启用状态过滤
IP 列表管理
get-iplists- 从 PCE 获取 IP 列表,并可选过滤:- 按名称过滤
- 按描述过滤
- 按 IP 范围过滤
连接测试
check-pce-connection- 验证 PCE 连接性和凭据
事件管理
get-events- 从 PCE 获取事件,并可选过滤:- 按事件类型过滤(例如,'system_task.expire_service_account_api_keys')
- 按严重性过滤(紧急、警报、临界、错误、警告、通知、信息、调试)
- 按状态过滤(成功、失败)
- 限制返回的结果数量
错误处理
该服务器实现了全面的错误处理和日志记录:
- PCE 连接问题
- API 身份验证失败
- 资源创建/更新失败
- 无效的输入验证
所有错误都会记录完整的堆栈跟踪,并作为格式化的错误消息返回给客户端。
开发
运行测试
测试尚未实现。
python -m pytest tests/
调试模式
在代码或环境中将日志级别设置为 DEBUG,以获取详细的操作日志。
贡献
- 叉分仓库
- 创建一个功能分支
- 提交您的更改
- 推送到该分支
- 创建一个拉取请求
许可证
本项目根据 GPL-3.0 许可证授权。有关详细信息,请参阅 LICENSE 文件。
支持
如需支持,请创建一个问题。
示例
视觉示例
以下所有示例都是通过 Claude Desktop 3.5 Sonnet 生成的,并且数据是通过此 MCP 服务器获得的。我发现将数据渲染为 React 组件会产生漂亮的可视化效果和结果。
应用程序分析

应用程序通信模式和依赖关系的详细视图

不同应用程序层级之间流量模式的分析
基础设施洞察

显示关键基础设施指标和状态的概览仪表板

基础设施服务通信的详细分析
安全评估

全面的安全分析报告

针对高风险漏洞的安全评估发现

PCI 合规性评估发现

SWIFT 合规性评估发现
整改计划

安全整改计划的概览

实施安全整改的具体步骤
策略管理

IP 列表的管理界面

规则集类别的概览和组织

配置应用程序规则集排序
工作负载管理

详细的工作负载分析和指标

工作负载流量模式的识别和分析
标签管理

按类型和类别组织的PCE标签
服务分析

基于流量模式自动推断服务角色

分析前五名流量来源和目的地
项目规划

项目实施时间线和里程碑
可用提示
环绕应用
ringfence-application 提示有助于通过控制入站和出站流量来隔离和保护应用程序,从而创建安全策略。
必需参数:
application_name: 需要环绕的应用程序名称application_environment: 需要环绕的应用程序环境
功能:
- 为应用程序内层间的通信创建规则
- 使用流量流识别所需的外部连接
- 根据源应用程序实施入站流量限制
- 为必要的外部通信创建出站流量规则
- 处理同范围(同一应用/环境)和跨范围(外部)连接
- 为远程应用程序连接创建独立的规则集
分析应用程序流量
analyze-application-traffic 提示提供了对应用程序流量模式和连接性的详细分析。
必需参数:
application_name: 需要分析的应用程序名称application_environment: 需要分析的应用程序环境
分析功能:
- 按入站和出站流量排序
- 按应用程序/环境/角色组合分组
- 识别相关的标签类型和模式
- 以React组件格式显示结果
- 显示协议和端口信息
- 尝试识别已知的服务模式(例如,Nagios在端口5666上)
- 将流量分类为基础设施和应用程序类型
- 确定互联网暴露情况
- 显示Illumio的角色、应用程序和环境标签
如何使用MCP提示
步骤1: 在界面中点击“从MCP附加”按钮

步骤2: 从已安装的MCP服务器中选择

步骤3: 填写所需提示参数:

步骤4: 点击提交以发送配置好的提示
提示如何工作
- MCP服务器将配置好的提示发送给Claude
- Claude通过模型上下文协议接收上下文
- 允许专门处理Illumio特定的任务
此工作流程实现了Illumio系统与Claude之间的自动化上下文共享,用于应用程序流量分析和环绕任务。
Docker
该应用程序作为Docker容器从GitHub Container Registry提供。
拉取容器
docker pull ghcr.io/alexgoller/illumio-mcp-server:latest
你可以通过将 latest 替换为特定版本号来使用特定版本:
docker pull ghcr.io/alexgoller/illumio-mcp-server:1.0.0
使用 Claude Desktop 运行
要使用 Claude Desktop 运行容器,你需要:
- 创建一个环境文件(例如
~/.illumio-mcp.env),并在其中添加你的 PCE 凭证:
PCE_HOST=your-pce-host
PCE_PORT=your-pce-port
PCE_ORG_ID=1
API_KEY=your-api-key
API_SECRET=your-api-secret
- 在你的 Claude Desktop 配置文件中添加以下配置:
在 MacOS 上(~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"illumio-mcp-docker": {
"command": "docker",
"args": [
"run",
"-i",
"--init",
"--rm",
"-v",
"/Users/YOUR_USERNAME/tmp:/var/log/illumio-mcp",
"-e",
"DOCKER_CONTAINER=true",
"-e",
"PYTHONWARNINGS=ignore",
"--env-file",
"/Users/YOUR_USERNAME/.illumio-mcp.env",
"illumio-mcp:latest"
]
}
}
}
请确保:
- 将
YOUR_USERNAME替换为你的实际用户名 - 创建日志目录(例如
~/tmp) - 根据你的系统调整路径
独立运行
你也可以直接运行容器:
docker run -i --init --rm \
-v /path/to/logs:/var/log/illumio-mcp \
-e DOCKER_CONTAINER=true \
-e PYTHONWARNINGS=ignore \
--env-file ~/.illumio-mcp.env \
ghcr.io/alexgoller/illumio-mcp-server:latest
Docker Compose
对于开发或测试,你可以使用 Docker Compose。创建一个 docker-compose.yml 文件:
version: '3'
services:
illumio-mcp:
image: ghcr.io/alexgoller/illumio-mcp-server:latest
init: true
volumes:
- ./logs:/var/log/illumio-mcp
environment:
- DOCKER_CONTAINER=true
- PYTHONWARNINGS=ignore
env_file:
- ~/.illumio-mcp.env
然后运行:
docker-compose up
已知问题
在运行容器时,你可能会看到来自 Illumio SDK 正则表达式的语法警告。这些警告不会影响功能,并且在容器中会被自动抑制。
如果你在运行容器时看到了这些警告,可以通过添加以下内容手动抑制它们:
docker run \
-e PYTHONWARNINGS=ignore \
... other environment variables ...
ghcr.io/alexgoller/illumio-mcp-server:latest
或者在 docker-compose.yml 中:
services:
illumio-mcp:
environment:
- PYTHONWARNINGS=ignore
# ... other environment variables ...
Claude Desktop 配置
对于 Claude Desktop 用户,请向你的 Claude Desktop 配置文件中添加如下配置:
{
"mcpServers": {
"illumio-mcp-docker": {
"command": "docker",
"args": [
"run",
"-i",
"--init",
"--rm",
"-v",
"/Users/YOUR_USERNAME/tmp:/var/log/illumio-mcp",
"-e",
"DOCKER_CONTAINER=true",
"-e",
"PYTHONWARNINGS=ignore",
"--env-file",
"/Users/YOUR_USERNAME/.illumio-mcp.env",
"illumio-mcp:latest"
]
}
}
}
请确保:
- 将
YOUR_USERNAME替换为你的实际用户名 - 在
~/tmp创建日志目录(或根据需要调整路径) - 在
~/.illumio-mcp.env创建一个包含你的 PCE 凭证的环境文件:
PCE_HOST=your-pce-host
PCE_PORT=your-pce-port
PCE_ORG_ID=1
API_KEY=your-api-key
API_SECRET=your-api-secret
该配置:
- 使用 Docker 来运行容器
- 挂载本地目录用于日志记录
- 抑制 Python 警告
- 从环境文件加载 PCE 凭证
- 通过
--init和--rm启用正确的容器清理