Skip to main content
Glama
Resilience Architect MCP

Resilience Architect MCP

by ckq-aws

Resilience Architect MCP

Your proactive chaos engineering companion that analyzes infrastructure code and designs targeted resilience experiments before problems occur.

Description

The Resilience Architect MCP bridges the gap between infrastructure analysis and chaos engineering by proactively examining your AWS infrastructure blueprints (CloudFormation templates, CDK code, Terraform) and automatically designing appropriate fault injection experiments. This MCP server implements the Model Context Protocol to expose AWS Fault Injection Simulator (FIS) capabilities through an intelligent architectural lens.

The Resilience Architect doesn't just run chaos experiments—it thinks like a solutions architect to understand your infrastructure patterns, identify potential failure points, and craft targeted resilience tests. By analyzing your infrastructure code ahead of time, it helps you build more resilient systems through preemptive chaos engineering rather than reactive troubleshooting.

The server provides the following MCP tools:

AWS FIS Experiment Management Tools

  • list_fis_experiments: Retrieves a list of available FIS experiments organized by name

  • get_experiment: Gets detailed information about a specific experiment by ID

  • list_experiment_templates: Lists all experiment templates with pagination support

  • get_experiment_template: Gets details about a specific experiment template by ID

  • start_experiment: Starts an experiment from a template (requires --allow-writes flag)

AWS FIS Experiment Template Management Tools

  • create_experiment_template: Creates a new FIS experiment template (requires --allow-writes flag)

  • update_experiment_template: Updates an existing FIS experiment template

AWS Resource Discovery Tools

CloudFormation Tools

  • list_cfn_stacks: Lists all CloudFormation stacks with pagination support

  • get_stack_resources: Gets resources from a specific CloudFormation stack

AWS Resource Explorer Tools

  • list_resource_explorer_views: Lists all Resource Explorer views

  • create_resource_explorer_view: Creates a new Resource Explorer view (requires --allow-writes flag)

  • search_resources: Searches for AWS resources using Resource Explorer based on query string and view ARN

  • discover_resource_relationships: Discovers relationships for a specific AWS resource using AWS Config

Related MCP server: FIS Recommender MCP Server

Requirements

  • Python 3.10+

  • AWS credentials with appropriate IAM permissions

  • Required Python packages (see Installation)

Pre-requisites

AWS Credentials

Create a .env file in the project root with the following AWS credentials:

AWS_ACCESS_KEY_ID=your_access_key
AWS_SECRET_ACCESS_KEY=your_secret_key
AWS_SESSION_TOKEN=your_session_token  # If using temporary credentials

Install uv & python 3.10+

  1. Install uv from Astral or the GitHub README

  2. Install Python 3.10 or newer using uv python install 3.10 (or a more recent version)

Setting up the environment

  1. Clone this repo git clone https://github.com/ckq-aws/aws-fis-mcp.git

  2. Change directory cd src/aws-fis-mcp-server

  3. Run uv sync to install project dependencies

AWS Documenation MCP Server Installation

To ensure AI assistants can accurately determine available FIS actions, it's essential to install the AWS Documentation MCP server alongside this server. This combination prevents hallucinations and guarantees that fault injection experiment templates contain only valid FIS actions.

For detailed installation instructions, please refer to the AWS Documentation MCP Server README

AWS FIS MCP Server Installation

Install MCP Server

Configure the MCP server in your MCP client configuration (e.g., for Amazon Q Developer CLI, edit ~/.aws/amazonq/mcp.json)" --> as shown here: https://github.com/awslabs/mcp/tree/main/src/amazon-kendra-index-mcp-server#installation

Start the AWS FIS MCP server by configuring your mcp.json file as follows:

In mcp.json:

