Sign inSign up

mcp/ccapi-mcp-server

Verified Publisher

By mcp

Updated 2 months ago

Direct resource management with security scanning.

Image
Machine learning & AI
0

10K+

mcp/ccapi-mcp-server repository overview

AWS Cloud Control API MCP Server

Direct resource management with security scanning.

What is an MCP Server?

MCP Info

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

Image Building Info

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

Available Tools (14)

Tools provided by this ServerShort Description
check_environment_variablesCheck if required environment variables are set correctly.
create_resourceCreate an AWS resource.
create_templateCreate a CloudFormation template from existing resources using the IaC Generator API.
delete_resourceDelete an AWS resource.
explainMANDATORY: Explain any data in clear, human-readable format.
generate_infrastructure_codeGenerate infrastructure code before resource creation or update.
get_aws_account_infoGet information about the current AWS account being used.
get_aws_session_infoGet information about the current AWS session.
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.
run_checkovRun Checkov security and compliance scanner on server-stored CloudFormation template.
update_resourceUpdate an AWS resource.

Tools Details

Tool: check_environment_variables

Check if required environment variables are set correctly.

Tool: create_resource

Create an AWS resource.

This tool automatically adds default identification tags to all resources for support and troubleshooting purposes.

IMPORTANT: Always check the response for 'security_warning' field and display any warnings to the user.

ParametersTypeDescription
credentials_tokenstringCredentials token from get_aws_session_info() to ensure AWS credentials are valid
explained_tokenstringExplained token from explain() - properties will be retrieved from this token
resource_typestringThe AWS resource type (e.g., "AWS::S3::Bucket", "AWS::RDS::DBInstance")
regionstring optionalThe AWS region that the operation should be performed in
security_scan_tokenstring optionalSecurity scan token from approve_security_findings() to ensure security checks were performed (only required when SECURITY_SCANNING=enabled)
skip_security_checkboolean optionalSkip security checks (only when SECURITY_SCANNING=disabled)

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.

IMPORTANT FOR LLMs: This tool only generates CloudFormation templates. If users request other IaC formats (Terraform, CDK, etc.), follow this workflow:

  1. Use create_template() to generate CloudFormation template from existing resources
  2. Convert the CloudFormation to the requested format using your native capabilities
  3. For Terraform specifically: Create both resource definitions AND import blocks so users can import existing resources into Terraform state ⚠️ ALWAYS USE TERRAFORM IMPORT BLOCKS (NOT TERRAFORM IMPORT COMMANDS) ⚠️
  4. Provide both the original CloudFormation and converted IaC to the user

Example workflow for "create Terraform import for these resources":

  1. create_template() → get CloudFormation template
  2. Convert to Terraform resource blocks
  3. Generate corresponding Terraform import blocks (NOT terraform import commands) Example: import { to = aws_s3_bucket.example, id = "my-bucket" }
  4. Provide complete Terraform configuration with import blocks

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 generated template: create_template( template_id="arn:aws:cloudformation:us-east-1:123456789012:generatedtemplate/abcdef12-3456-7890-abcd-ef1234567890", output_format="YAML" ) Parameters|Type|Description -|-|- deletion_policy|string optional|Default DeletionPolicy for resources in the template (RETAIN, DELETE, or SNAPSHOT) output_format|string optional|Output format for the template (JSON or YAML) region|string optional|The AWS region that the operation should be performed in resources|string optional|List of resources to include in the template, each with 'ResourceType' and 'ResourceIdentifier' template_id|string optional|ID of an existing template generation process to check status or retrieve template template_name|string optional|Name for the generated template update_replace_policy|string optional|Default UpdateReplacePolicy for resources in the template (RETAIN, DELETE, or SNAPSHOT)


Tool: delete_resource

Delete an AWS resource.

ParametersTypeDescription
credentials_tokenstringCredentials token from get_aws_session_info() to ensure AWS credentials are valid
explained_tokenstringExplained token from explain() to ensure deletion was explained
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")
confirmedboolean optionalConfirm that you want to delete this resource
regionstring optionalThe AWS region that the operation should be performed in

Tool: explain

MANDATORY: Explain any data in clear, human-readable format.

For infrastructure operations (create/update/delete):

  • CONSUMES generated_code_token and returns explained_token
  • You MUST immediately display the returned explanation to user
  • You MUST use the returned explained_token for create/update/delete operations

For general data explanation:

  • Pass any data in 'content' parameter
  • Provides comprehensive explanation of the data structure

CRITICAL: You MUST immediately display the full explanation content to the user after calling this tool. The response contains an 'explanation' field that you MUST show to the user - this is MANDATORY. Never proceed with create/update/delete operations without first showing the user what will happen.

Returns: explanation: Comprehensive explanation you MUST display to user explained_token: New token for infrastructure operations (if applicable)

ParametersTypeDescription
contentstring optionalAny data to explain - infrastructure properties, JSON, dict, list, etc.
contextstring optionalContext about what this data represents (e.g., 'KMS key creation', 'S3 bucket update')
formatstring optionalExplanation format: detailed, summary, technical
generated_code_tokenstring optionalGenerated code token from generate_infrastructure_code (for infrastructure operations)
operationstring optionalOperation type: create, update, delete, analyze
user_intentstring optionalOptional: User's stated purpose

Tool: generate_infrastructure_code

Generate infrastructure code before resource creation or update.

ParametersTypeDescription
credentials_tokenstringCredentials token from get_aws_session_info() to ensure AWS credentials are valid
resource_typestringThe AWS resource type (e.g., "AWS::S3::Bucket", "AWS::RDS::DBInstance")
identifierstring optionalThe primary identifier of the resource for update operations
patch_documentarray optionalA list of RFC 6902 JSON Patch operations for update operations
propertiesobject optionalA dictionary of properties for the resource
regionstring optionalThe AWS region that the operation should be performed in

