MCP CloudOps IaC Rules Server
Enables the validation and generation of Terraform Infrastructure as Code according to Pragma CloudOps standards, covering security, structure, and documentation rules. It provides specialized tools for automated compliance reporting, security auditing, and standardized template generation.
README
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
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。