{
  "mcpServers": {
    "aws_fis_tool": {
      "command": "uv",
      "args": ["awslabs.aws_fis_mcp_server@latest"],
      "env": {
        "FASTMCP_LOG_LEVEL": "ERROR"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

Additional Information & Troubleshooting

Understanding MCP (Model Context Protocol)

MCP is a protocol that enables AI models to interact with external tools and data sources. It provides three main capabilities:

1. Tools

Tools are functions that allow AI models to perform actions in the real world. In this server, tools enable the AI to interact with AWS services like FIS, CloudFormation, and Resource Explorer. Tools have:

  • A name and description

  • Input parameters with types

  • Return values that the AI can interpret

Example from this project:

@main_mcp.tool('list_fis_experiments')
def list_all_fis_experiments():
    # Function implementation
    # Returns data that the AI can use

2. Prompts

Prompts provide context and instructions to the AI model about how to use the tools. They can include:

  • Descriptions of what the tools do

  • Examples of how to use them

  • Guidelines for interpreting results

Prompts help the AI understand the domain (AWS FIS in this case) and make appropriate decisions.

3. Resources

Resources are additional data that the AI can access, such as:

  • Documentation

  • Examples

  • Templates

  • Historical data

Resources provide the AI with the information it needs to make informed decisions when using the tools.

Troubleshooting with MCP Inspector

The MCP Inspector is a powerful tool for debugging and troubleshooting your MCP server. It runs locally and acts as a client-side portal to test your MCP server and its functions in real-time without needing to integrate with an actual LLM.

Installing & Running MCP Inspector

  1. Install Node.js if you haven't already: https://nodejs.org/en/download. This will automatically install npx which is needed to run the mcp inspector. The inspector runs directly through npx without requiring installation.

  2. Change directory:

cd src/aws-fis-mcp-server
  1. Run MCP Inspector:

  • Command to Start MCP Inspector:

mcp dev server.py
  1. In your terminal copy or click the link to the inspector with the pre-filled token: http://localhost:6274/?MCP_PROXY_AUTH_TOKEN=[PRE-FILLED TOKEN]

  2. Happy debugging!

Using MCP Inspector

  • Interactive Testing: Test your MCP server tools directly through a user-friendly interface without needing an LLM

  • Inspect Tool Calls: View all tool calls, including parameters and return values in real-time

  • Debug Errors: Identify where errors occur in your tool implementations with detailed error reporting

  • Test Tools Manually: Execute tools directly with custom parameters to verify they work as expected

  • View Request/Response Flow: See the complete interaction between the client and your MCP server

  • Analyze Performance: Identify slow tools that might need optimization with timing metrics

Common Issues and Solutions

  1. Authentication Errors:

    • Check your AWS credentials in the .env file

    • Verify IAM permissions for the services being accessed

  2. Tool Execution Failures:

    • Use the Inspector to view the exact error message

    • Check parameter types and values being passed

  3. Slow Performance:

    • Look for tools that take a long time to execute

    • Consider implementing pagination or limiting result sets

  4. Connection Issues:

    • Verify network connectivity to AWS services

    • Check for any VPC or security group restrictions

For more information on the MCP Inspector, visit the official documentation.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Built by cquarcoo@amazon.com with ❤️

Available Tools

13 tools
CreateFISExperimentTemplateB

Create a new AWS FIS experiment template.

This tool creates a new experiment template that defines the parameters for
fault injection experiments, including targets, actions, and stop conditions.

Args:
    ctx: The MCP context for logging and communication
    clientToken: Client token for idempotency
    description: Description of the experiment template
    role_arn: IAM role ARN for experiment execution
    name: Required name for the experiment template (will be added as Name tag)
    tags: Optional additional tags to apply to the template
    stop_conditions: Conditions that stop the experiment
    targets: Target resources for the experiment
    actions: Actions to perform during the experiment
    log_configuration: Configuration for experiment logging
    experiment_options: Additional experiment options
    report_configuration: Configuration for experiment reporting

Returns:
    Dict containing the created experiment template

Raises:
    Exception: For AWS API errors or when writes are disabled

Inputs: name (required), role_arn (required), clientToken (required), description (required), +7 more.

CreateResourceExplorerViewB

Create a Resource Explorer view.

This tool creates a new Resource Explorer view that can be used to find
and filter resources for fault injection experiments.

Args:
    ctx: The MCP context for logging and communication
    query: Filter string for the view
    view_name: Name of the view
    name: Required name for the view (will be added as Name tag)
    tags: Optional additional tags to apply to the view
    scope: Scope of the view
    client_token: Client token for idempotency

Returns:
    Dict containing the created view details

Raises:
    Exception: For AWS API errors or when writes are disabled

Inputs: name (required), query (required), view_name (required), tags, +2 more.

DiscoverResourceRelationshipsA

Discover relationships for a specific AWS resource using AWS Config.

This tool retrieves the configuration history for a specific AWS resource
and returns its relationships with other resources. This is useful for
understanding resource dependencies, such as finding which subnet an ALB
is placed in or which security groups are attached to an instance.

Args:
    ctx: The MCP context for logging and communication
    resource_type: AWS resource type (e.g., AWS::EC2::Instance)
    resource_id: AWS resource ID to discover relationships for
    limit: Maximum number of configuration items to retrieve
    chronological_order: Order of configuration items (Reverse or Forward)

Returns:
    Dict containing resource relationships and configuration details

Inputs: resource_id (required), resource_type (required), limit, chronological_order.

GetFISExperimentB

Get detailed information about a specific experiment.

This tool retrieves comprehensive information about a single FIS experiment
identified by its ID.

Args:
    ctx: The MCP context for logging and communication
    id: The experiment ID

Returns:
    Dict containing experiment details

Inputs: id (required).

GetFISExperimentTemplateC

Get detailed information about a specific experiment template.

This tool retrieves comprehensive information about a single FIS experiment template
identified by its ID.

Args:
    ctx: The MCP context for logging and communication
    id: The experiment template ID

Returns:
    Dict containing experiment template details

Inputs: id (required).

GetStackResourcesB

Retrieves the resources that have been created by an individual stack.

This tool lists all resources within a specific CloudFormation stack,
which can be useful for identifying potential targets for fault injection experiments.

Args:
    ctx: The MCP context for logging and communication
    stack_name: Name of the CloudFormation stack

Returns:
    Dict containing stack resources

Inputs: stack_name (required).

ListCloudFormationStacksA

Retrieve all AWS CloudFormation Stacks.

This tool lists all CloudFormation stacks in the current AWS account and region,
providing information that can help identify potential targets for fault injection.

Returns:
    Dict containing CloudFormation stack information

Inputs: no named parameters.

ListFISExperimentsA

Retrieves a list of Experiments available in the AWS FIS service.

This tool fetches all FIS experiments in the current AWS account and region,
organizing them by name for easy reference. It handles pagination automatically.

Returns:
Dict containing experiment details organized by name

Inputs: no named parameters.

ListFISExperimentTemplatesB

List all experiment templates.

This tool retrieves all FIS experiment templates in the current AWS account and region.
It handles pagination automatically to ensure all templates are returned.

Returns:
    List of experiment templates with their details

Inputs: no named parameters.

ListResourceExplorerViewsA

List Resource Explorer views.

This tool retrieves all Resource Explorer views in the current AWS account and region,
which can be used to find and filter resources for fault injection experiments.

Returns:
    List of Resource Explorer views

Inputs: no named parameters.

SearchResourcesB

Search for AWS resources using Resource Explorer.

This tool searches for AWS resources using Resource Explorer based on a query string
and view ARN. It can be used to find specific resources for fault injection experiments.

Args:
    ctx: The MCP context for logging and communication
    query_string: The query string to search for resources
    view_arn: The ARN of the Resource Explorer view to use
    max_results: Maximum number of results to return (default: 100)
    next_token: Token for pagination (optional)

Returns:
    Dict containing search results and pagination information

Inputs: view_arn (required), query_string (required), next_token, max_results.

StartFISExperimentB

Starts an AWS FIS experiment and returns immediately after starting.

Args:
    ctx: The MCP context for logging and communication
    id: The experiment template ID
    name: Required name for the experiment
    tags: Optional additional tags to apply to the experiment
    action: The actions mode (default: 'run-all')

Returns:
    Dict containing experiment start response

Raises:
    Exception: For AWS API errors or when writes are disabled

Inputs: id (required), name (required), tags, action.

UpdateFISExperimentTemplateC

Update an existing AWS FIS experiment template.

This tool updates an existing experiment template with new parameters for
fault injection experiments, including targets, actions, and stop conditions.

Args:
    ctx: The MCP context for logging and communication
    id: ID of the experiment template to update
    description: Updated description of the experiment template
    stop_conditions: Updated conditions that stop the experiment
    targets: Updated target resources for the experiment
    actions: Updated actions to perform during the experiment
    role_arn: Updated IAM role ARN for experiment execution
    log_configuration: Updated configuration for experiment logging
    experiment_options: Updated experiment options
    experiment_report_configuration: Updated configuration for experiment reporting

Returns:
    Dict containing the updated experiment template

Inputs: id (required), actions, targets, role_arn, +5 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.5/5.0

    Scored across 13 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose: FIS experiment vs template operations, Resource Explorer view management, resource search vs relationship discovery. The names and descriptions make boundaries clear, and there is no significant overlap that would cause misselection.

    Naming Consistency5/5

    All tools follow a consistent CamelCase verb-noun pattern (e.g., GetFISExperiment, ListFISExperiments, CreateFISExperimentTemplate). Service prefixes are used consistently within FIS tools, and minor variations like GetStackResources vs ListCloudFormationStacks are justified by different actions.

    Tool Count5/5

    13 tools is well-scoped for a resilience architecture server covering FIS, Resource Explorer, CloudFormation, and Config. Each tool serves a distinct operation without redundancy, fitting comfortably in the ideal 3-15 range.

    Completeness3/5

    The surface covers discovery, template creation/update, and experiment start, but lacks critical lifecycle operations like stopping an experiment, deleting templates, and deleting/updating Resource Explorer views. These gaps could hinder full workflow execution for an agent.

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables AI assistants to perform chaos engineering and resilience testing on Kubernetes clusters through Chaos Mesh. Supports creating and managing 24 types of chaos experiments including network failures, stress tests, pod disruptions, and I/O faults through natural language conversations.
      2
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Analyzes DevOps findings to automatically recommend and generate AWS Fault Injection Simulator (FIS) experiment templates. It helps teams validate system resilience by mapping reported issues to specific chaos engineering actions across AWS services.
      MIT
    • F
      license
      Not graded
      quality
      C
      maintenance
      Enables users to investigate infrastructure incidents in plain English, correlate observability and deploy data with runbooks, and get evidence-backed root-cause proposals with approval-gated remediation.
      5
      -
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables state-aware Terraform/OpenTofu plan evaluation against live AWS topology and CloudWatch telemetry, detecting reliability blast radius and FinOps waste before merge.
      Apache 2.0