Skip to main content

Chaos Mesh MCP Server

An MCP server that enables AI agents to perform chaos engineering through Chaos Mesh on EKS clusters.

Architecture

┌─────────────────┐    ┌──────────────────┐    ┌─────────────────┐
│   AI Agent      │───▶│   MCP Server     │───▶│  EKS Cluster    │
│                 │    │                  │    │                 │
│ - Failure       │    │ - OIDC Auth      │    │ - Chaos Mesh    │
│   Scenarios     │    │ - K8s API Calls  │    │ - Workloads     │
│ - Experiment    │    │ - Experiment     │    │ - Monitoring    │
│   Planning      │    │   Management     │    │ - Resource Info │
│ - Result        │    │ - Resource Query │    │                 │
│   Analysis      │    │                  │    │                 │
└─────────────────┘    └──────────────────┘    └─────────────────┘

Key Features

1. Authentication and Authorization Management

  • OIDC-based EKS cluster authentication
  • RBAC permission validation
  • Token renewal and management

2. Chaos Mesh Experiment Management

  • Experiment creation and execution
  • Experiment status monitoring
  • Experiment termination and cleanup

3. Chaos Engineering Tools

  • Pod failure injection
  • Network failure simulation
  • Storage failure testing
  • Time and stress testing

4. EKS Cluster Resource Management

  • Node information retrieval
  • Namespace listing and details
  • Deployment status monitoring
  • Service discovery
  • Pod status and health checks
  • Cluster summary information

Available MCP Tools

Cluster Management

  • add_remote_cluster - Add EKS cluster to management
  • list_remote_clusters - List all managed clusters
  • install_chaos_mesh - Install Chaos Mesh on cluster

Resource Information

  • get_cluster_nodes - Get detailed node information
  • get_cluster_namespaces - Get namespace information
  • get_cluster_deployments - Get deployment status (all or specific namespace)
  • get_cluster_services - Get service information (all or specific namespace)
  • get_cluster_pods - Get pod information (all or specific namespace)
  • get_cluster_resource_summary - Get cluster resource overview and summary

Chaos Experiments

  • create_pod_chaos_experiment - Create pod failure experiments
  • create_network_chaos_experiment - Create network failure experiments
  • create_stress_chaos_experiment - Create stress testing experiments
  • create_io_chaos_experiment - Create I/O failure experiments
  • create_dns_chaos_experiment - Create DNS failure experiments
  • create_time_chaos_experiment - Create time manipulation experiments

Installation and Setup

  1. Install Chaos Mesh on EKS cluster
  2. Configure OIDC provider
  3. Set up RBAC permissions
  4. Deploy MCP server

Security Considerations

  • Apply principle of least privilege
  • Limit experiment scope
  • Record audit logs
  • Implement safety mechanisms

Usage

Before setting the cluster, you should add IAM Role to cluster RBAC group to access your cluster with system:managers permission. You can add it with Kubernets RBAC configuration You also add a mapping between an IAM role to a Kubernetes user and groups. With AWS CDK, see Masters Role and addRoleMapping

You can initialize your cluster with env or manually add with add_remote_cluter tool.

*.json file

{
  "mcpServers": {
    "sequential-thinking": {
      "command": "uvx",
      "args": ["chaos-mesh-mcp-server@latest"],
      "env": {
        "CLUSTERS_CONFIG": "{my-cluster-name}:{my-cluster-region},{my-cluster-2-name}:{my-cluster-2-region}"
        "AWS_ACCESS_KEY": "KEY",
        "AWS_SECRET_ID": "SECRET",
      }
    }
  }
}

Strands Agent SDK

chaos_mesh_mcp_client = MCPClient(
    lambda: stdio_client(
        StdioServerParameters(
            command="uvx",
            args=["chaos-mesh-mcp-server@latest"],
            env={
                "CLUSTERS_CONFIG": "{my-cluster-name}:{my-cluster-region},{my-cluster-2-name}:{my-cluster-2-region}",
                "AWS_ACCESS_KEY": "KEY",
                "AWS_SECRET_ID": "SECRET",
            },
        )
    )
)

chaos_mesh_mcp_client.start()

agent = Agent(
    model,
    system_prompt,
    tools=[chaos_mesh_mcp_client.list_tools_sync()],
)

Example Usage

Get Cluster Information

# Get cluster summary
cluster_summary = await get_cluster_resource_summary("my-cluster")

# Get specific resource information
nodes = await get_cluster_nodes("my-cluster")
namespaces = await get_cluster_namespaces("my-cluster")
deployments = await get_cluster_deployments("my-cluster", "default")

Create Chaos Experiments

# Create pod chaos experiment
result = await create_pod_chaos_experiment(
    cluster_name="my-cluster",
    namespace="default",
    target_app="my-app",
    action="pod-kill",
    duration="30s"
)

Metadata

Release files for chaos-mesh-mcp-server 6.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for chaos-mesh-mcp-server 6.2.0
File Size Uploaded
chaos_mesh_mcp_server-6.2.0.tar.gz 43.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for chaos-mesh-mcp-server 6.2.0
File Interpreter ABI Platform
chaos_mesh_mcp_server-6.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 95.6 kB

Release files / chaos_mesh_mcp_server-6.2.0.tar.gz

Download URL chaos_mesh_mcp_server-6.2.0.tar.gz
Size 43.8 kB
Tags Source
SHA-256 checksum
How to use checksums
4c03a408c0cc61b6742ea264c83d9ae7914e32a2926e224c1ff4a92e5723318b
BLAKE2b-256 checksum
How to use checksums
cefc607e4647bc6d37900db024a617934181187b5e7b5b333bd32b8ab505dc43
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.4

Release files / chaos_mesh_mcp_server-6.2.0-py3-none-any.whl

Download URL chaos_mesh_mcp_server-6.2.0-py3-none-any.whl
Size 51.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c45b86467275049fc09fae8fb683826e8945c410ba3aa6fbeaa7b2c6ec2f2e8d
BLAKE2b-256 checksum
How to use checksums
9dbc261eea043a07b25c361e93697246cb74ac543ac6b2824481df9d3d49a929
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.4

Release history Release notifications | RSS feed

This release

6.2.0 This release

2 release files

6.1.0

2 release files

6.0.0

2 release files

5.1.0

2 release files

5.0.0

2 release files

4.1.0

2 release files

4.0.0

2 release files

3.0.0

2 release files

2.0.0

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page