MCP CloudOps IaC Rules Server MCP Server

$python3 -m venv venv && source venv/bin/activate && pip install -r requirements.txt
README.md

Validation and generation of Terraform IaC according to Pragma CloudOps standards

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

Tools (11)

validar_estructura_moduloValida que el módulo tenga exactamente 16 elementos obligatorios.
validar_variables_obligatoriasVerifica que estén presentes client, project, environment con descriptions.
validar_convenciones_nomenclaturaVerifica el patrón {client}-{project}-{environment}-{type}-{key}.
validar_tipos_datosValida el uso correcto de map(object()), list(object()), etc.
validar_for_eachVerifica que se use for_each en lugar de count.
validar_transformaciones_localsVerifica que las transformaciones en locals sean simples (máximo 2 niveles).
validar_cifrado_obligatorioVerifica que el cifrado esté habilitado por defecto en todos los recursos.
validar_acceso_publicoVerifica que el acceso público esté bloqueado por defecto.
validar_force_sslVerifica que SSL/TLS esté forzado en las conexiones.
validar_readme_estructuraValida las 12 secciones obligatorias del README.md.
validar_changelogValida el formato Keep a Changelog con Semantic Versioning.

Environment Variables

PYTHONPATHrequiredPath to the mcp-flask-server directory

Configuration

claude_desktop_config.json
{"mcpServers": {"mcp-cloudops": {"command": "/path/to/venv/bin/python", "args": ["/path/to/mcp_stdio_server.py"], "env": {"PYTHONPATH": "/path/to/mcp-flask-server"}}}}

Try it

Valida la estructura de mi módulo Terraform en /ruta/al/modulo
Valida las variables obligatorias de mi archivo variables.tf
Valida las convenciones de nomenclatura en mi módulo
Valida que el cifrado esté configurado correctamente en mi módulo
Valida la estructura de mi README.md de Terraform

Frequently Asked Questions

What are the key features of MCP CloudOps IaC Rules Server?

Validation of 16 mandatory structural elements for Terraform modules. Enforcement of naming conventions: {client}-{project}-{environment}-{type}-{key}. Security auditing for mandatory encryption, public access blocks, and SSL/TLS enforcement. Documentation validation for README.md (12 sections) and CHANGELOG.md (Keep a Changelog format). Advanced IaC rules checking for for_each usage and complex locals transformations.

What can I use MCP CloudOps IaC Rules Server for?

Automating compliance checks for Pragma CloudOps infrastructure standards. Security auditing of Terraform modules before deployment to cloud environments. Standardizing documentation and naming across multiple DevOps teams. Validating complex Terraform variable types and local transformations for maintainability.

How do I install MCP CloudOps IaC Rules Server?

Install MCP CloudOps IaC Rules Server by running: python3 -m venv venv && source venv/bin/activate && pip install -r requirements.txt

What MCP clients work with MCP CloudOps IaC Rules Server?

MCP CloudOps IaC Rules Server works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Use MCP CloudOps IaC Rules Server with Conare

Manage MCP servers visually, upload persistent context, and never start from zero with Claude Code & Codex.

Try Free