MCP CloudOps IaC Rules Server

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.

Category
Visit Server

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_completo para 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

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured