CloudOps IaC Rules MCP Server

Local setup required. This server has to be cloned and prepared on your machine before you register it in Claude Code.
1

Set the server up locally

Run this once to clone and prepare the server before adding it to Claude Code.

Run in terminal
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
2

Register it in Claude Code

After the local setup is done, run this command to point Claude Code at the built server.

Run in terminal
claude mcp add -e "PYTHONPATH=${PYTHONPATH}" cloudops-iac-rules -- node "<FULL_PATH_TO_CLOUDOPS_REF_REPO_MCP_IAC_RULES>/dist/index.js"

Replace <FULL_PATH_TO_CLOUDOPS_REF_REPO_MCP_IAC_RULES>/dist/index.js with the actual folder you prepared in step 1.

Required:PYTHONPATH
README.md

Validate and generate 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_moduloValidates that the Terraform module contains exactly 16 mandatory elements.
validar_variables_obligatoriasVerifies the presence of client, project, and environment variables with descriptions.
validar_convenciones_nomenclaturaVerifies the naming pattern {client}-{project}-{environment}-{type}-{key}.
validar_tipos_datosValidates the correct use of map(object), list(object), and other data types.
validar_for_eachVerifies that for_each is used instead of count for multiple resources.
validar_transformaciones_localsVerifies that transformations in locals are simple and do not exceed 2 levels.
validar_cifrado_obligatorioVerifies that encryption is enabled by default for all resources.
validar_acceso_publicoVerifies that public access is blocked in the module configuration.
validar_force_sslVerifies that SSL/TLS connections are forced.
validar_readme_estructuraValidates the 12 mandatory sections of the README.md file.
validar_changelogValidates the CHANGELOG.md file against the Keep a Changelog format.

Environment Variables

PYTHONPATHrequiredPath to the project directory to ensure modules are importable.

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/project"}}}}

Try it

Validate the structure of my Terraform module located at /path/to/module
Check if my variables.tf file follows the mandatory variable requirements
Verify that my main.tf file uses for_each correctly instead of count
Audit my S3 module configuration to ensure public access is blocked
Check if my README.md meets the 12 mandatory section requirements

Frequently Asked Questions

What are the key features of CloudOps IaC Rules?

Automated validation of 16 mandatory Terraform module elements. Enforcement of standardized naming conventions for resources. Security auditing for encryption, public access, and SSL/TLS enforcement. Documentation compliance checks for README.md and CHANGELOG.md. Best practice enforcement for Terraform variables, locals, and resource iteration.

What can I use CloudOps IaC Rules for?

Standardizing infrastructure code across multiple client projects. Automating security compliance audits for Terraform modules before deployment. Ensuring consistent documentation standards for team-shared infrastructure modules. Refactoring legacy Terraform code to meet modern Pragma CloudOps standards.

How do I install CloudOps IaC Rules?

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

What MCP clients work with CloudOps IaC Rules?

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

Turn this server into reusable context

Keep CloudOps IaC Rules docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Need the old visual installer? Open Conare IDE.
Open Conare