Skip to main content
Glama
Illumio MCP Server

Illumio MCP Server

by alexgoller

collect-compliance-evidence

Collect per-scope compliance evidence for segmentation controls by running policy and traffic tests, returning PASS/FAIL/EXCEPTION results with measured rows and supporting evidence.

Instructions

Audit evidence for segmentation controls, per app/env scope pair, from ACTIVE policy (pversion=active by default) and observed traffic. Runs the framework-independent tests the illumio-compliance-evidence skill defines (T1 inventory, T2 enforcement, T3 VEN health, T4 unmanaged in scope, T5 providing rules described, T6 no broad consumer, T7 admitted services vs approved list, T8 inbound boundary flows with potentially-blocked and blocked evidence plus a per-day timeline, T9 outbound crossings, T11 draft-vs-active drift for the scope's rulesets, T14 events and flows present) and returns, per test and per pair, {result: PASS|FAIL|EXCEPTION|NOT_TESTED, measured, rows, evidence}. No score. A capped pull never yields PASS (EXCEPTION). An unknown scope label is an error. T10 (unknown endpoints), T12 and T13 (attestations) are listed in not_run. Framework requirement mapping stays in the illumio://compliance/* resources. Read-only. Query cost: scope-wide one pull each of labels, rulesets, IP lists, services, pending changes and events, plus per pair one workload pull, four traffic queries and one deny-rule read per matched ruleset; queries reports the count.

Input Schema

NameRequiredDescriptionDefault
scopeYesScope pairs, e.g. [{"app": "pay", "env": "prod"}]. Each is resolved to label hrefs; an unknown value is an error listing the valid values.
testsNoSubset of test ids to run, e.g. ["T1", "T2", "T5"]. Default: every runnable test (T1-T9, T11, T14). The inventory (T1 data) is always collected because an empty pair makes the rest NOT_TESTED.
end_dateNoWindow end, YYYY-MM-DD (with start_date).
max_rowsNoEvidence rows returned per test and pair (default 200); rows_total and rows_truncated say when more exist.
pversionNoPolicy version the ruleset tests read. Evidence packs cite active; echoed as policy_version.active
start_dateNoWindow start, YYYY-MM-DD (with end_date).
max_resultsNoRow cap per traffic query (default 500). A query returning exactly the cap is capped and cannot PASS; narrow the window or raise this.
lookback_daysNoTraffic and event window ending today (default 30; PCI packs use 90). Ignored when start_date and end_date are given.
approved_servicesNoThe organisation's approved service list. Without it the approved-list clauses of T7, T8 and T9 are NOT_TESTED and the observed set is returned as the candidate list.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.13.0

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so: 'Read-only', no score, capped pulls never PASS (EXCEPTION), unknown scope is an error, T10/T12/T13 land in not_run, and it discloses query cost in concrete pulls. This is unusually rich behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One dense paragraph, front-loaded with purpose, then test list, return shape, edge-case rules, and cost. Despite length every sentence carries distinct information; nothing is redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but the description specifies the return object {result: PASS|FAIL|EXCEPTION|NOT_TESTED, measured, rows, evidence}, the not_run behavior, rows_total/rows_truncated, and query cost. Complete enough for an agent to invoke and interpret correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds genuine meaning beyond the schema - PCI packs use 90-day lookback, pversion is echoed as policy_version, and the capped-result consequence for max_results - which justifies above baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (audit evidence for segmentation controls per app/env scope pair) and enumerates the exact tests T1-T9, T11, T14 it runs, plus what it returns. The agent can distinguish this from siblings like compliance-check or find-unmanaged-traffic from the description alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains defaults (all runnable tests), the always-collected T1 inventory, that unknown scope labels are errors listing valid values, and that framework requirement mapping lives in illumio://compliance/* resources. It gives strong context but does not explicitly name a sibling alternative or when-not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.