AWS CloudFormation

AWS CloudFormation

CloudFormation resource management via Cloud Control API.

10K+

8 Tools

Packaged by
Requires Secrets
Add to Docker Desktop

Version 4.43 or later needs to be installed to add the server automatically

Use cases

About

AWS CloudFormation MCP Server

CloudFormation resource management via Cloud Control API.

What is an MCP Server?⁠

MCP Info

AttributeDetails
Docker Imagemcp/cfn-mcp-server⁠
Authorawslabs⁠
Repositoryhttps://github.com/awslabs/mcp⁠

Image Building Info

AttributeDetails
Dockerfilehttps://github.com/awslabs/mcp/blob/76ec6993aec4c6281e5250cbeba8db6a5863f2ff/src/cfn-mcp-server/Dockerfile⁠
Docker Image built byDocker Inc.
Docker Scout Health ScoreDocker Scout Health Score
Verify SignatureCOSIGN_REPOSITORY=mcp/signatures cosign verify mcp/cfn-mcp-server --key https://raw.githubusercontent.com/docker/keyring/refs/heads/main/public/mcp/latest.pub
LicenceApache License 2.0

Available Tools (8)

Tools provided by this ServerShort Description
create_resourceCreate an AWS resource.
create_templateCreate a CloudFormation template from existing resources using the IaC Generator API.
delete_resourceDelete an AWS resource.
get_resourceGet details of a specific AWS resource.
get_resource_request_statusGet the status of a long running operation with the request token.
get_resource_schema_informationGet schema information for an AWS resource.
list_resourcesList AWS resources of a specified type.
update_resourceUpdate an AWS resource.

Tools Details

Tool: create_resource

Create an AWS resource.

Parameters: resource_type: The AWS resource type (e.g., "AWS::S3::Bucket") properties: A dictionary of properties for the resource region: AWS region to use (e.g., "us-east-1", "us-west-2")

Returns: Information about the created resource with a consistent structure: { "status": Status of the operation ("SUCCESS", "PENDING", "FAILED", etc.) "resource_type": The AWS resource type "identifier": The resource identifier "is_complete": Boolean indicating whether the operation is complete "status_message": Human-readable message describing the result "request_token": A token that allows you to track long running operations via the get_resource_request_status tool "resource_info": Optional information about the resource properties }

ParametersTypeDescription
propertiesobjectA dictionary of properties for the resource
resource_typestringThe AWS resource type (e.g., "AWS::S3::Bucket", "AWS::RDS::DBInstance")
regionstringoptionalThe AWS region that the operation should be performed in

Tool: create_template

Create a CloudFormation template from existing resources using the IaC Generator API.

This tool allows you to generate CloudFormation templates from existing AWS resources that are not already managed by CloudFormation. The template generation process is asynchronous, so you can check the status of the process and retrieve the template once it's complete. You can pass up to 500 resources at a time.

Examples:

  1. Start template generation for an S3 bucket: create_template( template_name="my-template", resources=[{"ResourceType": "AWS::S3::Bucket", "ResourceIdentifier": {"BucketName": "my-bucket"}}], deletion_policy="RETAIN", update_replace_policy="RETAIN" )

  2. Check status of template generation: create_template(template_id="arn:aws:cloudformation:us-east-1:123456789012:generatedtemplate/abcdef12-3456-7890-abcd-ef1234567890")

  3. Retrieve and save generated template: create_template( template_id="arn:aws:cloudformation:us-east-1:123456789012:generatedtemplate/abcdef12-3456-7890-abcd-ef1234567890", save_to_file="/path/to/template.yaml", output_format="YAML" ) Parameters|Type|Description -|-|- deletion_policy|stringoptional|Default DeletionPolicy for resources in the template (RETAIN, DELETE, or SNAPSHOT) output_format|stringoptional|Output format for the template (JSON or YAML) region|stringoptional|The AWS region that the operation should be performed in resources|stringoptional|List of resources to include in the template, each with 'ResourceType' and 'ResourceIdentifier' save_to_file|stringoptional|Path to save the generated template to a file template_id|stringoptional|ID of an existing template generation process to check status or retrieve template template_name|stringoptional|Name for the generated template update_replace_policy|stringoptional|Default UpdateReplacePolicy for resources in the template (RETAIN, DELETE, or SNAPSHOT)


