Illumio
About
Integrates with Illumio's Policy Compute Engine API to enable workload management, label operations, and traffic analysis for zero trust security environments.
Details
- Author
- alexgoller
- Repository
- alexgoller/illumio-mcp-server
- GitHub stars
- 1
- Downloads
- 296
- License
- Other
- Categories
- Cloud Service, Infrastructure, Security, Productivity, Developer Tools, Design, Workplace, AI, Communication, API, Other
Jump to
- Full CRUD on workloads, labels, IP lists, services, and rulesets
- Traffic flow analysis with filtering by policy decision
- Automated ringfencing — app-to-app segmentation policies in one command
- Selective enforcement with configurable consumer flavors
- Infrastructure service identification via graph centrality analysis
- Deny rule management including override deny for emergencies
- Event monitoring with severity and type filters
- PCE health checks for connectivity and credentials verification
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
IllumioCommand (node, npx, python, etc.)uvArguments-
Argument 1
--directory -
Argument 2
/path/to/illumio-mcp-server -
Argument 3
run -
Argument 4
illumio-mcp
Environment-
API_KEY
api_key -
PCE_HOST
your-pce-host -
PCE_PORT
your-pce-port -
API_SECRET
api_secret -
PCE_ORG_ID
1
Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
-
Argument 1
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
You should run this using the uv command, which makes it easier to pass in environment variables and run it in the background.
export MCP_PUBLIC_URL=https://mcp.illumio.example
export MCP_OAUTH_ISSUER=https://login.microsoftonline.com/<tenant-id>/v2.0
export MCP_OAUTH_JWKS_URL=https://login.microsoftonline.com/<tenant-id>/discovery/v2.0/keys
export MCP_OAUTH_AUDIENCE=https://mcp.illumio.example
export MCP_OAUTH_REQUIRED_SCOPE=illumio-mcp.use # default; override if needed
illumio-mcp-http --host 127.0.0.1 --port 8080
The server refuses to start without these env vars (unless MCP_DEV_INSECURE=1).
MCP clients discover the AS via the standard RFC 9728 endpoint:
GET /.well-known/oauth-protected-resource
Unauthenticated requests to /mcp return 401 with
WWW-Authenticate: Bearer resource_metadata="<URL>", which any spec-compliant
MCP client (Claude Desktop, ChatGPT, MCP Inspector) follows automatically to
run PKCE auth code flow against the configured AS.
MCP_DEV_INSECURE=1 illumio-mcp-http
The server logs a prominent warning. Do NOT use in production.
export MCP_PCE_MODE=shared
export PCE_HOST=https://your-pce.example.com
export PCE_PORT=8443
export PCE_ORG_ID=1
export API_KEY=your_pce_api_key_name
export API_SECRET=your_pce_api_key_secret
get-workloads
Retrieve workloads with optional filtering by name, hostname, IP, labels, and max results.
create-workload
Create an unmanaged workload with name, IP addresses, and labels.
update-workload
Update an existing workload's properties.
delete-workload
Remove a workload from PCE.
get-labels
Retrieve labels with optional filtering by key, value, and max results.
create-label
Create a new label with key-value pair.
update-label
Update an existing label.
delete-label
Remove a label.
get-rulesets
Get rulesets with optional filtering by name, description, and enabled status.
create-ruleset
Create a new ruleset with scopes.
update-ruleset
Update ruleset properties.
delete-ruleset
Remove a ruleset.
create-deny-rule
Create a deny rule (regular or override deny) in a ruleset.
update-deny-rule
Update an existing deny rule.
delete-deny-rule
Remove a deny rule.
get-iplists
Get IP lists with optional filtering by name, description, FQDN, and max results.
create-iplist
Create a new IP list.
update-iplist
Update an existing IP list.
delete-iplist
Remove an IP list.
get-services
Get services with optional filtering by name, port, protocol, and max results.
create-service
Create a new service definition.
update-service
Update an existing service.
delete-service
Remove a service.
get-traffic-flows
Get detailed traffic flow data with filtering by date range, source/destination, service, policy decision, and more.
get-traffic-flows-summary
Get aggregated traffic summaries grouped by app, env, port, and protocol.
create-ringfence
Automated app-to-app segmentation policy creation, analyzing traffic flows to create a ruleset with allow and deny rules.
identify-infrastructure-services
Discover which apps are infrastructure services by analyzing traffic patterns.
provision-policy
Provision pending draft changes to move them from draft to active state.
compare-draft-active
Compare draft vs active policy to preview what would change on provisioning.
enforcement-readiness
Assess whether an app is ready for enforcement, returning a readiness score with actionable recommendations.
ringfence-batch
Ringfence multiple apps at once with optional infrastructure service identification.
get-workload-enforcement-status
Get enforcement mode status across workloads, grouped by app and environment.
get-policy-coverage-report
Generate a policy coverage report for an app showing what traffic is covered by existing rules.
find-unmanaged-traffic
Find traffic involving unmanaged workloads or IP addresses.
detect-lateral-movement-paths
Detect potential lateral movement paths by analyzing app-to-app traffic patterns.
compliance-check
Check policy compliance against frameworks and returns a compliance score with per-check findings.
get-events
Get PCE events with optional filtering by event type, severity, status, and result limits.
check-pce-connection
Verify PCE connectivity and credentials.
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"illumio": {
"env": {
"API_KEY": "api_key",
"PCE_HOST": "your-pce-host",
"PCE_PORT": "your-pce-port",
"API_SECRET": "api_secret",
"PCE_ORG_ID": "1"
},
"args": [
"--directory",
"/path/to/illumio-mcp-server",
"run",
"illumio-mcp"
],
"command": "uv"
}
}
}
Linux
{
"env": {
"API_KEY": "api_key",
"PCE_HOST": "your-pce-host",
"PCE_PORT": "your-pce-port",
"API_SECRET": "api_secret",
"PCE_ORG_ID": "1"
},
"args": [
"--directory",
"/path/to/illumio-mcp-server",
"run",
"illumio-mcp"
],
"command": "uv"
}
Macos
{
"env": {
"API_KEY": "api_key",
"PCE_HOST": "your-pce-host",
"PCE_PORT": "your-pce-port",
"API_SECRET": "api_secret",
"PCE_ORG_ID": "1"
},
"args": [
"--directory",
"/path/to/illumio-mcp-server",
"run",
"illumio-mcp"
],
"command": "uv"
}
Windows
{
"env": {
"API_KEY": "api_key",
"PCE_HOST": "your-pce-host",
"PCE_PORT": "your-pce-port",
"API_SECRET": "api_secret",
"PCE_ORG_ID": "1"
},
"args": [
"--directory",
"/path/to/illumio-mcp-server",
"run",
"illumio-mcp"
],
"command": "uv"
}
Illumio MCP Server
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, traffic flow analysis, automated ringfencing, and infrastructure service identification.
<a href="https://glama.ai/mcp/servers/xhqzxlo9iy">
</a>
What can it do?
Use conversational AI to talk to your PCE:
- Full CRUD on workloads, labels, IP lists, services, and rulesets
- Traffic analysis — query flows, get summaries, filter by policy decision
- Automated ringfencing — analyze traffic and create app-to-app segmentation policies with one command
- Selective enforcement — add deny rules for apps in selective mode with configurable consumer flavors
- Infrastructure service identification — discover which apps are infrastructure services using graph centrality analysis, so you know what to policy first
- Deny rule management — create, update, and delete deny rules (including override deny for emergencies)
- Event monitoring — query PCE events with severity and type filters
- PCE health checks — verify connectivity and credentials
Prerequisites
- Python 3.8+
- Access to an Illumio PCE instance
- Valid API credentials for the PCE
Installation
1. Clone the repository:
git clone https://github.com/alexgoller/illumio-mcp-server.git
cd illumio-mcp-server
2. Install dependencies:
uv sync
Configuration
You should run this using the uv command, which makes it easier to pass in environment variables and run it in the background.
Using uv and Claude Desktop
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",
"/path/to/illumio-mcp-server",
"run",
"illumio-mcp"
],
"env": {
"PCE_HOST": "your-pce-host",
"PCE_PORT": "your-pce-port",
"PCE_ORG_ID": "1",
"API_KEY": "api_key",
"API_SECRET": "api_secret"
}
}
}
}
HTTP transport with OAuth Resource Server (Phase 3a)
The server runs over HTTP using the MCP Streamable HTTP transport (spec rev
2025-03-26) and validates OAuth 2.1 bearer tokens issued by your IdP. This is
Phase 3a: identity is enforced; per-user PCE keys land in Phase 3b.
Running with auth (production-shaped)
export MCP_PUBLIC_URL=https://mcp.illumio.example
export MCP_OAUTH_ISSUER=https://login.microsoftonline.com/<tenant-id>/v2.0
export MCP_OAUTH_JWKS_URL=https://login.microsoftonline.com/<tenant-id>/discovery/v2.0/keys
export MCP_OAUTH_AUDIENCE=https://mcp.illumio.example
export MCP_OAUTH_REQUIRED_SCOPE=illumio-mcp.use # default; override if needed
illumio-mcp-http --host 127.0.0.1 --port 8080
The server refuses to start without these env vars (unless MCP_DEV_INSECURE=1).
MCP clients discover the AS via the standard RFC 9728 endpoint:
GET /.well-known/oauth-protected-resource
Unauthenticated requests to /mcp return 401 with
WWW-Authenticate: Bearer resource_metadata="<URL>", which any spec-compliant
MCP client (Claude Desktop, ChatGPT, MCP Inspector) follows automatically to
run PKCE auth code flow against the configured AS.
Running without auth (dev only)
MCP_DEV_INSECURE=1 illumio-mcp-http
The server logs a prominent warning. Do NOT use in production.
Health endpoints (always unauthenticated)
- GET /healthz — liveness
- GET /readyz — readiness (Phase 3a returns the same as healthz; Phase 3b/c will add PCE + JWKS reachability)
Two PCE modes (Phase 3b vs Phase 3e)
The HTTP server supports two ways to source PCE credentials, selected via
MCP_PCE_MODE:
| Mode | MCP_PCE_MODE | PCE creds | Onboarding | PCE-side audit |
|---|---|---|---|---|
| Per-user (default) | per_user | One PCE API key per authenticated user, encrypted in keystore | User registers via /setup page or register-pce-credentials tool | PCE logs show the real human via per-user API key |
| Shared | shared | One PCE service-account key from env (same as stdio) | None — works immediately for any authenticated user | PCE logs show the service account; the MCP audit log is the source of truth for "who did what" |
Choose per-user when:
- You want PCE-side audit attribution to identify the human
- Users are happy to provide their own PCE API key once
- You can tolerate the per-user PCE key sprawl (PCE has limits)
Choose shared when:
- The PCE limits API keys per user too aggressively for per-user mode
- You want zero-friction onboarding (no /setup step)
- You're OK relying on the MCP audit log alone for human-level attribution
- You operate the PCE service account yourself and rotate it on a schedule
In shared mode, /setup is not mounted, the credential-management tools
(register-pce-credentials, delete-pce-credentials) refuse with a friendly
error, and MCP_KEK is not required. SSO + JWT + role-based authz + audit
log + confirm tokens all still apply identically.
```bash
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.
