AWS MCP
Uma interface de linguagem natural para gerenciar serviços AWS como RDS, S3, EC2 e VPC.
Documentação
🎬 Demonstração
Veja em ação! Veja como é fácil montar uma configuração EC2 completa — VPC, subnets, security groups, tudo funciona — tudo por meio de prompts em linguagem natural para um servidor AI Model Context Protocol (MCP).
✨ Recursos
Atualmente suporta
- RDS
- S3
- EC2
- VPC
- Subnet
- Internet Gateway
- Route Table
- Security Group
- Key Pair
- Instance Tag
- AMI
Mais serviços AWS (como Lambda, API Gateway, etc.) em breve! Contribuições são bem-vindas 🚀
📋 Pré-requisitos
Para Desenvolvimento:
- Node.js >= 18.0.0
- pnpm >= 10.0.0
Para Implantação com Docker:
- Docker e Docker Compose
Para Ambos:
- Conta AWS com credenciais AWS (Access Key ID e Secret Access Key)
⚙️ Configuração do Desenvolvedor
1. Clone o repositório
git clone https://github.com/lokeswaran-aj/aws-mcp.git
cd aws-mcp
❗️Atualmente, o servidor lê as credenciais dos cabeçalhos de configuração do MCP. Em versões futuras, suportaremos AWS Role ARN.
2. Instale as dependências
pnpm install
💡 Certifique-se de ter
pnpminstalado globalmente. Se não:npm install -g pnpm
3. Execute o servidor de desenvolvimento
pnpm dev
🐳 Implantação com Docker
Início Rápido com Docker
Opção 1: Usando Docker Compose (Recomendado)
docker-compose up -d
Opção 2: Usando Docker diretamente
# Build the image
docker build -t aws-mcp .
# Run with port mapping
docker run -d --name aws-mcp-server -p 8080:8080 aws-mcp
O servidor estará disponível em:
- MCP HTTP Stream:
http://localhost:8080/mcp - MCP SSE:
http://localhost:8080/sse
Gerenciando Contêineres Docker
# 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
💡 As credenciais AWS ainda são passadas via cabeçalhos HTTP (mesmo que na configuração de desenvolvimento). Nenhuma configuração de contêiner é necessária.
🧪 Exemplo: Configuração do Cursor
Para usar este servidor com Cursor, adicione o seguinte ao seu ~/.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/mcpse o seu cliente suportar HTTP streamable (por exemplo: Cursor). Usehttp://localhost:8080/ssese o seu cliente suportar apenas SSE (por exemplo: Windsurf).
MCP HTTP streamable endpoint: http://localhost:8080/mcp
MCP SSE endpoint: http://localhost:8080/sse
📁 Estrutura do Projeto
.
├── 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
📌 Roteiro
- Suporte a RDS (Criar, Listar, Atualizar, Excluir)
- Adicionar ferramentas S3
- Adicionar ferramentas de rede
- Adicionar ferramentas EC2
- Adicionar ferramentas Lambda
- Adicionar ferramentas API Gateway
- Adicionar ferramentas IAM
- Adicionar ferramentas ECS
🤝 Contribuindo
Quer ajudar a tornar a infraestrutura AWS nativa de chat? Pull requests, feedback e sugestões de recursos são bem-vindos!
- Clone e faça um fork do repositório
- Crie sua branch de recurso (
git checkout -b feat/add-ec2) - Faça commit e push
- Abra um PR 🙌
📄 Licença
MIT — faça o que quiser, apenas dê crédito onde for devido. ✌️