Tool: get_aws_account_info

Get information about the current AWS account being used.

Common questions this tool answers:

  • "What AWS account am I using?"
  • "Which AWS region am I in?"
  • "What AWS profile is being used?"
  • "Show me my current AWS session information"

Returns: A dictionary containing AWS account information: { "profile": The AWS profile name being used, "account_id": The AWS account ID, "region": The AWS region being used, "readonly_mode": True if the server is in read-only mode, "readonly_message": A message about read-only mode limitations if enabled, "using_env_vars": Boolean indicating if using environment variables for credentials }

Tool: get_aws_session_info

Get information about the current AWS session.

This tool provides details about the current AWS session, including the profile name, account ID, region, and credential information. Use this when you need to confirm which AWS session and account you're working with.

IMPORTANT: Always display the AWS context information to the user when this tool is called. Show them: AWS Profile (or "Environment Variables"), Authentication Type, Account ID, and Region so they know exactly which AWS account and region will be affected by any operations.

Authentication types to display:

  • 'env': "Environment Variables (AWS_ACCESS_KEY_ID)"
  • 'sso_profile': "AWS SSO Profile"
  • 'assume_role_profile': "Assume Role Profile"
  • 'standard_profile': "Standard AWS Profile"
  • 'profile': "AWS Profile"

SECURITY: If displaying environment variables that contain sensitive values (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY), mask all but the last 4 characters with asterisks (e.g., "AKIA****1234").

Returns: A dictionary containing AWS session information including profile, account_id, region, etc.

ParametersTypeDescription
environment_tokenstringEnvironment token from check_environment_variables() to ensure environment is properly configured

Tool: get_resource

Get details of a specific AWS 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")
analyze_securityboolean optionalWhether to perform security analysis on the resource using Checkov
regionstring optionalThe 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
regionstring optionalThe 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")
regionstring optionalThe 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 dictionary containing: { "resources": List of resource identifiers }

ParametersTypeDescription
resource_typestringThe AWS resource type (e.g., "AWS::S3::Bucket", "AWS::RDS::DBInstance")
analyze_securityboolean optionalWhether to perform security analysis on the resources (limited to first 5 resources)
max_resources_to_analyzeinteger optionalMaximum number of resources to analyze when analyze_security=True
regionstring optionalThe AWS region that the operation should be performed in

Tool: run_checkov

Run Checkov security and compliance scanner on server-stored CloudFormation template.

SECURITY: This tool only scans CloudFormation templates stored server-side from generate_infrastructure_code(). AI agents cannot provide different content to bypass security scanning.

CRITICAL WORKFLOW REQUIREMENTS: ALWAYS after running this tool:

  1. Call explain() to show the security scan results to the user (both passed and failed checks)

If scan_status='FAILED' (security issues found): 2. Ask the user how they want to proceed: "fix", "proceed anyway", or "cancel" 3. WAIT for the user's actual response - do not assume their decision 4. Only after receiving user input, call approve_security_findings() with their decision

If scan_status='PASSED' (all checks passed): 2. You can proceed directly to create_resource() after showing the results

WORKFLOW REQUIREMENTS:

  1. ALWAYS provide a concise summary of security findings (passed/failed checks)
  2. Only show detailed output if user specifically requests it
  3. If CRITICAL security issues found: BLOCK resource creation, explain risks, provide resolution steps, ask multiple times for confirmation with warnings
  4. If non-critical security issues found: Ask user how to proceed (fix issues, proceed anyway, or cancel) Parameters|Type|Description -|-|- explained_token|string|Explained token from explain() containing CloudFormation template to scan framework|string optional|The framework to scan (cloudformation, terraform, kubernetes, etc.)

Tool: update_resource

Update an AWS resource.

IMPORTANT: Always check the response for 'security_warning' field and display any warnings to the user.

ParametersTypeDescription
credentials_tokenstringCredentials token from get_aws_session_info() to ensure AWS credentials are valid
explained_tokenstringExplained token from explain() to ensure exact properties with default tags are used
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_documentarray optionalA list of RFC 6902 JSON Patch operations to apply
regionstring optionalThe AWS region that the operation should be performed in
security_scan_tokenstring optionalSecurity scan token from run_checkov() to ensure security checks were performed (only required when SECURITY_SCANNING=enabled)
skip_security_checkboolean optionalSkip security checks (not recommended)

Use this MCP Server

{
  "mcpServers": {
    "awslabs-ccapi": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "AWS_REGION",
        "-e",
        "AWS_PROFILE",
        "-e",
        "AWS_ACCESS_KEY_ID",
        "-e",
        "AWS_SECRET_ACCESS_KEY",
        "mcp/ccapi-mcp-server"
      ],
      "env": {
        "AWS_REGION": "us-east-1",
        "AWS_PROFILE": "default",
        "AWS_ACCESS_KEY_ID": "AKIAIOSFODNN7EXAMPLE",
        "AWS_SECRET_ACCESS_KEY": "your-aws-secret-access-key"
      }
    }
  }
}

Why is it safer to run MCP Servers with Docker?

Install from MCP:Hub

AWS Cloud Control API

AWS Cloud Control API

View and Install from MCP:Hub

Tag summary

Content type

Image

Digest

sha256:b53d235b4

Size

165 MB

Last updated

2 months ago

docker pull mcp/ccapi-mcp-server

This week's pulls

Pulls:

62

Last week