AWS MCP

Uma interface de linguagem natural para gerenciar serviços AWS como RDS, S3, EC2 e VPC.

Documentação

demo

🎬 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).

demo

✨ Recursos

Atualmente suporta

  1. RDS
  2. S3
  3. EC2
  4. VPC
  5. Subnet
  6. Internet Gateway
  7. Route Table
  8. Security Group
  9. Key Pair
  10. Instance Tag
  11. 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 pnpm instalado 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/mcp se o seu cliente suportar HTTP streamable (por exemplo: Cursor). Use http://localhost:8080/sse se 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. ✌️


⚡ Desenvolvido por