MCP CloudOps - Reglas IaC Completas
Un servidor MCP (Model Context Protocol) avanzado construido con Flask, especializado en validación y generación de Infrastructure as Code (IaC) con Terraform según las reglas de Pragma CloudOps.
🚀 Características Principales
🏗️ Reglas Básicas (B1-B5)
- Estructura de 16 elementos obligatorios: Validación exacta de archivos y directorios
- Convenciones de nomenclatura:
{client}-{project}-{environment}-{type}-{key} - Variables obligatorias: client, project, environment con validaciones
- Sistema de etiquetado de 2 niveles: default_tags + Name + additional_tags
- Directorio sample/ funcional: Ejemplos completamente funcionales
⚙️ Reglas Avanzadas (A1-A7)
- Tipos de datos inteligentes: map(object()), list(object()), map(string), list(string)
- for_each obligatorio: Nunca usar count para recursos múltiples
- Validaciones de variables: Validaciones críticas con contains(), regex()
- Transformaciones simples en locals: Máximo 2 niveles, sin flatten() complejo
- Outputs descriptivos: Descriptions obligatorios y estructura correcta
🔒 Reglas de Seguridad (S1-S6)
- Cifrado obligatorio: Habilitado por defecto en todos los recursos
- Acceso público bloqueado: Configuración segura por defecto
- Force SSL/TLS: Conexiones seguras obligatorias
- Políticas de menor privilegio: Estructura dinámica de políticas
- Logging y monitoreo: Auditoría completa habilitada
📄 Reglas de Documentación (D1-D7)
- README.md con 12 secciones obligatorias: Estructura completa y ordenada
- CHANGELOG.md: Formato Keep a Changelog con Semantic Versioning
- sample/README.md: Documentación completa de ejemplos
- terraform-docs: Configuración automática y generación
- Descriptions obligatorios: En variables y outputs
📁 Estructura del Proyecto
mcp-flask-server/
├── venv/ # Entorno virtual de Python
├── reglas/ # Archivos de reglas originales
│ ├── terraform_rules_basicas_final.md
│ ├── terraform_rules_avanzadas_final.md
│ ├── terraform_rules_seguridad_final.md
│ ├── terraform_rules_documentacion_final.md
│ └── terraform_prompt_maestro_final.md
├── mcp_stdio_server.py # Servidor MCP principal con todas las herramientas
├── mcp_server.py # Servidor HTTP (versión original)
├── requirements.txt # Dependencias de Python
└── README.md # Esta documentación
🛠️ Instalación y Configuración
1. Preparar el entorno
cd /ruta/completa/al/proyecto/mcp-flask-server
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
2. Configurar Amazon Q CLI
Agregar a /ruta/completa/al/proyecto/.aws/amazonq/mcp.json:
{
"mcpServers": {
"mcp-cloudops": {
"command": "/ruta/completa/al/proyecto/mcp-flask-server/venv/bin/python",
"args": ["/ruta/completa/al/proyecto/mcp-flask-server/mcp_stdio_server.py"],
"env": {
"PYTHONPATH": "/ruta/completa/al/proyecto/mcp-flask-server"
}
}
}
}
3. Reiniciar Amazon Q CLI
# Cerrar Q CLI actual y reiniciar
q chat
🔧 Herramientas Disponibles
🏗️ Reglas Básicas
validar_estructura_modulo
Valida que el módulo tenga exactamente 16 elementos obligatorios.
Valida la estructura de mi módulo Terraform en /ruta/al/modulo
validar_variables_obligatorias
Verifica que estén presentes client, project, environment con descriptions.
Valida las variables obligatorias de mi archivo variables.tf
validar_convenciones_nomenclatura
Verifica el patrón {client}-{project}-{environment}-{type}-{key}.
Valida las convenciones de nomenclatura en mi módulo
⚙️ Reglas Avanzadas
validar_tipos_datos
Valida el uso correcto de map(object()), list(object()), etc.
Valida los tipos de datos en mis variables de Terraform
validar_for_each
Verifica que se use for_each en lugar de count.
Valida el uso de for_each en mi archivo main.tf
validar_transformaciones_locals
Verifica que las transformaciones en locals sean simples.
Valida las transformaciones en mi archivo locals.tf
🔒 Reglas de Seguridad
validar_cifrado_obligatorio
Verifica que el cifrado esté habilitado por defecto.
Valida que el cifrado esté configurado correctamente en mi módulo
validar_acceso_publico
Verifica que el acceso público esté bloqueado.
Valida la configuración de acceso público en mi módulo S3
validar_force_ssl
Verifica que SSL/TLS esté forzado.
Valida la configuración SSL/TLS en mi módulo
📄 Reglas de Documentación
validar_readme_estructura
Valida las 12 secciones obligatorias del README.md.
Valida la estructura de mi README.md de Terraform
validar_changelog
Valida el formato Keep a Changelog.
Valida mi archivo CHANGELOG.md
🛠️ Herramientas de Generación
generar_plantilla_readme
Genera README.md completo según todas las reglas.
Genera una plantilla README para mi módulo S3 llamado "terraform-s3-bucket"
generar_plantilla_changelog
Genera CHANGELOG.md con formato estándar.
Genera una plantilla CHANGELOG para mi módulo
generar_config_terraform_docs
Genera configuración .terraform-docs.yml.
Genera la configuración de terraform-docs para mi módulo
📊 Reporte Completo
generar_reporte_completo
Ejecuta todas las validaciones y genera reporte detallado.
Genera un reporte completo de validación IaC para mi módulo en /ruta/modulo
🧪 Pruebas
Ejecutar pruebas de funcionalidad
python3 test_iac_mcp.py
Probar herramientas específicas con Amazon Q CLI
# Ejemplos de comandos para Amazon Q CLI:
# Validación básica
"Valida la estructura de mi módulo Terraform en /Users/cristian/mi-modulo"
# Validación de seguridad
"Verifica que el cifrado esté configurado en mi módulo S3"
# Generación de plantillas
"Genera una plantilla README completa para mi módulo Lambda"
# Reporte completo
"Crea un reporte de validación IaC completo para mi módulo"
📋 Casos de Uso Principales
1. Validación de Módulos Existentes
- Verificar que módulos cumplan con todas las reglas
- Identificar problemas de estructura, seguridad y documentación
- Generar reportes de cumplimiento
2. Creación de Nuevos Módulos
- Generar plantillas completas de documentación
- Aplicar configuraciones de seguridad por defecto
- Seguir convenciones de nomenclatura estándar
3. Auditoría y Cumplimiento
- Reportes detallados de validación
- Verificación de configuraciones de seguridad
- Documentación automática actualizada
4. Desarrollo y Mantenimiento
- Validación continua durante desarrollo
- Generación automática de documentación
- Aplicación consistente de mejores prácticas
🔍 Troubleshooting
Problema: "Herramienta no encontrada"
- Verificar que Amazon Q CLI esté reiniciado
- Confirmar configuración en mcp.json
- Verificar que el servidor esté ejecutándose
Problema: "Error leyendo archivo"
- Verificar rutas absolutas en argumentos
- Confirmar permisos de lectura en archivos
- Verificar que los archivos existan
Problema: "Validación fallida"
- Revisar errores específicos en el reporte
- Aplicar correcciones según las reglas
- Re-ejecutar validación después de cambios
🚀 Próximas Mejoras
- Integración con Checkov para validación de seguridad
- Soporte para múltiples providers (Azure, GCP)
- Validación de políticas IAM específicas
- Generación automática de diagramas de arquitectura
- Integración con CI/CD pipelines
- Métricas de calidad de código IaC
📞 Soporte
Para soporte técnico o preguntas sobre las reglas IaC:
- Revisar documentación en directorio
reglas/ - Ejecutar
generar_reporte_completopara diagnóstico - Usar herramientas específicas para validaciones puntuales
Versión: 2.0.0 - Reglas IaC Completas
Última actualización: Agosto 2025
Compatibilidad: Amazon Q CLI, Terraform >= 1.0, AWS Provider >= 5.0
