AWS MCP
Una interfaz de lenguaje natural para gestionar servicios de AWS como RDS, S3, EC2 y VPC.
Documentación
🎬 Demo
¡Míralo en acción! Así de fácil es poner en marcha una configuración completa de EC2 — VPC, subredes, grupos de seguridad, todo funciona — mediante indicaciones en lenguaje natural a un servidor de Protocolo de Contexto de Modelo (MCP) de IA.
✨ Características
Actualmente admite
- RDS
- S3
- EC2
- VPC
- Subnet
- Internet Gateway
- Route Table
- Security Group
- Key Pair
- Instance Tag
- AMI
¡Más servicios de AWS (como Lambda, API Gateway, etc.) próximamente! ¡Contribuciones bienvenidas 🚀
📋 Requisitos previos
Para desarrollo:
- Node.js >= 18.0.0
- pnpm >= 10.0.0
Para implementación con Docker:
- Docker y Docker Compose
Para ambos:
- Cuenta de AWS con credenciales de AWS (Access Key ID y Secret Access Key)
⚙️ Configuración para desarrolladores
1. Clonar el repositorio
git clone https://github.com/lokeswaran-aj/aws-mcp.git
cd aws-mcp
❗️Actualmente, el servidor lee las credenciales de los encabezados de configuración de MCP. En versiones futuras, admitiremos AWS Role ARN.
2. Instalar dependencias
pnpm install
💡 Asegúrate de tener
pnpminstalado globalmente. Si no:npm install -g pnpm
3. Ejecutar el servidor de desarrollo
pnpm dev
🐳 Implementación con Docker
Inicio rápido con Docker
Opción 1: Usar Docker Compose (Recomendado)
docker-compose up -d
Opción 2: Usar Docker directamente
# Build the image
docker build -t aws-mcp .
# Run with port mapping
docker run -d --name aws-mcp-server -p 8080:8080 aws-mcp
El servidor estará disponible en:
- MCP HTTP Stream:
http://localhost:8080/mcp - MCP SSE:
http://localhost:8080/sse
Gestión de contenedores 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
💡 Las credenciales de AWS se siguen pasando a través de los encabezados HTTP (igual que en la configuración de desarrollo). No se necesita configuración de contenedor.
🧪 Ejemplo: Configuración de Cursor
Para usar este servidor con Cursor, agrega lo siguiente a tu ~/.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"
}
}
}
}
❗️ Usa
http://localhost:8080/mcpsi tu cliente admite HTTP streamable (por ejemplo: Cursor). Usahttp://localhost:8080/ssesi tu cliente admite solo SSE (por ejemplo: Windsurf).
Endpoint HTTP streamable de MCP: http://localhost:8080/mcp
Endpoint SSE de MCP: http://localhost:8080/sse
📁 Estructura del proyecto
.
├── 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
📌 Hoja de ruta
- Soporte para RDS (Crear, Listar, Actualizar, Eliminar)
- Añadir herramientas de S3
- Añadir herramientas de red
- Añadir herramientas de EC2
- Añadir herramientas de Lambda
- Añadir herramientas de API Gateway
- Añadir herramientas de IAM
- Añadir herramientas de ECS
🤝 Contribuciones
¿Quieres ayudar a hacer que la infraestructura de AWS sea nativa del chat? ¡Las solicitudes de extracción, los comentarios y las sugerencias de funciones son bienvenidos!
- Clona y haz un fork del repositorio
- Crea tu rama de características (
git checkout -b feat/add-ec2) - Haz commit y push
- Abre un PR 🙌
📄 Licencia
MIT — haz lo que quieras, solo da crédito donde corresponde. ✌️