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
- RDS
- S3
- EC2
- VPC
- Subnet
- Internet Gateway
- Route Table
- Security Group
- Key Pair
- Instance Tag
- AMI
More AWS services (like EC2, Lambda, etc.) coming soon! Contributions welcome 🚀
- Node.js >= 18.0.0
- pnpm >= 10.0.0
- AWS Account with AWS credentials(Access Key ID and Secret Access Key)
git clone https://github.com/lokeswaran-aj/aws-mcp.git
cd aws-mcp
cp .env.example .env
Then update your AWS credentials inside .env
. Make sure you've created an IAM user with appropriate permissions.
❗️Currently, the server reads credentials from environment variables. In future versions, we'll support secure credential injection or AWS SSO.
pnpm install
💡 Make sure you have
pnpm
installed globally. If not:npm install -g pnpm
pnpm dev
The server will start on the port specified in your .env
file (default is 8080
).
MCP SSE endpoint:
http://localhost:8080/sse
To use this server with Windsurf IDE, add the following to your ~/.codeium/windsurf/mcp_config.json
:
{
"mcpServers": {
"aws": {
"serverUrl": "http://localhost:8080/sse"
}
}
}
.
├── src/
│ ├── index.ts # Entry point
│ ├── server.ts # AWS MCP server setup
│ ├── aws-clients.ts # AWS SDK client setup
│ ├── config/ # App configuration
│ ├── controllers/ # MCP request handlers
│ ├── routes/ # API endpoints
│ ├── tools/ # Tools definitions
│ │ └── rds/ # RDS operations (create, list, delete, update)
│ ├── schema/ # Tool input schemas
│ ├── services/ # Transport handler
│ ├── types/ # TypeScript definitions
│ └── utils/ # Helper functions
├── package.json # Dependencies and scripts
└── README.md # This file
- Support RDS (Create, List, Update, Delete)
- Add S3 tools
- Add Network tools
- Add EC2 tools
- Add Lambda tools
- Add IAM tools
- Add ECS tools
Want to help make AWS infra chat-native? Pull requests, feedback, and feature suggestions are welcome!
- Clone and fork the repo
- Create your feature branch (
git checkout -b feat/add-ec2
) - Commit and push
- Open a PR 🙌
MIT — do what you want, just give credit where it's due. ✌️