AWS ECS MCP Server

raw JSON →
0.1.28 verified Fri May 01 auth: no python

An MCP (Model Context Protocol) server that automates containerization and deployment of web applications to AWS ECS. Version 0.1.28, requires Python >=3.10.

pip install awslabs-ecs-mcp-server
error ModuleNotFoundError: No module named 'ecs_mcp_server'
cause The package is not installed in the current Python environment.
fix
Run pip install awslabs-ecs-mcp-server from the same environment.
error botocore.exceptions.NoCredentialsError: Unable to locate credentials
cause AWS credentials are not set as environment variables or in a config file.
fix
Export AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_REGION or configure AWS CLI with aws configure.
error ValueError: Invalid transport: 'stdio' is not supported by this server
cause The server may have been started with an unsupported transport (e.g., http).
fix
Remove any custom transport arguments and use the default stdio transport.
gotcha The server requires AWS credentials and appropriate IAM permissions (ecs:*). Common mistake: missing IAM roles leads to cryptic boto3 errors.
fix Set AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, and AWS_REGION environment variables or use a valid AWS profile.
gotcha The server uses stdio transport by default and is intended to be used with an MCP client (e.g., Claude Desktop, VS Code extension). Running standalone without a client does nothing visible.
fix Configure an MCP client to launch the server via `mcp install awslabs-ecs-mcp-server` or point to the script.
deprecated Some tools (e.g., deploy) may rely on Docker being installed locally. If Docker is not available, the server errors.
fix Ensure Docker is installed and running, or use the '--platform' flag if supported.

Minimal example to start the ECS MCP server. Ensure AWS credentials are configured.

import os
from ecs_mcp_server import app

# Requires AWS credentials (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_REGION)
# and AWS_PROFILE or environment variables.
os.environ.setdefault('AWS_REGION', 'us-east-1')
# Run the MCP server (uses stdio transport by default)
app.run()