MCP server for chaos engineering and fault injection using Chaos Mesh and Kubernetes
Chaos Mesh server has 13 tools with complete input schemas and descriptions, but quality is inconsistent. All tools have verb-noun naming (pod_kill, container_kill, etc.) and parameter descriptions. However, descriptions are generic and lack actionable context for LLM selection. No output schemas documented. Critical gap: no error handling guidance, no recovery paths, and no confirmation/dry-run patterns for destructive operations (pod_kill, network_partition, delete_experiment). Parameters like 'mode' and 'value' are poorly explained, LLMs cannot infer valid mode values from descriptions alone. No enum constraints despite clear enumerated options (mode: one|all|fixed|fixed-percent|random-max-percent). Risk annotations present but not integrated into tool definitions.
Kill containers within a pod.
Delete a fault injection experiment
Apply CPU stress to hosts.
Fill disk on hosts.
Apply memory stress to hosts.
Read payload on hosts.
Write payload on hosts.
Limit network bandwidth to a pod.
No enum constraints for 'mode' parameter despite clear enumerated options (one, all, fixed, fixed-percent, random-max-percent). LLMs cannot infer valid values from free-form string descriptions.
Destructive operations (pod_kill, container_kill, network_partition, delete_experiment) lack confirmation/dry-run patterns. Agents can irreversibly kill pods or delete experiments without safeguards.
No output schemas documented. Tool descriptions state 'Returns: dict' but do not specify field names, types, or structure. LLMs cannot plan downstream calls or extract required data.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | <=2025-11-25 | v2 |
Apply a network partition for a pod.
Apply CPU stress on pods.
Inject a failure into pods of a service.
Kill pods of a service.
Apply memory stress on pods.
No error handling guidance. Tools do not document what errors can occur, whether they are retryable, or what the LLM should do next. E.g., 'service not found' or 'invalid mode' errors have no recovery path.
Parameter 'value' is ambiguous and poorly described across all tools. Its meaning depends on 'mode' (e.g., fixed-percent expects a percentage, fixed expects a count), but this dependency is not documented.