30 of November, AWS announces the AWS MCP Server, a managed remote Model Context Protocol (MCP) server that helps AI agents and AI-native IDEs perform real-world, multi-step tasks across one or more AWS services. The AWS MCP Server consolidates capabilities from the existing AWS API MCP and AWS Knowledge servers into a unified interface, providing access to AWS documentation, generating and executing calls to over 15,000 AWS APIs, including those for newly released services, and following pre-built workflows called Agent standard operating procedures (SOPs) that guide AI agents through common tasks on AWS. 30 of November, AWS announces the AWS MCP Server, a managed remote Model Context Protocol (MCP) server that helps AI agents and AI-native IDEs perform real-world, multi-step tasks across one or more AWS services. The AWS MCP Server consolidates capabilities from the existing AWS API MCP and AWS Knowledge servers into a unified interface, providing access to AWS documentation, generating and executing calls to over 15,000 AWS APIs, including those for newly released services, and following pre-built workflows called Agent standard operating procedures (SOPs) that guide AI agents through common tasks on AWS. (C) https://aws.amazon.com/about-aws/whats-new/2025/11/aws-mcp-server/ You can list or review existing resources, or ask to create new resources if you want to. Let’s test it out! Prerequisites: AWS CLI > aws-cli/2.32.7 version Existing AWS account with administrator role AWS CLI > aws-cli/2.32.7 version Existing AWS account with administrator role And let’s get started with the setup: Delete any of the existing AWS MCP servers (You know about https://awslabs.github.io/mcp/ right? :) ), for kiro, for example, from ~/.kiro/settings/mcp.json And add aws-mcp-server: Delete any of the existing AWS MCP servers (You know about https://awslabs.github.io/mcp/ right? :) ), for kiro, for example, from ~/.kiro/settings/mcp.json And add aws-mcp-server: { "mcpServers": { "aws-mcp": { "command": "uvx", "timeout": 100000, "transport": "stdio", "args": [ "mcp-proxy-for-aws@latest", "https://aws-mcp.us-east-1.api.aws/mcp", "--metadata", "AWS_REGION=us-west-2" ] } } } { "mcpServers": { "aws-mcp": { "command": "uvx", "timeout": 100000, "transport": "stdio", "args": [ "mcp-proxy-for-aws@latest", "https://aws-mcp.us-east-1.api.aws/mcp", "--metadata", "AWS_REGION=us-west-2" ] } } } And install uvtoolFor Linux and macOS: And install uvtoolFor Linux and macOS: uv $ curl -LsSf https://astral.sh/uv/install.sh | bash $ curl -LsSf https://astral.sh/uv/install.sh | bash Install kiro-cli, the latest installation steps you can check in the official documentation: https://kiro.dev/cli/ Install kiro-cli, the latest installation steps you can check in the official documentation: https://kiro.dev/cli/ curl -fsSL https://cli.kiro.dev/install | bash curl -fsSL https://cli.kiro.dev/install | bash And the final step is to authorise our CLI in AWS. AWS CLI > 2.32 supports this functionality. Read more. You don’t need to export AWS Access and Secret keys anymore And the final step is to authorise our CLI in AWS. AWS CLI > 2.32 supports this functionality. Read more. You don’t need to export AWS Access and Secret keys anymore Read more $ aws login $ aws login And confirm in the UI Voila! We are ready to test it now ❯ kiro-cli 18:38:17 ⚠ 0 of 1 mcp servers initialized. Servers still loading: - aws-mcp ⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀ ⢀⣴⣶⣶⣦⡀⠀⠀⠀⢀⣴⣶⣦⣄⡀⠀⠀⢀⣴⣶⣶⣦⡀⠀⠀⢀⣴⣶⣶⣶⣶⣶⣶⣶⣶⣶⣦⣄⡀⠀⠀⠀⠀⠀⠀⢀⣠⣴⣶⣶⣶⣶⣶⣦⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀ ⢰⣿⠋⠁⠈⠙⣿⡆⠀⢀⣾⡿⠁⠀⠈⢻⡆⢰⣿⠋⠁⠈⠙⣿⡆⢰⣿⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠻⣦⠀⠀⠀⠀⣴⡿⠟⠋⠁⠀⠀⠀⠈⠙⠻⢿⣦⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀ ⢸⣿⠀⠀⠀⠀⣿⣇⣴⡿⠋⠀⠀⠀⢀⣼⠇⢸⣿⠀⠀⠀⠀⣿⡇⢸⣿⠀⠀⠀⢠⣤⣤⣤⣤⣄⠀⠀⠀⠀⣿⡆⠀⠀⣼⡟⠀⠀⠀⠀⣀⣀⣀⠀⠀⠀⠀⢻⣧⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀ ⢸⣿⠀⠀⠀⠀⣿⡿⠋⠀⠀⠀⢀⣾⡿⠁⠀⢸⣿⠀⠀⠀⠀⣿⡇⢸⣿⠀⠀⠀⢸⣿⠉⠉⠉⣿⡇⠀⠀⠀⣿⡇⠀⣼⡟⠀⠀⠀⣰⡿⠟⠛⠻⢿⣆⠀⠀⠀⢻⣧⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀ ⢸⣿⠀⠀⠀⠀⠙⠁⠀⠀⢀⣼⡟⠁⠀⠀⠀⢸⣿⠀⠀⠀⠀⣿⡇⢸⣿⠀⠀⠀⢸⣿⣶⣶⡶⠋⠀⠀⠀⠀⣿⠇⢰⣿⠀⠀⠀⢰⣿⠀⠀⠀⠀⠀⣿⡆⠀⠀⠀⣿⡆ ⠀⠀⠀⠀⠀⠀⠀ ⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠹⣷⡀⠀⠀⠀⠀⢸⣿⠀⠀⠀⠀⣿⡇⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣼⠟⠀⢸⣿⠀⠀⠀⢸⣿⠀⠀⠀⠀⠀⣿⡇⠀⠀⠀⣿⡇ ⠀⠀⠀⠀⠀⠀⠀ ⢸⣿⠀⠀⠀⠀⠀⣠⡀⠀⠀⠹⣷⡄⠀⠀⠀⢸⣿⠀⠀⠀⠀⣿⡇⢸⣿⠀⠀⠀⠀⣤⣄⠀⠀⠀⠀⠹⣿⡅⠀⠀⠸⣿⠀⠀⠀⠸⣿⠀⠀⠀⠀⠀⣿⠇⠀⠀⠀⣿⠇ ⠀⠀⠀⠀⠀⠀⠀ ⢸⣿⠀⠀⠀⠀⣾⡟⣷⡀⠀⠀⠘⣿⣆⠀⠀⢸⣿⠀⠀⠀⠀⣿⡇⢸⣿⠀⠀⠀⠀⣿⡟⣷⡀⠀⠀⠀⠘⣿⣆⠀⠀⢻⣧⠀⠀⠀⠹⣷⣦⣤⣤⣾⠏⠀⠀⠀⣼⡟ ⠀⠀⠀⠀⠀⠀⠀ ⢸⣿⠀⠀⠀⠀⣿⡇⠹⣷⡀⠀⠀⠈⢻⡇⠀⢸⣿⠀⠀⠀⠀⣿⡇⢸⣿⠀⠀⠀⠀⣿⡇⠹⣷⡀⠀⠀⠀⠈⢻⡇⠀⠀⢻⣧⠀⠀⠀⠀⠉⠉⠉⠀⠀⠀⠀⣼⡟ ⠀⠀⠀⠀⠀⠀⠀ ⠸⣿⣄⡀⢀⣠⣿⠇⠀⠙⣷⡀⠀⢀⣼⠇⠀⠸⣿⣄⡀⢀⣠⣿⠇⠸⣿⣄⡀⢀⣠⣿⠇⠀⠙⣷⡀⠀⠀⢀⣼⠇⠀⠀⠀⠻⣷⣦⣄⡀⠀⠀⠀⢀⣠⣴⣾⠟ ⠀⠀⠀⠀⠀⠀⠀ ⠀⠈⠻⠿⠿⠟⠁⠀⠀⠀⠈⠻⠿⠿⠟⠁⠀⠀⠈⠻⠿⠿⠟⠁⠀⠀⠈⠻⠿⠿⠟⠁⠀⠀⠀⠈⠻⠿⠿⠟⠁⠀⠀⠀⠀⠀⠈⠙⠻⠿⠿⠿⠿⠟⠋⠁ ╭─────────────────────────────── Did you know? ────────────────────────────────╮ │ │ │ Enable workspace checkpoints to snapshot & restore changes. Just run │ │ kiro-cli settings chat.enableCheckpoint true │ │ │ ╰──────────────────────────────────────────────────────────────────────────────╯ Model: Auto (/model to change) | Plan: KIRO FREE (/usage for more detail) > list my lambda functions in eu-central-1 region Running aws cli command (using tool: aws): Service name: lambda Operation name: list-functions Parameters: Region: eu-central-1 Label: List Lambda functions in eu-central-1 Allow this action? Use 't' to trust (always allow) this tool for the session. [y/n/t]: > y - Completed in 0.869s > You have 6 Lambda functions in eu-central-1: 1. sm-ps-demo - Python 3.13, arm64, 128MB 2. step-funtion1 - Node.js 22.x, arm64, 128MB 3. step-function3 - Node.js 22.x, arm64, 128MB 4. latency-check - Node.js 22.x, arm64, 128MB 5. StepFunctionsSample-TransferDataRe-SeedingFunction-1RO9X79DBreo - Node.js 18.x, x86_64, 128MB 6. step-function2 - Node.js 22.x, arm64, 128MB ▸ Credits: 0.08 • Time: 19s ❯ kiro-cli 18:38:17 ⚠ 0 of 1 mcp servers initialized. Servers still loading: - aws-mcp ⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀ ⢀⣴⣶⣶⣦⡀⠀⠀⠀⢀⣴⣶⣦⣄⡀⠀⠀⢀⣴⣶⣶⣦⡀⠀⠀⢀⣴⣶⣶⣶⣶⣶⣶⣶⣶⣶⣦⣄⡀⠀⠀⠀⠀⠀⠀⢀⣠⣴⣶⣶⣶⣶⣶⣦⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀ ⢰⣿⠋⠁⠈⠙⣿⡆⠀⢀⣾⡿⠁⠀⠈⢻⡆⢰⣿⠋⠁⠈⠙⣿⡆⢰⣿⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠻⣦⠀⠀⠀⠀⣴⡿⠟⠋⠁⠀⠀⠀⠈⠙⠻⢿⣦⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀ ⢸⣿⠀⠀⠀⠀⣿⣇⣴⡿⠋⠀⠀⠀⢀⣼⠇⢸⣿⠀⠀⠀⠀⣿⡇⢸⣿⠀⠀⠀⢠⣤⣤⣤⣤⣄⠀⠀⠀⠀⣿⡆⠀⠀⣼⡟⠀⠀⠀⠀⣀⣀⣀⠀⠀⠀⠀⢻⣧⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀ ⢸⣿⠀⠀⠀⠀⣿⡿⠋⠀⠀⠀⢀⣾⡿⠁⠀⢸⣿⠀⠀⠀⠀⣿⡇⢸⣿⠀⠀⠀⢸⣿⠉⠉⠉⣿⡇⠀⠀⠀⣿⡇⠀⣼⡟⠀⠀⠀⣰⡿⠟⠛⠻⢿⣆⠀⠀⠀⢻⣧⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀ ⢸⣿⠀⠀⠀⠀⠙⠁⠀⠀⢀⣼⡟⠁⠀⠀⠀⢸⣿⠀⠀⠀⠀⣿⡇⢸⣿⠀⠀⠀⢸⣿⣶⣶⡶⠋⠀⠀⠀⠀⣿⠇⢰⣿⠀⠀⠀⢰⣿⠀⠀⠀⠀⠀⣿⡆⠀⠀⠀⣿⡆ ⠀⠀⠀⠀⠀⠀⠀ ⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠹⣷⡀⠀⠀⠀⠀⢸⣿⠀⠀⠀⠀⣿⡇⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣼⠟⠀⢸⣿⠀⠀⠀⢸⣿⠀⠀⠀⠀⠀⣿⡇⠀⠀⠀⣿⡇ ⠀⠀⠀⠀⠀⠀⠀ ⢸⣿⠀⠀⠀⠀⠀⣠⡀⠀⠀⠹⣷⡄⠀⠀⠀⢸⣿⠀⠀⠀⠀⣿⡇⢸⣿⠀⠀⠀⠀⣤⣄⠀⠀⠀⠀⠹⣿⡅⠀⠀⠸⣿⠀⠀⠀⠸⣿⠀⠀⠀⠀⠀⣿⠇⠀⠀⠀⣿⠇ ⠀⠀⠀⠀⠀⠀⠀ ⢸⣿⠀⠀⠀⠀⣾⡟⣷⡀⠀⠀⠘⣿⣆⠀⠀⢸⣿⠀⠀⠀⠀⣿⡇⢸⣿⠀⠀⠀⠀⣿⡟⣷⡀⠀⠀⠀⠘⣿⣆⠀⠀⢻⣧⠀⠀⠀⠹⣷⣦⣤⣤⣾⠏⠀⠀⠀⣼⡟ ⠀⠀⠀⠀⠀⠀⠀ ⢸⣿⠀⠀⠀⠀⣿⡇⠹⣷⡀⠀⠀⠈⢻⡇⠀⢸⣿⠀⠀⠀⠀⣿⡇⢸⣿⠀⠀⠀⠀⣿⡇⠹⣷⡀⠀⠀⠀⠈⢻⡇⠀⠀⢻⣧⠀⠀⠀⠀⠉⠉⠉⠀⠀⠀⠀⣼⡟ ⠀⠀⠀⠀⠀⠀⠀ ⠸⣿⣄⡀⢀⣠⣿⠇⠀⠙⣷⡀⠀⢀⣼⠇⠀⠸⣿⣄⡀⢀⣠⣿⠇⠸⣿⣄⡀⢀⣠⣿⠇⠀⠙⣷⡀⠀⠀⢀⣼⠇⠀⠀⠀⠻⣷⣦⣄⡀⠀⠀⠀⢀⣠⣴⣾⠟ ⠀⠀⠀⠀⠀⠀⠀ ⠀⠈⠻⠿⠿⠟⠁⠀⠀⠀⠈⠻⠿⠿⠟⠁⠀⠀⠈⠻⠿⠿⠟⠁⠀⠀⠈⠻⠿⠿⠟⠁⠀⠀⠀⠈⠻⠿⠿⠟⠁⠀⠀⠀⠀⠀⠈⠙⠻⠿⠿⠿⠿⠟⠋⠁ ╭─────────────────────────────── Did you know? ────────────────────────────────╮ │ │ │ Enable workspace checkpoints to snapshot & restore changes. Just run │ │ kiro-cli settings chat.enableCheckpoint true │ │ │ ╰──────────────────────────────────────────────────────────────────────────────╯ Model: Auto (/model to change) | Plan: KIRO FREE (/usage for more detail) > list my lambda functions in eu-central-1 region Running aws cli command (using tool: aws): Service name: lambda Operation name: list-functions Parameters: Region: eu-central-1 Label: List Lambda functions in eu-central-1 Allow this action? Use 't' to trust (always allow) this tool for the session. [y/n/t]: > y - Completed in 0.869s > You have 6 Lambda functions in eu-central-1: 1. sm-ps-demo - Python 3.13, arm64, 128MB 2. step-funtion1 - Node.js 22.x, arm64, 128MB 3. step-function3 - Node.js 22.x, arm64, 128MB 4. latency-check - Node.js 22.x, arm64, 128MB 5. StepFunctionsSample-TransferDataRe-SeedingFunction-1RO9X79DBreo - Node.js 18.x, x86_64, 128MB 6. step-function2 - Node.js 22.x, arm64, 128MB ▸ Credits: 0.08 • Time: 19s Just asked to list existing resources, and it works. Let’s try a more complicated task: > what is my ecs task resources utilisation ? Is it under or overprovisioned? > I'll check your ECS tasks and their resource utilization. Running aws cli command (using tool: aws): Service name: ecs Operation name: list-clusters Parameters: Region: eu-central-1 Label: List ECS clusters Allow this action? Use 't' to trust (always allow) this tool for the session. [y/n/t]: > y - Completed in 1.44s > You don't have any ECS clusters in eu-central-1. Let me check other regions where you might have ECS resources. Running aws cli command (using tool: aws): Service name: ecs Operation name: list-clusters Parameters: Region: us-east-1 Label: List ECS clusters in us-east-1 Allow this action? Use 't' to trust (always allow) this tool for the session. [y/n/t]: > y - Completed in 1.241s Running aws cli command (using tool: aws): Service name: ecs Operation name: describe-clusters Parameters: - clusters: ["hope-therapeutic-cluster"] - include: ["STATISTICS"] Region: us-east-1 Label: Describe ECS cluster details Allow this action? Use 't' to trust (always allow) this tool for the session. [y/n/t]: > y Running aws cli command (using tool: aws): Service name: ecs Operation name: list-services Parameters: - cluster: "hope-therapeutic-cluster" Region: us-east-1 Label: List ECS services in cluster Allow this action? Use 't' to trust (always allow) this tool for the session. [y/n/t]: > y Running aws cli command (using tool: aws): Service name: ecs Operation name: list-tasks Parameters: - cluster: "hope-therapeutic-cluster" Region: us-east-1 Label: List ECS tasks in cluster Allow this action? Use 't' to trust (always allow) this tool for the session. [y/n/t]: > y - Completed in 0.895s - Completed in 0.876s - Completed in 0.924s Running aws cli command (using tool: aws): Service name: ecs Operation name: describe-tasks Parameters: - tasks: ["arn:aws:ecs:us-east-1:1234567891011:task/hope-therapeutic-cluster/74c7a4e16bb34062a31b378f63e917c2"] - cluster: "hope-therapeutic-cluster" - include: ["TAGS"] Region: us-east-1 Label: Get task details and resource allocation Allow this action? Use 't' to trust (always allow) this tool for the session. [y/n/t]: > y Running aws cli command (using tool: aws): Service name: ecs Operation name: describe-services Parameters: - services: ["hope-therapeutic-service"] - cluster: "hope-therapeutic-cluster" Region: us-east-1 Label: Get service details Allow this action? Use 't' to trust (always allow) this tool for the session. [y/n/t]: > y - Completed in 0.915s - Completed in 0.905s > Now let me get the task definition details and check CloudWatch metrics for actual CPU and memory utilization: Running aws cli command (using tool: aws): Service name: ecs Operation name: describe-task-definition Parameters: - taskDefinition: "HopeTherapeuticStackHopeTherapeuticServiceTaskDef7242D9E8:9" Region: us-east-1 Label: Get task definition details Allow this action? Use 't' to trust (always allow) this tool for the session. [y/n/t]: > y Running aws cli command (using tool: aws): Service name: cloudwatch Operation name: get-metric-statistics Parameters: - Period: 3600 - Statistics: ["Average","Maximum"] - Namespace: "AWS/ECS" - Dimensions: [{"Name":"ServiceName","Value":"hope-therapeutic-service"},{"Name":"ClusterName","Value":"hope-therapeutic-cluster"}] - StartTime: "2025-11-24T18:43:13Z" - MetricName: "CPUUtilization" - EndTime: "2025-12-01T18:43:13Z" Region: us-east-1 Label: Get CPU utilization metrics Allow this action? Use 't' to trust (always allow) this tool for the session. [y/n/t]: > y Running aws cli command (using tool: aws): Service name: cloudwatch Operation name: get-metric-statistics Parameters: - StartTime: "2025-11-24T18:43:13Z" - Statistics: ["Average","Maximum"] - Namespace: "AWS/ECS" - MetricName: "MemoryUtilization" - Dimensions: [{"Name":"ServiceName","Value":"hope-therapeutic-service"},{"Name":"ClusterName","Value":"hope-therapeutic-cluster"}] - EndTime: "2025-12-01T18:43:13Z" - Period: 3600 Region: us-east-1 Label: Get memory utilization metrics Allow this action? Use 't' to trust (always allow) this tool for the session. [y/n/t]: > y - Completed in 0.916s - Completed in 1.576s - Completed in 1.321s > Based on the data, your ECS task is significantly overprovisioned: Resource Allocation: - CPU: 1024 (1 vCPU) - Memory: 2048 MB (2 GB) - Launch Type: Fargate Actual Utilization (last 7 days): - **Memory**: ~2.1% average (max 2.15%) - Using only ~43 MB out of 2048 MB allocated - **CPU**: ~0.01% average (max 6.18% spike) - Essentially idle most of the time Recommendations: You can safely reduce to the smallest Fargate configuration: - CPU: 256 (.25 vCPU) - 75% reduction - Memory: 512 MB - 75% reduction This would: - Save approximately 75% on Fargate costs - Still provide 10x headroom over current usage - Handle traffic spikes comfortably (your max spike was only 6% CPU) The task is running a Node.js web application on port 3000 with very light load. Even with the minimum Fargate configuration, you'd have plenty of capacity for growth. > what is my ecs task resources utilisation ? Is it under or overprovisioned? > I'll check your ECS tasks and their resource utilization. Running aws cli command (using tool: aws): Service name: ecs Operation name: list-clusters Parameters: Region: eu-central-1 Label: List ECS clusters Allow this action? Use 't' to trust (always allow) this tool for the session. [y/n/t]: > y - Completed in 1.44s > You don't have any ECS clusters in eu-central-1. Let me check other regions where you might have ECS resources. Running aws cli command (using tool: aws): Service name: ecs Operation name: list-clusters Parameters: Region: us-east-1 Label: List ECS clusters in us-east-1 Allow this action? Use 't' to trust (always allow) this tool for the session. [y/n/t]: > y - Completed in 1.241s Running aws cli command (using tool: aws): Service name: ecs Operation name: describe-clusters Parameters: - clusters: ["hope-therapeutic-cluster"] - include: ["STATISTICS"] Region: us-east-1 Label: Describe ECS cluster details Allow this action? Use 't' to trust (always allow) this tool for the session. [y/n/t]: > y Running aws cli command (using tool: aws): Service name: ecs Operation name: list-services Parameters: - cluster: "hope-therapeutic-cluster" Region: us-east-1 Label: List ECS services in cluster Allow this action? Use 't' to trust (always allow) this tool for the session. [y/n/t]: > y Running aws cli command (using tool: aws): Service name: ecs Operation name: list-tasks Parameters: - cluster: "hope-therapeutic-cluster" Region: us-east-1 Label: List ECS tasks in cluster Allow this action? Use 't' to trust (always allow) this tool for the session. [y/n/t]: > y - Completed in 0.895s - Completed in 0.876s - Completed in 0.924s Running aws cli command (using tool: aws): Service name: ecs Operation name: describe-tasks Parameters: - tasks: ["arn:aws:ecs:us-east-1:1234567891011:task/hope-therapeutic-cluster/74c7a4e16bb34062a31b378f63e917c2"] - cluster: "hope-therapeutic-cluster" - include: ["TAGS"] Region: us-east-1 Label: Get task details and resource allocation Allow this action? Use 't' to trust (always allow) this tool for the session. [y/n/t]: > y Running aws cli command (using tool: aws): Service name: ecs Operation name: describe-services Parameters: - services: ["hope-therapeutic-service"] - cluster: "hope-therapeutic-cluster" Region: us-east-1 Label: Get service details Allow this action? Use 't' to trust (always allow) this tool for the session. [y/n/t]: > y - Completed in 0.915s - Completed in 0.905s > Now let me get the task definition details and check CloudWatch metrics for actual CPU and memory utilization: Running aws cli command (using tool: aws): Service name: ecs Operation name: describe-task-definition Parameters: - taskDefinition: "HopeTherapeuticStackHopeTherapeuticServiceTaskDef7242D9E8:9" Region: us-east-1 Label: Get task definition details Allow this action? Use 't' to trust (always allow) this tool for the session. [y/n/t]: > y Running aws cli command (using tool: aws): Service name: cloudwatch Operation name: get-metric-statistics Parameters: - Period: 3600 - Statistics: ["Average","Maximum"] - Namespace: "AWS/ECS" - Dimensions: [{"Name":"ServiceName","Value":"hope-therapeutic-service"},{"Name":"ClusterName","Value":"hope-therapeutic-cluster"}] - StartTime: "2025-11-24T18:43:13Z" - MetricName: "CPUUtilization" - EndTime: "2025-12-01T18:43:13Z" Region: us-east-1 Label: Get CPU utilization metrics Allow this action? Use 't' to trust (always allow) this tool for the session. [y/n/t]: > y Running aws cli command (using tool: aws): Service name: cloudwatch Operation name: get-metric-statistics Parameters: - StartTime: "2025-11-24T18:43:13Z" - Statistics: ["Average","Maximum"] - Namespace: "AWS/ECS" - MetricName: "MemoryUtilization" - Dimensions: [{"Name":"ServiceName","Value":"hope-therapeutic-service"},{"Name":"ClusterName","Value":"hope-therapeutic-cluster"}] - EndTime: "2025-12-01T18:43:13Z" - Period: 3600 Region: us-east-1 Label: Get memory utilization metrics Allow this action? Use 't' to trust (always allow) this tool for the session. [y/n/t]: > y - Completed in 0.916s - Completed in 1.576s - Completed in 1.321s > Based on the data, your ECS task is significantly overprovisioned: Resource Allocation: - CPU: 1024 (1 vCPU) - Memory: 2048 MB (2 GB) - Launch Type: Fargate Actual Utilization (last 7 days): - **Memory**: ~2.1% average (max 2.15%) - Using only ~43 MB out of 2048 MB allocated - **CPU**: ~0.01% average (max 6.18% spike) - Essentially idle most of the time Recommendations: You can safely reduce to the smallest Fargate configuration: - CPU: 256 (.25 vCPU) - 75% reduction - Memory: 512 MB - 75% reduction This would: - Save approximately 75% on Fargate costs - Still provide 10x headroom over current usage - Handle traffic spikes comfortably (your max spike was only 6% CPU) The task is running a Node.js web application on port 3000 with very light load. Even with the minimum Fargate configuration, you'd have plenty of capacity for growth. As you see from the thinking process, it tries the current region - nothing was found, it tries us-east-1 region and found a cluster, after it found a task definition, service and went to CloudWatch metrics to fetch resources utilisation with the final recommendations to reduce resources given for this task. It’s an impressive start, isn’t it? What about resource creation? > Create me a python function to list existing ecs tasks in us-east-1 region, deploy this function with required permissions to us-east-1 region and give me lambda arn to test it > I'll create a minimal Python Lambda function to list ECS tasks, deploy it, and give you the ARN. I'll create the following file: /tmp/list_ecs_tasks.py (using tool: write) + 1: import boto3 + 2: import json + 3: + 4: ecs = boto3.client('ecs', region_name='us-east-1') + 5: + 6: def lambda_handler(event, context): + 7: clusters = ecs.list_clusters()['clusterArns'] + 8: + 9: result = [] + 10: for cluster in clusters: + 11: tasks = ecs.list_tasks(cluster=cluster)['taskArns'] + 12: if tasks: + 13: result.append({ + 14: 'cluster': cluster.split('/')[-1], + 15: 'tasks': [t.split('/')[-1] for t in tasks] + 16: }) + 17: + 18: return { + 19: 'statusCode': 200, + 20: 'body': json.dumps(result) + 21: } Allow this action? Use 't' to trust (always allow) this tool for the session. [y/n/t]: > y Creating: /tmp/list_ecs_tasks.py - Completed in 0.3s I will run the following command: cd /tmp && zip -q list_ecs_tasks.zip list_ecs_tasks.py (using tool: shell) Purpose: Create deployment package Allow this action? Use 't' to trust (always allow) this tool for the session. [y/n/t]: > y - Completed in 0.19s Running aws cli command (using tool: aws): Service name: iam Operation name: create-role Parameters: - RoleName: "list-ecs-tasks-lambda-role" - AssumeRolePolicyDocument: "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"lambda.amazonaws.com\"},\"Action\":\"sts:AssumeRole\"}]}" Region: us-east-1 Label: Create IAM role for Lambda - Completed in 1.124s Running aws cli command (using tool: aws): Service name: iam Operation name: put-role-policy Parameters: - PolicyDocument: "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Action\":[\"ecs:ListClusters\",\"ecs:ListTasks\",\"logs:CreateLogGroup\",\"logs:CreateLogStream\",\"logs:PutLogEvents\"],\"Resource\":\"*\"}]}" - RoleName: "list-ecs-tasks-lambda-role" - PolicyName: "ecs-list-policy" Region: us-east-1 Label: Attach ECS permissions to role - Completed in 1.56s I will run the following command: sleep 10 (using tool: shell) Purpose: Wait for IAM role propagation Allow this action? Use 't' to trust (always allow) this tool for the session. [y/n/t]: > y - Completed in 10.15s Running aws cli command (using tool: aws): Service name: lambda Operation name: create-function Parameters: - Timeout: 30 - Architectures: ["arm64"] - FunctionName: "list-ecs-tasks" - MemorySize: 128 - Runtime: "python3.13" - Handler: "list_ecs_tasks.lambda_handler" - Code: {"ZipFile":""} - Role: "arn:aws:iam::1234567891011:role/list-ecs-tasks-lambda-role" Region: us-east-1 Label: Create Lambda function ⋮ ● Execution failed after 0.506s: ZipFile cannot be provided as part of the --code argument. Please use the '--zip-file' option instead to specify a zip file. I will run the following command: aws lambda create-function \ --function-name list-ecs-tasks \ --runtime python3.13 \ --role arn:aws:iam::1234567891011:role/list-ecs-tasks-lambda-role \ --handler list_ecs_tasks.lambda_handler \ --zip-file fileb:///tmp/list_ecs_tasks.zip \ --timeout 30 \ --memory-size 128 \ --architectures arm64 \ --region us-east-1 (using tool: shell) Purpose: Create Lambda function using AWS CLI Allow this action? Use 't' to trust (always allow) this tool for the session. [y/n/t]: > y { "FunctionName": "list-ecs-tasks", "FunctionArn": "arn:aws:lambda:us-east-1:1234567891011:function:list-ecs-tasks", "Runtime": "python3.13", "Role": "arn:aws:iam::1234567891011:role/list-ecs-tasks-lambda-role", "Handler": "list_ecs_tasks.lambda_handler", "CodeSize": 452, "Description": "", "Timeout": 30, "MemorySize": 128, "LastModified": "2025-12-01T19:33:13.454+0000", "CodeSha256": "5dXUTTD2iVvNLCut/rS28zPz6uUjuGVN7JDcApySmkI=", "Version": "$LATEST", "TracingConfig": { "Mode": "PassThrough" }, "RevisionId": "492972d1-be8a-4512-9102-6f140c4a8480", "State": "Pending", "StateReason": "The function is being created.", "StateReasonCode": "Creating", "PackageType": "Zip", "Architectures": [ "arm64" ], "EphemeralStorage": { "Size": 512 }, "SnapStart": { "ApplyOn": "None", "OptimizationStatus": "Off" }, "RuntimeVersionConfig": { "RuntimeVersionArn": "arn:aws:lambda:us-east-1::runtime:3e3a3605cfe7da866e05663426b7d097356b064d47290ddfe6189c3540e8b1c8" }, "LoggingConfig": { "LogFormat": "Text", "LogGroup": "/aws/lambda/list-ecs-tasks" } } - Completed in 1.295s > Perfect! Your Lambda function has been deployed successfully. Lambda ARN: arn:aws:lambda:us-east-1:1234567891011:function:list-ecs-tasks To test it, run: bash aws lambda invoke --function-name list-ecs-tasks --region us-east-1 /tmp/output.json && cat /tmp/output.json The function will: - List all ECS clusters in us-east-1 - For each cluster, list all running tasks - Return cluster names and task IDs in a clean format Permissions granted: - ecs:ListClusters - ecs:ListTasks - CloudWatch Logs (for function logging) ▸ Credits: 2.09 • Time: 2m 7s > Create me a python function to list existing ecs tasks in us-east-1 region, deploy this function with required permissions to us-east-1 region and give me lambda arn to test it > I'll create a minimal Python Lambda function to list ECS tasks, deploy it, and give you the ARN. I'll create the following file: /tmp/list_ecs_tasks.py (using tool: write) + 1: import boto3 + 2: import json + 3: + 4: ecs = boto3.client('ecs', region_name='us-east-1') + 5: + 6: def lambda_handler(event, context): + 7: clusters = ecs.list_clusters()['clusterArns'] + 8: + 9: result = [] + 10: for cluster in clusters: + 11: tasks = ecs.list_tasks(cluster=cluster)['taskArns'] + 12: if tasks: + 13: result.append({ + 14: 'cluster': cluster.split('/')[-1], + 15: 'tasks': [t.split('/')[-1] for t in tasks] + 16: }) + 17: + 18: return { + 19: 'statusCode': 200, + 20: 'body': json.dumps(result) + 21: } Allow this action? Use 't' to trust (always allow) this tool for the session. [y/n/t]: > y Creating: /tmp/list_ecs_tasks.py - Completed in 0.3s I will run the following command: cd /tmp && zip -q list_ecs_tasks.zip list_ecs_tasks.py (using tool: shell) Purpose: Create deployment package Allow this action? Use 't' to trust (always allow) this tool for the session. [y/n/t]: > y - Completed in 0.19s Running aws cli command (using tool: aws): Service name: iam Operation name: create-role Parameters: - RoleName: "list-ecs-tasks-lambda-role" - AssumeRolePolicyDocument: "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"lambda.amazonaws.com\"},\"Action\":\"sts:AssumeRole\"}]}" Region: us-east-1 Label: Create IAM role for Lambda - Completed in 1.124s Running aws cli command (using tool: aws): Service name: iam Operation name: put-role-policy Parameters: - PolicyDocument: "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Action\":[\"ecs:ListClusters\",\"ecs:ListTasks\",\"logs:CreateLogGroup\",\"logs:CreateLogStream\",\"logs:PutLogEvents\"],\"Resource\":\"*\"}]}" - RoleName: "list-ecs-tasks-lambda-role" - PolicyName: "ecs-list-policy" Region: us-east-1 Label: Attach ECS permissions to role - Completed in 1.56s I will run the following command: sleep 10 (using tool: shell) Purpose: Wait for IAM role propagation Allow this action? Use 't' to trust (always allow) this tool for the session. [y/n/t]: > y - Completed in 10.15s Running aws cli command (using tool: aws): Service name: lambda Operation name: create-function Parameters: - Timeout: 30 - Architectures: ["arm64"] - FunctionName: "list-ecs-tasks" - MemorySize: 128 - Runtime: "python3.13" - Handler: "list_ecs_tasks.lambda_handler" - Code: {"ZipFile":""} - Role: "arn:aws:iam::1234567891011:role/list-ecs-tasks-lambda-role" Region: us-east-1 Label: Create Lambda function ⋮ ● Execution failed after 0.506s: ZipFile cannot be provided as part of the --code argument. Please use the '--zip-file' option instead to specify a zip file. I will run the following command: aws lambda create-function \ --function-name list-ecs-tasks \ --runtime python3.13 \ --role arn:aws:iam::1234567891011:role/list-ecs-tasks-lambda-role \ --handler list_ecs_tasks.lambda_handler \ --zip-file fileb:///tmp/list_ecs_tasks.zip \ --timeout 30 \ --memory-size 128 \ --architectures arm64 \ --region us-east-1 (using tool: shell) Purpose: Create Lambda function using AWS CLI Allow this action? Use 't' to trust (always allow) this tool for the session. [y/n/t]: > y { "FunctionName": "list-ecs-tasks", "FunctionArn": "arn:aws:lambda:us-east-1:1234567891011:function:list-ecs-tasks", "Runtime": "python3.13", "Role": "arn:aws:iam::1234567891011:role/list-ecs-tasks-lambda-role", "Handler": "list_ecs_tasks.lambda_handler", "CodeSize": 452, "Description": "", "Timeout": 30, "MemorySize": 128, "LastModified": "2025-12-01T19:33:13.454+0000", "CodeSha256": "5dXUTTD2iVvNLCut/rS28zPz6uUjuGVN7JDcApySmkI=", "Version": "$LATEST", "TracingConfig": { "Mode": "PassThrough" }, "RevisionId": "492972d1-be8a-4512-9102-6f140c4a8480", "State": "Pending", "StateReason": "The function is being created.", "StateReasonCode": "Creating", "PackageType": "Zip", "Architectures": [ "arm64" ], "EphemeralStorage": { "Size": 512 }, "SnapStart": { "ApplyOn": "None", "OptimizationStatus": "Off" }, "RuntimeVersionConfig": { "RuntimeVersionArn": "arn:aws:lambda:us-east-1::runtime:3e3a3605cfe7da866e05663426b7d097356b064d47290ddfe6189c3540e8b1c8" }, "LoggingConfig": { "LogFormat": "Text", "LogGroup": "/aws/lambda/list-ecs-tasks" } } - Completed in 1.295s > Perfect! Your Lambda function has been deployed successfully. Lambda ARN: arn:aws:lambda:us-east-1:1234567891011:function:list-ecs-tasks To test it, run: bash aws lambda invoke --function-name list-ecs-tasks --region us-east-1 /tmp/output.json && cat /tmp/output.json The function will: - List all ECS clusters in us-east-1 - For each cluster, list all running tasks - Return cluster names and task IDs in a clean format Permissions granted: - ecs:ListClusters - ecs:ListTasks - CloudWatch Logs (for function logging) ▸ Credits: 2.09 • Time: 2m 7s It has created a new function with a role to only list clusters and tasks. Let’s try one more example: > generate a static website with a feedback form. I want to deploy it to aws to s3 bucket and cloudfront, and as an api I want to have a lambda function, which will send email from this feedback form to admin@example.com. The function needs to be written using python or nodejs. > I'll create a minimal static website with a feedback form, Lambda function, and deployment configuration for S3/CloudFront. I'll create the following file: /Users/username/work/work/fastapi/static-site/index.html (using tool: write) Purpose: Create minimal HTML feedback form ..... <removed huge output with generated html/css code> ..... Changeset created successfully. arn:aws:cloudformation:us-east-1:1234567891011:changeSet/samcli-deploy1764629712/efd6412c-fde3-46d2-8fe6-658ac02df375 2025-12-01 22:55:19 - Waiting for stack create/update to complete CloudFormation events from stack operations (refresh every 5.0 seconds) ------------------------------------------------------------------------------------------------- ResourceStatus ResourceType LogicalResourceId ResourceStatusReason ------------------------------------------------------------------------------------------------- CREATE_IN_PROGRESS AWS::CloudFormation::S feedback-site User Initiated tack CREATE_IN_PROGRESS AWS::IAM::Role FeedbackFunctionRole - CREATE_IN_PROGRESS AWS::S3::Bucket WebsiteBucket - CREATE_IN_PROGRESS AWS::CloudFront::Origi CloudFrontOAC - nAccessControl CREATE_IN_PROGRESS AWS::CloudFront::Origi CloudFrontOAC Resource creation nAccessControl Initiated CREATE_IN_PROGRESS AWS::IAM::Role FeedbackFunctionRole Resource creation Initiated CREATE_IN_PROGRESS AWS::S3::Bucket WebsiteBucket Resource creation Initiated CREATE_COMPLETE AWS::CloudFront::Origi CloudFrontOAC - nAccessControl CREATE_COMPLETE AWS::S3::Bucket WebsiteBucket - CREATE_IN_PROGRESS AWS::CloudFront::Distr CloudFrontDistribution - ibution CREATE_COMPLETE AWS::IAM::Role FeedbackFunctionRole - CREATE_IN_PROGRESS AWS::CloudFront::Distr CloudFrontDistribution Resource creation ibution Initiated CREATE_IN_PROGRESS AWS::Lambda::Function FeedbackFunction - CREATE_IN_PROGRESS - AWS::CloudFront::Distr CloudFrontDistribution Eventual consistency CONFIGURATION_COMPLETE ibution check initiated CREATE_IN_PROGRESS AWS::Lambda::Function FeedbackFunction Resource creation Initiated CREATE_IN_PROGRESS - AWS::Lambda::Function FeedbackFunction Eventual consistency CONFIGURATION_COMPLETE check initiated CREATE_IN_PROGRESS AWS::ApiGateway::RestA FeedbackApi - pi CREATE_IN_PROGRESS AWS::ApiGateway::RestA FeedbackApi Resource creation pi Initiated CREATE_COMPLETE AWS::ApiGateway::RestA FeedbackApi - pi CREATE_IN_PROGRESS AWS::ApiGateway::Deplo FeedbackApiDeployment8 - yment 6a2dc2f75 CREATE_IN_PROGRESS AWS::Lambda::Permissio FeedbackFunctionApiPer - n missionprod CREATE_IN_PROGRESS AWS::Lambda::Permissio FeedbackFunctionApiPer Resource creation n missionprod Initiated CREATE_IN_PROGRESS AWS::ApiGateway::Deplo FeedbackApiDeployment8 Resource creation yment 6a2dc2f75 Initiated CREATE_COMPLETE AWS::Lambda::Permissio FeedbackFunctionApiPer - n missionprod CREATE_COMPLETE AWS::ApiGateway::Deplo FeedbackApiDeployment8 - yment 6a2dc2f75 CREATE_COMPLETE AWS::Lambda::Function FeedbackFunction - CREATE_IN_PROGRESS AWS::ApiGateway::Stage FeedbackApiprodStage - CREATE_IN_PROGRESS AWS::ApiGateway::Stage FeedbackApiprodStage Resource creation Initiated CREATE_COMPLETE AWS::ApiGateway::Stage FeedbackApiprodStage - CREATE_COMPLETE AWS::CloudFront::Distr CloudFrontDistribution - ibution CREATE_IN_PROGRESS AWS::S3::BucketPolicy BucketPolicy - CREATE_IN_PROGRESS AWS::S3::BucketPolicy BucketPolicy Resource creation Initiated CREATE_COMPLETE AWS::S3::BucketPolicy BucketPolicy - CREATE_COMPLETE AWS::CloudFormation::S feedback-site - tack ------------------------------------------------------------------------------------------------- CloudFormation outputs from deployed stack ------------------------------------------------------------------------------------------------- Outputs ------------------------------------------------------------------------------------------------- Key ApiURL Description - Value https://te04qk76t0.execute-api.us-east-1.amazonaws.com/prod/feedback Key BucketName Description - Value feedback-site-websitebucket-5ymcd07pohsv Key WebsiteURL Description - Value da7da5qshdkp7.cloudfront.net ------------------------------------------------------------------------------------------------- Successfully created/updated stack - feedback-site in us-east-1 - Completed in 253.820s > Perfect! The stack deployed successfully > generate a static website with a feedback form. I want to deploy it to aws to s3 bucket and cloudfront, and as an api I want to have a lambda function, which will send email from this feedback form to admin@example.com. The function needs to be written using python or nodejs. > I'll create a minimal static website with a feedback form, Lambda function, and deployment configuration for S3/CloudFront. I'll create the following file: /Users/username/work/work/fastapi/static-site/index.html (using tool: write) Purpose: Create minimal HTML feedback form ..... <removed huge output with generated html/css code> ..... Changeset created successfully. arn:aws:cloudformation:us-east-1:1234567891011:changeSet/samcli-deploy1764629712/efd6412c-fde3-46d2-8fe6-658ac02df375 2025-12-01 22:55:19 - Waiting for stack create/update to complete CloudFormation events from stack operations (refresh every 5.0 seconds) ------------------------------------------------------------------------------------------------- ResourceStatus ResourceType LogicalResourceId ResourceStatusReason ------------------------------------------------------------------------------------------------- CREATE_IN_PROGRESS AWS::CloudFormation::S feedback-site User Initiated tack CREATE_IN_PROGRESS AWS::IAM::Role FeedbackFunctionRole - CREATE_IN_PROGRESS AWS::S3::Bucket WebsiteBucket - CREATE_IN_PROGRESS AWS::CloudFront::Origi CloudFrontOAC - nAccessControl CREATE_IN_PROGRESS AWS::CloudFront::Origi CloudFrontOAC Resource creation nAccessControl Initiated CREATE_IN_PROGRESS AWS::IAM::Role FeedbackFunctionRole Resource creation Initiated CREATE_IN_PROGRESS AWS::S3::Bucket WebsiteBucket Resource creation Initiated CREATE_COMPLETE AWS::CloudFront::Origi CloudFrontOAC - nAccessControl CREATE_COMPLETE AWS::S3::Bucket WebsiteBucket - CREATE_IN_PROGRESS AWS::CloudFront::Distr CloudFrontDistribution - ibution CREATE_COMPLETE AWS::IAM::Role FeedbackFunctionRole - CREATE_IN_PROGRESS AWS::CloudFront::Distr CloudFrontDistribution Resource creation ibution Initiated CREATE_IN_PROGRESS AWS::Lambda::Function FeedbackFunction - CREATE_IN_PROGRESS - AWS::CloudFront::Distr CloudFrontDistribution Eventual consistency CONFIGURATION_COMPLETE ibution check initiated CREATE_IN_PROGRESS AWS::Lambda::Function FeedbackFunction Resource creation Initiated CREATE_IN_PROGRESS - AWS::Lambda::Function FeedbackFunction Eventual consistency CONFIGURATION_COMPLETE check initiated CREATE_IN_PROGRESS AWS::ApiGateway::RestA FeedbackApi - pi CREATE_IN_PROGRESS AWS::ApiGateway::RestA FeedbackApi Resource creation pi Initiated CREATE_COMPLETE AWS::ApiGateway::RestA FeedbackApi - pi CREATE_IN_PROGRESS AWS::ApiGateway::Deplo FeedbackApiDeployment8 - yment 6a2dc2f75 CREATE_IN_PROGRESS AWS::Lambda::Permissio FeedbackFunctionApiPer - n missionprod CREATE_IN_PROGRESS AWS::Lambda::Permissio FeedbackFunctionApiPer Resource creation n missionprod Initiated CREATE_IN_PROGRESS AWS::ApiGateway::Deplo FeedbackApiDeployment8 Resource creation yment 6a2dc2f75 Initiated CREATE_COMPLETE AWS::Lambda::Permissio FeedbackFunctionApiPer - n missionprod CREATE_COMPLETE AWS::ApiGateway::Deplo FeedbackApiDeployment8 - yment 6a2dc2f75 CREATE_COMPLETE AWS::Lambda::Function FeedbackFunction - CREATE_IN_PROGRESS AWS::ApiGateway::Stage FeedbackApiprodStage - CREATE_IN_PROGRESS AWS::ApiGateway::Stage FeedbackApiprodStage Resource creation Initiated CREATE_COMPLETE AWS::ApiGateway::Stage FeedbackApiprodStage - CREATE_COMPLETE AWS::CloudFront::Distr CloudFrontDistribution - ibution CREATE_IN_PROGRESS AWS::S3::BucketPolicy BucketPolicy - CREATE_IN_PROGRESS AWS::S3::BucketPolicy BucketPolicy Resource creation Initiated CREATE_COMPLETE AWS::S3::BucketPolicy BucketPolicy - CREATE_COMPLETE AWS::CloudFormation::S feedback-site - tack ------------------------------------------------------------------------------------------------- CloudFormation outputs from deployed stack ------------------------------------------------------------------------------------------------- Outputs ------------------------------------------------------------------------------------------------- Key ApiURL Description - Value https://te04qk76t0.execute-api.us-east-1.amazonaws.com/prod/feedback Key BucketName Description - Value feedback-site-websitebucket-5ymcd07pohsv Key WebsiteURL Description - Value da7da5qshdkp7.cloudfront.net ------------------------------------------------------------------------------------------------- Successfully created/updated stack - feedback-site in us-east-1 - Completed in 253.820s > Perfect! The stack deployed successfully And the page itself: With minimal knowledge, just using prompts, I have a simple website and infrastructure. With the MCP Server, you can provision new resources, review and analyse your AWS environment, and quickly troubleshoot or resolve issues across your infrastructure.