Illumio MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| API_KEY | Yes | The Illumio API Key | |
| PCE_HOST | Yes | The Illumio PCE host address (e.g., your-pce-host) | |
| PCE_PORT | Yes | The Illumio PCE port (e.g., 8443) | |
| API_SECRET | Yes | The Illumio API Secret | |
| PCE_ORG_ID | Yes | The Illumio PCE Organization ID (e.g., 1) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get-workloadsB | Get workloads from the PCE. Use detail_level to control breadth vs depth: 'compact' (default) for tabular overviews of thousands of workloads, 'full' for complete data on specific workloads, 'labels_only' for maximum breadth with just identity and labels. |
| update-workloadA | Update a workload in the PCE. Identify by href (preferred) or name. Provide only fields you want to change. WRITE OPERATION: changes PCE state. In clients that gate tool calls (Claude Desktop, Claude Code), this pauses for the user to approve it -- the call has not failed and must not be retried while waiting. |
| get-labelsA | Get labels from the PCE with optional filtering |
| create-workloadA | Create a Illumio Core unmanaged workload in the PCE WRITE OPERATION: changes PCE state. In clients that gate tool calls (Claude Desktop, Claude Code), this pauses for the user to approve it -- the call has not failed and must not be retried while waiting. |
| create-labelB | Create a label of a specific type and the value in the PCE WRITE OPERATION: changes PCE state. In clients that gate tool calls (Claude Desktop, Claude Code), this pauses for the user to approve it -- the call has not failed and must not be retried while waiting. |
| delete-labelA | Delete a label in the PCE WRITE OPERATION: changes PCE state. In clients that gate tool calls (Claude Desktop, Claude Code), this pauses for the user to approve it -- the call has not failed and must not be retried while waiting. |
| delete-workloadA | Delete a workload from the PCE. Identify by href (preferred) or name. WRITE OPERATION: changes PCE state. In clients that gate tool calls (Claude Desktop, Claude Code), this pauses for the user to approve it -- the call has not failed and must not be retried while waiting. |
| get-traffic-flowsC | Get traffic flows from the PCE with comprehensive filtering options |
| discover-process-egressA | Find which processes talk to destinations outside this PCE's managed estate - the shadow-IT / unsanctioned-egress question. Returns ranked findings of process -> external destination with port, protocol, the user, current policy decision and volume, preferring an FQDN over a bare IP where the PCE resolved one. Use this instead of get-traffic-flows when the question is 'what is talking out', not 'show me all traffic'. |
| get-traffic-flows-summaryA | Summarize traffic flows as structured JSON. Sections: by_process (which binary talks to which destination, on which port, under which policy, and as which user), external_destinations (traffic leaving the managed estate), blocked (what policy is stopping), app_to_app (coarse view). Prefer this over get-traffic-flows for analysis - it is far smaller and answers the usual questions directly. |
| check-pce-connectionB | Are my credentials and the connection to the PCE working? |
| get-rulesetsA | Get rulesets from the PCE with optional filtering |
| get-iplistsB | Get IP lists from the PCE with optional filtering |
| get-eventsB | Get events from the PCE with optional filtering |
| create-rulesetA | Create a ruleset in the PCE with support for ring-fencing patterns WRITE OPERATION: changes PCE state. In clients that gate tool calls (Claude Desktop, Claude Code), this pauses for the user to approve it -- the call has not failed and must not be retried while waiting. |
| create-deny-ruleA | Create a deny rule in an existing ruleset. Deny rules block specific traffic (processed after allow rules). Override deny rules (override_deny=true) are the HIGHEST priority — they block traffic even when allow rules exist, meaning 'this must not happen under any circumstances.' Use override deny for emergency isolation, hard compliance blocks, or active attack response — NOT for normal segmentation or ringfencing. Rule processing order: 1) Essential rules, 2) Override Deny (blocks above all), 3) Allow rules, 4) Deny rules, 5) Default action. WRITE OPERATION: changes PCE state. In clients that gate tool calls (Claude Desktop, Claude Code), this pauses for the user to approve it -- the call has not failed and must not be retried while waiting. |
| get-servicesB | Get services from the PCE with optional filtering |
| create-serviceA | Create a service in the PCE. Supply at least one of service_ports, windows_services or windows_egress_services. windows_egress_services matches a process on the consumer side and needs a Windows VEN there. WRITE OPERATION: changes PCE state. In clients that gate tool calls (Claude Desktop, Claude Code), this pauses for the user to approve it -- the call has not failed and must not be retried while waiting. |
| update-serviceA | Update an existing service in the PCE. Identify by href (preferred) or name. WRITE OPERATION: changes PCE state. In clients that gate tool calls (Claude Desktop, Claude Code), this pauses for the user to approve it -- the call has not failed and must not be retried while waiting. |
| delete-serviceA | Delete a service from the PCE. Identify by href (preferred) or name. WRITE OPERATION: changes PCE state. In clients that gate tool calls (Claude Desktop, Claude Code), this pauses for the user to approve it -- the call has not failed and must not be retried while waiting. |
| update-deny-ruleA | Update an existing deny rule in a ruleset. Identify the rule by its href. WRITE OPERATION: changes PCE state. In clients that gate tool calls (Claude Desktop, Claude Code), this pauses for the user to approve it -- the call has not failed and must not be retried while waiting. |
| update-sec-ruleA | Update an allow rule inside a ruleset, identified by its href. Only the fields you supply change. Use this to refine a rule in place — swapping an inline port for a process-qualified service, for example — instead of rebuilding the ruleset. For deny rules use update-deny-rule. WRITE OPERATION: changes PCE state. In clients that gate tool calls (Claude Desktop, Claude Code), this pauses for the user to approve it -- the call has not failed and must not be retried while waiting. |
| delete-sec-ruleA | Delete a single allow rule from a ruleset, leaving the rest of the ruleset intact. For deny rules use delete-deny-rule. WRITE OPERATION: changes PCE state. In clients that gate tool calls (Claude Desktop, Claude Code), this pauses for the user to approve it -- the call has not failed and must not be retried while waiting. |
| delete-deny-ruleA | Delete a deny rule from a ruleset by its href WRITE OPERATION: changes PCE state. In clients that gate tool calls (Claude Desktop, Claude Code), this pauses for the user to approve it -- the call has not failed and must not be retried while waiting. |
| update-labelA | Update an existing label in the PCE. Provide either: 1) href + new_value (optionally with key), or 2) key + value + new_value to identify and update the label. WRITE OPERATION: changes PCE state. In clients that gate tool calls (Claude Desktop, Claude Code), this pauses for the user to approve it -- the call has not failed and must not be retried while waiting. |
| create-iplistA | Create a new IP List in the PCE WRITE OPERATION: changes PCE state. In clients that gate tool calls (Claude Desktop, Claude Code), this pauses for the user to approve it -- the call has not failed and must not be retried while waiting. |
| update-iplistA | Update an existing IP List in the PCE. Provide either 'href' or 'name' (but not both) to identify the IP List. WRITE OPERATION: changes PCE state. In clients that gate tool calls (Claude Desktop, Claude Code), this pauses for the user to approve it -- the call has not failed and must not be retried while waiting. |
| delete-iplistA | Delete an IP List from the PCE. Provide either 'href' or 'name' (but not both) to identify the IP List. WRITE OPERATION: changes PCE state. In clients that gate tool calls (Claude Desktop, Claude Code), this pauses for the user to approve it -- the call has not failed and must not be retried while waiting. |
| update-rulesetA | Update an existing ruleset in the PCE. Provide either 'href' or 'name' (but not both) to identify the ruleset. WRITE OPERATION: changes PCE state. In clients that gate tool calls (Claude Desktop, Claude Code), this pauses for the user to approve it -- the call has not failed and must not be retried while waiting. |
| delete-rulesetA | Delete a ruleset from the PCE by its href WRITE OPERATION: changes PCE state. In clients that gate tool calls (Claude Desktop, Claude Code), this pauses for the user to approve it -- the call has not failed and must not be retried while waiting. |
| create-ringfenceA | Create a ringfencing policy for an application. This analyzes traffic flows to discover which other apps communicate with this app, then creates a ruleset with:
|
| identify-infrastructure-servicesA | Analyze traffic flows to identify infrastructure services in your environment. Builds an app-to-app communication graph and computes centrality metrics to rank apps by how 'infrastructure-like' they are. Infrastructure services (DNS, AD, logging, monitoring platforms, shared databases) are consumed by many apps and should be policy'd first during segmentation rollouts. Returns a ranked list with scores, classification tiers, and connectivity details. |
| provision-policyA | Provision pending draft policy changes in the PCE. This moves draft rulesets, rules, IP lists, services, and label groups from draft to active state. You can provision all pending changes or specific items by href. WRITE OPERATION: changes PCE state. In clients that gate tool calls (Claude Desktop, Claude Code), this pauses for the user to approve it -- the call has not failed and must not be retried while waiting. Additionally requires an explicit confirm token, so it takes two steps: the first call returns a token to be passed back in the second. |
| compare-draft-activeA | Compare draft vs active policy to see what would change on provisioning. Shows new, modified, and deleted rulesets, rules, IP lists, and services. |
| enforcement-readinessA | Assess whether an application is ready for enforcement by analyzing its traffic flows, existing policy coverage, and identifying potential gaps. Provides a readiness score and actionable recommendations. |
| ringfence-batchA | Create ringfence policies for multiple applications at once. Optionally auto-discovers infrastructure services and ringfences them first, then standard apps. Uses the same logic as create-ringfence for each app. WRITE OPERATION: changes PCE state. In clients that gate tool calls (Claude Desktop, Claude Code), this pauses for the user to approve it -- the call has not failed and must not be retried while waiting. Additionally requires an explicit confirm token, so it takes two steps: the first call returns a token to be passed back in the second. |
| get-workload-enforcement-statusA | Get enforcement mode status across all workloads, grouped by application and environment. Shows counts per enforcement mode and identifies apps with mixed enforcement states. |
| get-policy-coverage-reportB | Generate a policy coverage report for an app, showing what traffic is covered by existing rules vs what would be blocked. Helps understand how much of an app's traffic is already policy'd. |
| find-unmanaged-trafficA | Find traffic involving unmanaged (unlabeled) workloads or IP addresses. These are sources or destinations without app/env labels, representing potential policy blind spots. |
| detect-lateral-movement-pathsA | Analyze traffic patterns to detect potential lateral movement paths — chains of connections that could allow an attacker to pivot between applications. Identifies apps that serve as bridges between otherwise disconnected app groups. |
| compliance-checkC | Check policy compliance against common frameworks (PCI-DSS, NIST, CIS). Identifies workloads in specific compliance scopes and verifies that segmentation policies meet framework requirements. |
| get-container-workload-profilesB | Get Container Workload Profiles for a container cluster. These profiles control how Kubernetes pods are managed by Illumio — mapping K8s namespaces to Illumio labels and enforcement modes. |
| update-container-workload-profileA | Update a Container Workload Profile to manage Kubernetes pods in Illumio. Set managed=true and assign labels to start managing pods in a namespace. WRITE OPERATION: changes PCE state. In clients that gate tool calls (Claude Desktop, Claude Code), this pauses for the user to approve it -- the call has not failed and must not be retried while waiting. |
| get-kubernetes-workloadsB | Get Kubernetes Workloads (CLAS mode) from a container cluster. Shows Deployments, Services, and other K8s objects managed by Illumio with their labels and policy sync state. |
| get-container-clustersA | Get container clusters (Kubernetes/OpenShift) registered in the PCE. Shows cluster name, CLAS mode, online status, kubelink version, and node count. |
| get-pairing-profilesA | Get pairing profiles from the PCE. Pairing profiles define the initial enforcement mode and labels for VENs when they pair with the PCE. |
| register-pce-credentialsA | Register (or overwrite) PCE credentials for the current authenticated user. After registering, all PCE tools become available in this session. WRITE OPERATION: changes PCE state. In clients that gate tool calls (Claude Desktop, Claude Code), this pauses for the user to approve it -- the call has not failed and must not be retried while waiting. |
| delete-pce-credentialsA | Remove the current user's stored PCE credentials. Idempotent — safe to call even if no credentials are stored. WRITE OPERATION: changes PCE state. In clients that gate tool calls (Claude Desktop, Claude Code), this pauses for the user to approve it -- the call has not failed and must not be retried while waiting. |
| check-pce-credentials-statusA | Check whether PCE credentials are registered for the current user without revealing the secret values. |
| get-server-changelogA | What changed in this MCP server. Call this when tool behaviour does not match what you expect, after the server has been updated mid-session, or before relying on assumptions formed earlier in a long session -- a cached tools/list and remembered response shapes are not refreshed when the server changes. The |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| ringfence-application | Ringfence an application by deploying rulesets to limit the inbound and outbound traffic |
| analyze-application-traffic | Analyze the traffic flows for an application and environment |
| emergency-isolate-application | Emergency isolation of an application using override deny rules — blocks ALL traffic to/from the app immediately, overriding any existing allow rules. Use only for security incidents. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Server changelog | What changed in this MCP server, including behaviour changes that invalidate assumptions a long-running session may still be holding. |
| Illumio Rule Processing Order | How Illumio processes rules — essential for understanding policy behavior |
| Illumio Enforcement Modes | Enforcement modes control how policy rules affect workload traffic |
| Illumio Segmentation & Ringfencing | Core concepts for application segmentation and ringfencing |
| Illumio Draft vs Active Policy | Understanding draft and active policy states and provisioning |
| PCI-DSS Segmentation & Visibility Requirements | PCI-DSS v4.0 requirements mapped to Illumio segmentation and visibility controls |
| DORA (Digital Operational Resilience Act) Requirements | EU DORA regulation mapped to Illumio segmentation and operational resilience controls |
| NIST 800-53 Security Controls | NIST 800-53 Rev 5 controls mapped to Illumio segmentation capabilities |
| ISO 27001:2022 Controls | ISO 27001:2022 Annex A controls mapped to Illumio segmentation capabilities |
| SWIFT Customer Security Programme (CSP) | SWIFT CSP controls mapped to Illumio segmentation for financial messaging security |
| CIS Controls v8 | CIS Critical Security Controls v8 mapped to Illumio segmentation capabilities |
| HIPAA Security Rule | HIPAA Security Rule requirements mapped to Illumio segmentation for healthcare data protection |
| Segmentation Methodology & Best Practices | General methodology for implementing micro-segmentation with Illumio across any compliance framework |
| PCE & VEN Architecture | Illumio platform architecture — PCE (Policy Compute Engine) and VEN (Virtual Enforcement Node) components, deployment models, and scaling |
| Workload Types & VEN Deployment | Managed vs unmanaged workloads, VEN deployment strategies, and workload lifecycle |
| Label Design (R+A+E+L) | Illumio's four-dimensional label model — Role, Application, Environment, Location — design principles, data quality, and governance |
| FIRST Principles of Security Segmentation | Illumio's FIRST methodology — Find, Identify, Reach out, Start, Target — the recommended approach to deploying segmentation |
| Core Services Strategy | Why infrastructure services must be policy'd first — identification, types, and strategy for core service segmentation |
| Ringfencing Patterns & Granularity Levels | Three levels of application segmentation — App Group Level, Role Level All Services, Role Level Specified Services — with deny rule integration |
| Digital Crown Jewels | Identifying and protecting your most sensitive applications with the highest level of segmentation control |
| Logging, Monitoring & SIEM Integration | PCE logging types, SIEM integration, traffic data records, auditable events, and alerting strategies |
TDQS
Scored across 50 tools
Most tools pair a distinct resource with a clear action, and the traffic-analytics tools are explicitly differentiated (e.g. discover-process-egress vs get-traffic-flows). A few names could be initially confused—get-workloads vs get-kubernetes-workloads, get-traffic-flows vs get-traffic-flows-summary—but the descriptions do enough to steer an agent correctly.
The overwhelming majority follow a verb-noun or verb-noun-noun pattern: create-iplist, update-workload, delete-deny-rule, get-traffic-flows-summary. A few tools break the verb-first pattern (enforcement-readiness, compliance-check, ringfence-batch), but these are isolated and remain readable.
50 tools is far beyond the typical well-scoped MCP toolset, and the inventory feels more like a broad API surface than a curated set of agent-facing operations. Many tools are one-off analytics or assessment functions, which makes tool selection heavier than it needs to be.
Core resources like workloads, labels, IP lists, services, rulesets, and deny rules have solid CRUD coverage, and the analytics layer is unusually rich. However, there is no create-sec-rule to add allow rules to an existing ruleset, pairing profiles are read-only, and some container resources are get/update-only—noticeable lifecycle gaps for a policy-management server.