AWS
STREAMABLE HTTPHTTP-SSE通过自然语言命令部署AWS基础设施的MCP服务器
通过自然语言命令部署AWS基础设施的MCP服务器
See it in action! Here's how easy it is to spin up a full-blown EC2 setup — VPC, subnets, security groups, this works — all through natural language prompts to an AI Model Context Protocol (MCP) server.
Currently supports
More AWS services (like Lambda, API Gateway, etc.) coming soon! Contributions welcome 🚀
For Development:
For Docker Deployment:
For Both:
git clone https://github.com/lokeswaran-aj/aws-mcp.git cd aws-mcp
❗️Currently, the server reads credentials from MCP configuration headers. In future versions, we'll support AWS Role ARN.
pnpm install
💡 Make sure you have
pnpminstalled globally. If not:npm install -g pnpm
pnpm dev
Option 1: Using Docker Compose (Recommended)
docker-compose up -d
Option 2: Using Docker directly
# Build the image docker build -t aws-mcp . # Run with port mapping docker run -d --name aws-mcp-server -p 8080:8080 aws-mcp
The server will be available at:
http://localhost:8080/mcphttp://localhost:8080/sse# View logs docker-compose logs -f # Stop container docker-compose down # Rebuild and restart docker-compose build --no-cache && docker-compose up -d # Stop aws-mcp-server and remove container docker stop aws-mcp-server && docker rm aws-mcp-server
💡 AWS credentials are still passed via HTTP headers (same as development setup). No container configuration needed.
To use this server with Cursor, add the following to your ~/.cursor/mcp.json:
{ "mcpServers": { "aws": { "serverUrl": "http://localhost:8080/mcp", "headers": { "AWS_ACCESS_KEY_ID": "YOUR_AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY": "YOUR_AWS_SECRET_ACCESS_KEY", "AWS_SESSION_TOKEN": "YOUR_AWS_SESSION_TOKEN" } } } }
❗️ Use
http://localhost:8080/mcpif your client supports HTTP streamable(For eg: Cursor). Usehttp://localhost:8080/sseif your client supports only SSE(For eg: Windsurf).
MCP HTTP streamable endpoint: http://localhost:8080/mcp
MCP SSE endpoint: http://localhost:8080/sse
. ├── src/ │ ├── server.ts # AWS MCP server setup - Entry point │ ├── aws-clients.ts # AWS SDK client setup │ ├── config/ # App configuration │ ├── tools/ # Tools definitions │ │ ├── rds/ # RDS operations │ │ ├── s3/ # S3 operations │ │ ├── ec2/ # EC2 operations │ │ ├── vpc/ # VPC operations │ │ ├── subnet/ # Subnet operations │ │ ├── internet-gateway/ # Internet Gateway operations │ │ ├── route-table/ # Route Table operations │ │ ├── security-group/ # Security Group operations │ │ ├── key-pair/ # Key Pair operations │ │ ├── instance-tag/ # Instance Tag operations │ │ ├── ami/ # AMI operations │ ├── schema/ # Tool input schemas │ ├── types/ # TypeScript definitions │ └── utils/ # Helper functions ├── package.json # Dependencies and scripts └── README.md # This file
Want to help make AWS infra chat-native? Pull requests, feedback, and feature suggestions are welcome!
git checkout -b feat/add-ec2)MIT — do what you want, just give credit where it's due. ✌️