Unified OPA/Gatekeeper, Kyverno, and Azure Policy MCP server
PolicyPulse defines 6 tools with clear action verbs (cluster_status, list_policies, get_violations, get_compliance_risk_summary, explain_violation, check_manifest_compliance). All tools have descriptions (avg ~120 chars, within baseline 34-392). Input schemas are present with type declarations. However, parameter descriptions are sparse or missing in several tools (e.g., cluster_status has empty input {}; list_policies engine param lacks detail on valid values; get_violations has good descriptions but no enum constraints for engine/severity). Output schemas are not documented. Error handling is minimal, no recovery guidance or actionable error messages visible. Tool composition is sound (single responsibility, verb-noun naming), but schema completeness and error patterns lag production baselines.
Static policy check for a Kubernetes manifest (YAML or JSON) — no cluster needed.
Which policy engines are connected and whether demo mode is active.
Plain-English explanation of one violation with framework mapping and remediation.
Cross-engine risk summary: severity breakdown, top risks, and regulatory impact.
All active violations enriched with compliance framework refs. namespace: restrict to a specific Kubernetes namespace. engine: one of gatekeeper, kyverno, azure_policy. min_severity: only return violations at or above this level (critical → info). cluster: restrict to a specific cluster label (multi-cluster mode only).
List all policies across connected engines, optionally filtered by engine name.
Output schemas not documented. LLMs cannot plan downstream calls or extract structured data without knowing response field names and types.
Parameter constraints not formalized as enums. get_violations accepts engine (gatekeeper|kyverno|azure_policy) and min_severity (critical→info) as free-form strings; should be enum types to prevent hallucinated values.
Error handling lacks recovery guidance. No visible error messages, retryability classification, or actionable next steps for LLMs when tools fail.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | <=2025-11-25 | v2 |
Pagination not implemented. list_policies and get_violations may return large result sets without limit, offset, or cursor parameters, risking context window exhaustion.
Parameter descriptions incomplete. cluster_status has empty input schema; list_policies engine param lacks guidance on valid values; get_compliance_risk_summary has no input params documented.