A Model Context Protocol (MCP) server that provides an interface to interact with Illumio PCE (Policy Compute Engine). This server enables programmatic access to Illumio workload management, label operations, and traffic flow analysis.
Use conversational AI to talk to your PCE:
git clone [repository-url]
cd illumio-mcp
pip install -r requirements.txt
You should run this using the uv
command, which makes it easier to pass in environment variables and run it in the background.
On MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json
On Windows: %APPDATA%/Claude/claude_desktop_config.json
Add the following to the custom_settings
section:
"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"
}
}
}
}
Resources are not finished yet and i will look into that later.
illumio://workloads
- Get workloads from the PCEillumio://labels
- Get all labels from PCEget-workloads
- Retrieve all workloads from PCEcreate-workload
- Create an unmanaged workload with specified name, IP addresses, and labelsupdate-workload
- Update an existing workload's propertiesdelete-workload
- Remove a workload from PCE by namecreate-label
- Create a new label with key-value pairdelete-label
- Remove an existing label by key-value pairget-labels
- Retrieve all labels from PCEget-traffic-flows
- Get detailed traffic flow data with comprehensive filtering options:
get-traffic-flows-summary
- Get summarized traffic flow information with the same filtering capabilities as get-traffic-flows
get-rulesets
- Get rulesets from the PCE with optional filtering:
get-iplists
- Get IP lists from the PCE with optional filtering:
check-pce-connection
- Verify PCE connectivity and credentialsget-events
- Get events from the PCE with optional filtering:
The server implements comprehensive error handling and logging:
All errors are logged with full stack traces and returned as formatted error messages to the client.
Testing is not implemented yet.
python -m pytest tests/
Set logging level to DEBUG in the code or environment for detailed operation logs.
This project is licensed under the GPL-3.0 License. See the LICENSE file for details.
For support, please create an issue.
All the examples below were generated by Claude Desktop 3.5 Sonnet and with data obtained through this MCP server. I found out that rendering the data to react components is resulting in beautiful visualizations and results.
Detailed view of application communication patterns and dependencies
Analysis of traffic patterns between different application tiers
Overview dashboard showing key infrastructure metrics and status
Detailed analysis of infrastructure service communications
Comprehensive security analysis report
Security assessment findings for high-risk vulnerabilities
PCI compliance assessment findings
SWIFT compliance assessment findings
Overview of security remediation planning
Detailed steps for security remediation implementation
Management interface for IP lists
Overview of ruleset categories and organization
Configuration of application ruleset ordering
Detailed workload analysis and metrics
Identification and analysis of workload traffic patterns
Organization of PCE labels by type and category
Automatic inference of service roles based on traffic patterns
Analysis of top 5 traffic sources and destinations
Project implementation timeline and milestones
The ringfence-application
prompt helps create security policies to isolate and protect applications by controlling inbound and outbound traffic.
Required Arguments:
application_name
: Name of the application to ringfenceapplication_environment
: Environment of the application to ringfenceFeatures:
The analyze-application-traffic
prompt provides detailed analysis of application traffic patterns and connectivity.
Required Arguments:
application_name
: Name of the application to analyzeapplication_environment
: Environment of the application to analyzeAnalysis Features:
Step1: Click "Attach from MCP" button in the interface
Step 2: Choose from installed MCP servers
Step 3: Fill in required prompt arguments:
Step 4: Click Submit to send the configured prompt
This workflow enables automated context sharing between Illumio systems and Claude for application traffic analysis and ringfencing tasks.
The application is available as a Docker container from the GitHub Container Registry.
docker pull ghcr.io/alexgoller/illumio-mcp-server:latest
You can also use a specific version by replacing latest
with a version number:
docker pull ghcr.io/alexgoller/illumio-mcp-server:1.0.0
To use the container with Claude Desktop, you'll need to:
~/.illumio-mcp.env
) with your PCE credentials:PCE_HOST=your-pce-host
PCE_PORT=your-pce-port
PCE_ORG_ID=1
API_KEY=your-api-key
API_SECRET=your-api-secret
On 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"
]
}
}
}
Make sure to:
YOUR_USERNAME
with your actual username~/tmp
)You can also run the container directly:
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
For development or testing, you can use Docker Compose. Create a docker-compose.yml
file:
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
Then run:
docker-compose up
When running the container, you may see syntax warnings from the Illumio SDK's regular expressions. These warnings don't affect functionality and are automatically suppressed in the container.
If you're seeing the warnings when running the container, you can manually suppress them by adding:
docker run \
-e PYTHONWARNINGS=ignore \
... other environment variables ...
ghcr.io/alexgoller/illumio-mcp-server:latest
Or in docker-compose.yml:
services:
illumio-mcp:
environment:
- PYTHONWARNINGS=ignore
# ... other environment variables ...
For Claude Desktop users, add this configuration to your Claude Desktop config file:
{
"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"
]
}
}
}
Make sure to:
YOUR_USERNAME
with your actual username~/tmp
(or adjust the path as needed)~/.illumio-mcp.env
with your PCE credentials:PCE_HOST=your-pce-host
PCE_PORT=your-pce-port
PCE_ORG_ID=1
API_KEY=your-api-key
API_SECRET=your-api-secret
The configuration:
--init
and --rm
Seamless access to top MCP servers powering the future of AI integration.