Tool: delete_resource

Delete an AWS resource.

Parameters: resource_type: The AWS resource type (e.g., "AWS::S3::Bucket") identifier: The primary identifier of the resource to delete (e.g., bucket name for S3 buckets) region: AWS region to use (e.g., "us-east-1", "us-west-2")

Returns: Information about the deletion operation with a consistent structure: { "status": Status of the operation ("SUCCESS", "PENDING", "FAILED", "NOT_FOUND", etc.) "resource_type": The AWS resource type "identifier": The resource identifier "is_complete": Boolean indicating whether the operation is complete "status_message": Human-readable message describing the result "request_token": A token that allows you to track long running operations via the get_resource_request_status tool }

ParametersTypeDescription
identifierstringThe primary identifier of the resource to get (e.g., bucket name for S3 buckets)
resource_typestringThe AWS resource type (e.g., "AWS::S3::Bucket", "AWS::RDS::DBInstance")
regionstringoptionalThe AWS region that the operation should be performed in

Tool: get_resource

Get details of a specific AWS resource.

Parameters: resource_type: The AWS resource type (e.g., "AWS::S3::Bucket") identifier: The primary identifier of the resource to get (e.g., bucket name for S3 buckets) region: AWS region to use (e.g., "us-east-1", "us-west-2")

Returns: Detailed information about the specified resource with a consistent structure: { "identifier": The resource identifier, "properties": The detailed information about the resource }

ParametersTypeDescription
identifierstringThe primary identifier of the resource to get (e.g., bucket name for S3 buckets)
resource_typestringThe AWS resource type (e.g., "AWS::S3::Bucket", "AWS::RDS::DBInstance")
regionstringoptionalThe AWS region that the operation should be performed in

Tool: get_resource_request_status

Get the status of a long running operation with the request token.

ParametersTypeDescription
request_tokenstringThe request_token returned from the long running operation
regionstringoptionalThe AWS region that the operation should be performed in

Tool: get_resource_schema_information

Get schema information for an AWS resource.

Parameters: resource_type: The AWS resource type (e.g., "AWS::S3::Bucket")

Returns: The resource schema information

ParametersTypeDescription
resource_typestringThe AWS resource type (e.g., "AWS::S3::Bucket", "AWS::RDS::DBInstance")
regionstringoptionalThe AWS region that the operation should be performed in

Tool: list_resources

List AWS resources of a specified type.

Parameters: resource_type: The AWS resource type (e.g., "AWS::S3::Bucket", "AWS::RDS::DBInstance") region: AWS region to use (e.g., "us-east-1", "us-west-2")

Returns: A list of resource identifiers

ParametersTypeDescription
resource_typestringThe AWS resource type (e.g., "AWS::S3::Bucket", "AWS::RDS::DBInstance")
regionstringoptionalThe AWS region that the operation should be performed in

Tool: update_resource

Update an AWS resource.

Parameters: resource_type: The AWS resource type (e.g., "AWS::S3::Bucket") identifier: The primary identifier of the resource to update patch_document: A list of RFC 6902 JSON Patch operations to apply region: AWS region to use (e.g., "us-east-1", "us-west-2")

Returns: Information about the updated resource with a consistent structure: { "status": Status of the operation ("SUCCESS", "PENDING", "FAILED", etc.) "resource_type": The AWS resource type "identifier": The resource identifier "is_complete": Boolean indicating whether the operation is complete "status_message": Human-readable message describing the result "request_token": A token that allows you to track long running operations via the get_resource_request_status tool "resource_info": Optional information about the resource properties }

ParametersTypeDescription
identifierstringThe primary identifier of the resource to get (e.g., bucket name for S3 buckets)
resource_typestringThe AWS resource type (e.g., "AWS::S3::Bucket", "AWS::RDS::DBInstance")
patch_documentarrayoptionalA list of RFC 6902 JSON Patch operations to apply
regionstringoptionalThe AWS region that the operation should be performed in

Use this MCP Server

{
  "mcpServers": {
    "awslabs-cfn": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "mcp/cfn-mcp-server"
      ]
    }
  }
}

Why is it safer to run MCP Servers with Docker?⁠

Related servers