Chaos engineering controller powered by LangGraph + MCP for executing controlled chaos experiments on Kubernetes deployments
Three tools with minimal schema documentation and weak descriptions. All tools lack parameter descriptions despite having inputs. get_target_deployments has empty input schema ({}), making it impossible to validate. kill_random_pod and throttle_cpu_limits have typed parameters but no descriptions explaining what values are valid or how they're used. No output schemas documented. No error handling guidance. Tool descriptions are 10-20 chars below the 50-200 char baseline for LLM optimization. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk profiles.
Return the list of deployments in the default namespace that can be targeted for chaos actions.
Delete one random running pod from the target deployment to simulate a crash.
Patch deployment containers to reduce CPU limits, simulating starvation/noisy-neighbor pressure.
get_target_deployments has empty input schema ({}). Cannot validate inputs or guide LLM on required parameters.
All three tools lack parameter descriptions. 'deployment' parameter in kill_random_pod and throttle_cpu_limits has no description explaining what format is expected, whether it's a name or ID, or how to discover valid values.
No output schemas documented. LLM cannot plan downstream calls or extract structured data from responses. get_target_deployments should document the list structure (fields, types). kill_random_pod and throttle_cpu_limits should document success/failure response format.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 44 | <=2025-11-25 | v2 |
No tool annotations despite clear risk profiles. kill_random_pod is DESTRUCTIVE and should have destructiveHint=true. throttle_cpu_limits is REVERSIBLE and should have idempotentHint=true. get_target_deployments is READ_ONLY and should have readOnlyHint=true. These hints guide agent safety reasoning.
Tool descriptions are 10-20 characters below LLM-optimized baseline (50-200 chars). 'Return the list of deployments...' (67 chars) lacks context on WHEN to call this tool or what the agent should do with the results. 'Delete one random running pod...' (63 chars) does not explain prerequisites, error conditions, or recovery steps.