Terragrunt GCP MCP Tool
Gestiona infraestructura de Google Cloud Platform (GCP) usando Terragrunt, con soporte para funciones experimentales como AutoDevOps y gestión de costos.
Documentación
Terragrunt GCP MCP Tool
Una herramienta de servidor del Protocolo de Contexto de Modelos (MCP) para gestionar la infraestructura de Google Cloud Platform utilizando Terragrunt. Esta herramienta proporciona capacidades inteligentes de automatización y gestión para el código base terragrunt-gcp-org-automation, con soporte para Funciones Experimentales de Terragrunt.
Características
🧪 Soporte de Funciones Experimentales
- Terragrunt Stacks: Gestión de dependencias mejorada y ejecución paralela utilizando la función experimental de stacks
- Resolución de Dependencias Mejorada: Análisis de dependencias y orden de ejecución mejorados
- Operaciones a Nivel de Stack: Ejecutar comandos en múltiples unidades con manejo inteligente de dependencias
- Ejecución Paralela: Ejecutar múltiples unidades en paralelo dentro de los stacks para implementaciones más rápidas
- Salidas de Stack: Agregar y gestionar salidas a nivel de stack
Gestión de Recursos
- Añadir Nuevos Recursos: Crear nuevos recursos de infraestructura con plantillas
- Consultar Recursos: Inspeccionar configuraciones y estados de recursos existentes
- Actualizar Recursos: Modificar configuraciones de recursos de forma segura
- Eliminar Recursos: Eliminar recursos con verificación de dependencias
Operaciones de Implementación
- Verificar Estado: Supervisar el estado y la salud de las implementaciones
- Activar Implementaciones: Iniciar implementaciones de infraestructura
- Planificar Cambios: Generar y revisar planes de infraestructura
- Rollback: Revertir cambios fallidos o no deseados
Supervisión y Notificaciones
- Supervisión de Estado: Realizar seguimiento del estado de la infraestructura y sus cambios
- Notificaciones de Equipo: Enviar actualizaciones a canales de Slack
- Gestión de Alertas: Configurar y gestionar alertas de infraestructura
- Registro de Auditoría: Realizar seguimiento de todas las operaciones y cambios
Características Avanzadas
- Análisis de Dependencias: Comprender las dependencias de los recursos
- Gestión de Entornos: Manejar entornos de dev/staging/producción
- Gestión de Plantillas: Crear y gestionar plantillas de infraestructura
- Análisis de Costos: Supervisar y optimizar los costos de infraestructura
Soporte del Rediseño de la CLI de Terragrunt
- Nueva Estructura de Comandos: Utiliza el rediseño más reciente de la CLI de Terragrunt con comandos
run - Variables de Entorno: Actualizado para usar variables de entorno con prefijo
TG_ - Bootstrap de Backend: Aprovisionamiento automático de recursos backend con
--backend-bootstrap - Descubrimiento de Dependencias: Análisis mejorado del grafo de dependencias con comandos
findylist - Operaciones Run All: Soporte para comandos
run --allen múltiples unidades
🤖 Integración del Asistente AutoDevOps (¡Nuevo!)
Esta herramienta ahora incluye prompts de sistema integrales para crear asistentes AutoDevOps que pueden ayudar a gestionar, supervisar y mantener la infraestructura en la nube utilizando todas las capacidades de la herramienta.
Obtención de Prompts de Sistema AutoDevOps
# Get the compact system prompt (recommended for most use cases)
python3 -m terragrunt_gcp_mcp.cli get-autodevops-prompt
# Get the extended prompt with full details
python3 -m terragrunt_gcp_mcp.cli get-autodevops-prompt --variant extended
# Get CLI-specific prompt for automation
python3 -m terragrunt_gcp_mcp.cli get-autodevops-prompt --variant cli
# Get prompt in JSON format for API integration
python3 -m terragrunt_gcp_mcp.cli get-autodevops-prompt --format json
# Save prompt to file for integration
python3 -m terragrunt_gcp_mcp.cli get-autodevops-prompt --output-file autodevops_prompt.txt
# Get full context including capabilities and tools
python3 -m terragrunt_gcp_mcp.cli get-autodevops-prompt --format context
Acceso a Herramientas MCP
# Get system prompt via MCP tool
result = get_autodevops_system_prompt(
variant="compact", # "compact", "extended", "cli"
format="json" # "text", "json", "context"
)
# Use in conversation systems
from terragrunt_gcp_mcp.autodevops_prompt import inject_system_prompt
conversation = [
{"role": "user", "content": "Help me understand my infrastructure"}
]
# Inject AutoDevOps system prompt
conversation_with_prompt = inject_system_prompt(conversation, variant="compact")
Integración con Claude Desktop
Agrega el prompt de AutoDevOps a tu configuración de Claude Desktop:
{
"mcpServers": {
"terragrunt-gcp-autodevops": {
"command": "python3",
"args": [
"/Users/spol/Desktop/GIT/INTI/terragrunt-gcp-tool-mcp/run_server.py",
"/Users/spol/Desktop/GIT/INTI/terragrunt-gcp-tool-mcp/config/config.yaml"
],
"env": {
"GOOGLE_APPLICATION_CREDENTIALS": "/path/to/your/gcp-credentials.json"
}
}
},
"global": {
"systemPrompt": "You are an AutoDevOps Infrastructure Assistant with expert knowledge in cloud infrastructure management. You have access to the Terragrunt GCP MCP Tool with comprehensive capabilities for managing Google Cloud Platform infrastructure. ROLE: Help users manage, monitor, and maintain cloud infrastructure efficiently and safely. Always start with visualization using draw_resource_tree or visualize_infrastructure, validate before deployment with validate_resource_config, and follow GitOps best practices."
}
}
Ejemplo de Integración API
import openai
from terragrunt_gcp_mcp.autodevops_prompt import get_system_prompt
# Initialize with AutoDevOps system prompt
client = openai.OpenAI()
response = client.chat.completions.create(
model="gpt-4",
messages=[
{
"role": "system",
"content": get_system_prompt("compact")
},
{
"role": "user",
"content": "Show me the current state of our dev-99 environment and suggest optimizations"
}
]
)
Integración de Automatización
#!/bin/bash
# Get AutoDevOps prompt for automation scripts
PROMPT=$(python3 -m terragrunt_gcp_mcp.cli get-autodevops-prompt --variant cli --format text)
# Use in CI/CD pipelines, monitoring scripts, etc.
echo "AutoDevOps Assistant initialized with capabilities:"
echo "$PROMPT" | grep -A 20 "Available Commands"
Lo que Proporciona el Asistente AutoDevOps
Capacidades Principales:
- 🌳 Visualización de Infraestructura: Árboles visuales y grafos de dependencias
- 🧪 Stacks Experimentales: Ejecución paralela y gestión de dependencias mejorada
- 🚀 Implementaciones Seguras: Capacidades de validación, planificación y rollback
- 🔧 Gestión de Recursos: Gestión completa del ciclo de vida con verificaciones de seguridad
- 📊 Supervisión: Evaluación de salud y optimización del rendimiento
- 🔐 Seguridad: Gestión de cumplimiento y registros de auditoría
Pautas Operativas:
- Enfoque de Seguridad Primero: Siempre validar → visualizar → planificar → implementar
- Visualización Primero: Comenzar con visualización de árbol/grafo antes de realizar cambios
- Mejores Prácticas de GitOps: Integración con control de versiones y pruebas automatizadas
- Protección del Entorno: Manejo especial para entornos de producción
Patrón de Respuesta:
- Visualización del Estado Actual - Mostrar el estado de la infraestructura con herramientas de árbol/grafo
- Análisis de Impacto - Analizar qué cambiaría y qué podría verse afectado
- Recomendaciones - Proporcionar mejores prácticas y acciones sugeridas
- Pasos de Implementación - Pasos claros y accionables con comandos específicos de la herramienta
- Validación y Supervisión - Cómo verificar el éxito y la supervisión continua
🌳 Visualización de Árbol de Recursos
Instalación
# Clone the repository
git clone <repository-url>
cd terragrunt-gcp-tool-mcp
# Install dependencies
pip install -r requirements.txt
# Or install in development mode
pip install -e .
# Configure the MCP server
cp config/config.example.yaml config/config.yaml
# Edit config.yaml with your settings
Configuración
Crea un archivo config/config.yaml con tus ajustes:
# GCP Configuration
gcp:
project_id: "your-project-id"
credentials_path: "/path/to/credentials.json"
default_region: "europe-west2"
# Terragrunt Configuration
terragrunt:
root_path: "/path/to/terragrunt-gcp-org-automation"
binary_path: "terragrunt"
terraform_binary: "tofu"
# Experimental features configuration
experimental:
# Stacks feature (experimental)
stacks_enabled: true # Enable Terragrunt stacks experimental feature
enhanced_dependency_resolution: true # Use enhanced dependency resolution
parallel_execution: true # Enable parallel execution within stacks
stack_outputs: true # Enable stack-level outputs
recursive_stacks: false # Enable recursive stacks (not yet stable)
# Stack execution settings
max_parallel_units: 10 # Maximum number of units to execute in parallel
stack_timeout: 7200 # Timeout for stack operations in seconds (2 hours)
continue_on_error: false # Continue stack execution on unit errors
# Slack Configuration (optional)
slack:
webhook_url: "https://hooks.slack.com/..."
default_channel: "#infrastructure"
# Monitoring Configuration
monitoring:
enabled: true
check_interval: 300 # seconds
Uso
Ejecución como Servidor MCP
Hay varias formas de iniciar el servidor MCP:
Opción 1: Usando el script de inicio (Recomendado)
# Start the MCP server with default config
python3 run_server.py
# Start with custom config file
python3 run_server.py config/config.yaml
Opción 2: Usando el módulo directamente
# Start the MCP server
python3 -m terragrunt_gcp_mcp.server
# With custom config
python3 -m terragrunt_gcp_mcp.server config/config.yaml
Opción 3: Usando la CLI
# Initialize configuration first
python3 -m terragrunt_gcp_mcp.cli init
# Start the server
python3 -m terragrunt_gcp_mcp.cli server
# Other CLI commands
python3 -m terragrunt_gcp_mcp.cli list-resources
python3 -m terragrunt_gcp_mcp.cli status
El servidor estará disponible para que los clientes MCP se conecten a través de stdio.
Uso con Claude Desktop
Agrega a tu configuración MCP de Claude Desktop:
{
"mcpServers": {
"terragrunt-gcp": {
"command": "python3",
"args": ["-m", "terragrunt_gcp_mcp.server"],
"cwd": "/path/to/terragrunt-gcp-tool-mcp"
}
}
}
Herramientas Disponibles
El servidor MCP proporciona estas herramientas:
🧪 Herramientas de Stacks Experimentales
list_stacks- Listar todos los stacks de Terragrunt utilizando funciones experimentalesget_stack_details- Obtener información detallada sobre un stack específico, incluyendo unidades y orden de ejecuciónexecute_stack_command- Ejecutar comandos en stacks con ejecución paralela y gestión de dependenciasget_stack_outputs- Obtener salidas agregadas de operaciones a nivel de stackget_enhanced_infrastructure_status- Obtener estado integral que incluye tanto recursos tradicionales como stacks
Gestión de Recursos
list_resources- Listar todos los recursos de la infraestructuraget_resource- Obtener información detallada sobre un recurso específico (obsoleto, usar get_resource_details)get_resource_details- Obtener información integral sobre un recurso específico, incluyendo atributos, estado y configuraciónvalidate_resource_config- Validar una configuración de recurso de Terragrunt con verificación de dependenciascreate_resource- Crear un nuevo recurso de infraestructuraupdate_resource- Actualizar una configuración de recurso existentedelete_resource- Eliminar un recurso (con verificación de dependencias)
Visualización y Dibujo de Árboles (¡Nuevo!)
draw_resource_tree- Dibujar un árbol visual de recursos usando comandos del rediseño de la CLI de Terragruntget_dependency_graph- Generar grafos de dependencias en formato DOT, Mermaid o JSONvisualize_infrastructure- Visualización integral de infraestructura que combina árboles y grafos
Integración del Asistente AutoDevOps (¡Nuevo!)
get_autodevops_system_prompt- Obtener prompts de sistema para integración de LLM y crear asistentes AutoDevOps- Soporte para variantes de prompts compactas, extendidas y específicas de CLI
- Formatos de salida JSON, texto y contexto para diferentes escenarios de integración
- Guías de integración integradas para Claude Desktop, APIs y herramientas de automatización
Gestión y Análisis de Costos (¡Nuevo!)
get_cost_analysis- Análisis integral de costos con pronósticos y recomendaciones de optimizaciónget_cost_alerts- Alertas de costos basadas en umbrales de presupuesto y patrones de gastoget_cost_optimization_score- Puntuación de optimización de costos de infraestructura y recomendacionesget_cost_status- Panel de estado de costos completo con análisis, alertas e información de optimización- Soporte para filtrado por entorno, múltiples períodos de tiempo y desgloses detallados de costos
- Integración con la API de Facturación de Google Cloud para datos de costos precisos
Operaciones de Implementación
plan_deployment- Generar plan de implementación para cambios (obsoleto, usar plan_resource_deployment)plan_resource_deployment- Generar un plan de implementación integral para un recurso de Terragruntdeploy_resources- Implementar cambios de infraestructura (obsoleto, usar apply_resource_deployment)apply_resource_deployment- Aplicar cambios a un recurso de Terragrunt con verificaciones de seguridadcheck_deployment_status- Verificar el estado de implementaciones en cursorollback_deployment- Revertir una implementación fallida
Supervisión y Análisis
get_infrastructure_status- Obtener la salud general de la infraestructuraanalyze_dependencies- Analizar dependencias de recursosget_cost_analysis- Obtener desglose de costos de infraestructuracheck_drift- Detectar desviación de configuración
Colaboración en Equipo
send_slack_notification- Enviar notificaciones al equipocreate_deployment_summary- Generar informes de implementaciónget_audit_log- Recuperar registros de auditoría
Ejemplos
🧪 Uso de Funciones de Stacks Experimentales
Uso CLI
# List all stacks
python3 -m terragrunt_gcp_mcp.cli --config config/config.yaml list-stacks
# Get detailed information about a specific stack
python3 -m terragrunt_gcp_mcp.cli --config config/config.yaml get-stack-details "live/dev-account/test-dev/dev-99"
# Execute a command on a stack (with parallel execution)
python3 -m terragrunt_gcp_mcp.cli --config config/config.yaml execute-stack-command "live/dev-account/test-dev/dev-99" plan --dry-run
# Get stack outputs
python3 -m terragrunt_gcp_mcp.cli --config config/config.yaml get-stack-outputs "live/dev-account/test-dev/dev-99"
# Get enhanced infrastructure status including stacks
python3 -m terragrunt_gcp_mcp.cli --config config/config.yaml status --include-stacks
🌳 Visualización de Árbol de Recursos (¡Nuevo!)
Uso CLI
# Draw a basic resource tree
python3 -m terragrunt_gcp_mcp.cli --config config/config.yaml draw-tree
# Draw tree for specific environment
python3 -m terragrunt_gcp_mcp.cli --config config/config.yaml draw-tree --environment dev-99
# Draw tree with limited depth
python3 -m terragrunt_gcp_mcp.cli --config config/config.yaml draw-tree --max-depth 3
# Generate dependency graph in DOT format (for Graphviz)
python3 -m terragrunt_gcp_mcp.cli --config config/config.yaml dependency-graph --format dot
# Generate dependency graph in Mermaid format
python3 -m terragrunt_gcp_mcp.cli --config config/config.yaml dependency-graph --format mermaid
# Comprehensive visualization
python3 -m terragrunt_gcp_mcp.cli --config config/config.yaml visualize --type tree --format ascii
python3 -m terragrunt_gcp_mcp.cli --config config/config.yaml visualize --type dag --format mermaid
# Get tree data in JSON format
python3 -m terragrunt_gcp_mcp.cli --config config/config.yaml draw-tree --format json
Uso MCP
# Example: Draw a resource tree
result = draw_resource_tree(
environment="dev-99",
format="tree",
include_dependencies=True,
max_depth=4
)
# Example: Generate dependency graph
result = get_dependency_graph(
environment="dev-99",
output_format="mermaid"
)
# Example: Comprehensive visualization
result = visualize_infrastructure(
environment="dev-99",
visualization_type="tree",
include_dependencies=True,
output_format="ascii"
)
# Example: List all stacks (experimental)
result = list_stacks(environment="dev-99")
# Example: Get stack details with units and execution order (experimental)
result = get_stack_details(stack_path="live/dev-account/test-dev/dev-99")
# Example: Execute a plan command on a stack (experimental)
result = execute_stack_command(
stack_path="live/dev-account/test-dev/dev-99",
command="plan",
dry_run=True
)
# Example: Get enhanced status including stacks (experimental)
result = get_enhanced_infrastructure_status(
environment="dev-99",
include_stacks=True,
include_costs=False
)
Ejemplo de Salida de Árbol
Infrastructure
├── dev-account
│ └── test-dev
│ └── dev-99 (folder)
│ ├── project (project)
│ ├── europe-west2 (folder)
│ │ ├── vpc (vpc-network) [deps: 1]
│ │ ├── compute (folder)
│ │ │ ├── web-server-01 (compute) [deps: 2]
│ │ │ └── sftp-worker-01 (compute) [deps: 2]
│ │ └── secrets (folder)
│ │ └── sftp-sshfs-host (secrets) [deps: 1]
│ └── bigquery (folder)
│ └── dataset-01 (bigquery) [deps: 1]
Ejemplo de Grafo de Dependencias (Mermaid)
graph TD
project[project] --> vpc[vpc]
vpc[vpc] --> web_server_01[web-server-01]
vpc[vpc] --> sftp_worker_01[sftp-worker-01]
project[project] --> secrets[secrets]
Validación de Recursos
Uso CLI
# Validate a resource with dependency checking
python3 -m terragrunt_gcp_mcp.cli --config config/config.yaml validate-resource "web-server-01"
# Validate without checking dependencies
python3 -m terragrunt_gcp_mcp.cli --config config/config.yaml validate-resource "web-server-01" --no-check-dependencies
# Get validation results in JSON format
python3 -m terragrunt_gcp_mcp.cli --config config/config.yaml validate-resource "web-server-01" --format json
# New CLI redesign commands
# Find and discover Terragrunt configurations (replaces output-module-groups)
python3 -m terragrunt_gcp_mcp.cli --config config/config.yaml find --dag --json --dependencies
# List units with dependency information (replaces graph-dependencies)
python3 -m terragrunt_gcp_mcp.cli --config config/config.yaml list-units --dag --tree
# Generate dependency graph
python3 -m terragrunt_gcp_mcp.cli --config config/config.yaml dag-graph --format json
# Run commands across all units (uses 'run --all' internally)
python3 -m terragrunt_gcp_mcp.cli --config config/config.yaml run-all plan --environment test-dev
python3 -m terragrunt_gcp_mcp.cli --config config/config.yaml run-all apply --dry-run
Uso MCP
# Example: Validate a resource configuration
result = validate_resource_config(
resource_path="live/dev-account/test-dev/dev-99/europe-west2/compute/web-server-01",
check_dependencies=True
)
Planificación de Implementaciones
Uso CLI
# Generate a deployment plan (dry-run by default)
python3 -m terragrunt_gcp_mcp.cli --config config/config.yaml plan-deployment "web-server-01"
# Generate a plan and save it for later use
python3 -m terragrunt_gcp_mcp.cli --config config/config.yaml plan-deployment "web-server-01" --save-plan
# Get plan results in JSON format
python3 -m terragrunt_gcp_mcp.cli --config config/config.yaml plan-deployment "web-server-01" --format json
Uso MCP
# Example: Generate a deployment plan
result = plan_resource_deployment(
resource_path="live/dev-account/test-dev/dev-99/europe-west2/compute/web-server-01",
dry_run=True,
save_plan=True
)
Aplicación de Implementaciones
Uso CLI
# Apply deployment with confirmation prompt
python3 -m terragrunt_gcp_mcp.cli --config config/config.yaml apply-deployment "web-server-01"
# Apply deployment with auto-approval (bypasses validation)
python3 -m terragrunt_gcp_mcp.cli --config config/config.yaml apply-deployment "web-server-01" --auto-approve
# Apply using a specific plan file
python3 -m terragrunt_gcp_mcp.cli --config config/config.yaml apply-deployment "web-server-01" --plan-file "tfplan"
# Apply without notifications
python3 -m terragrunt_gcp_mcp.cli --config config/config.yaml apply-deployment "web-server-01" --no-notify
Uso MCP
# Example: Apply deployment with safety checks
result = apply_resource_deployment(
resource_path="live/dev-account/test-dev/dev-99/europe-west2/compute/web-server-01",
auto_approve=False,
plan_file=None,
notify_on_completion=True
)
Ejemplo de Flujo de Trabajo Completo
Flujo de Trabajo CLI
# 1. Validate the resource first
python3 -m terragrunt_gcp_mcp.cli --config config/config.yaml validate-resource "web-server-01"
# 2. Generate and review the deployment plan
python3 -m terragrunt_gcp_mcp.cli --config config/config.yaml plan-deployment "web-server-01" --save-plan
# 3. Apply the deployment
python3 -m terragrunt_gcp_mcp.cli --config config/config.yaml apply-deployment "web-server-01"
🧪 Flujo de Trabajo con Stacks Experimentales
# 1. List available stacks
python3 -m terragrunt_gcp_mcp.cli --config config/config.yaml list-stacks
# 2. Get stack details and execution order
python3 -m terragrunt_gcp_mcp.cli --config config/config.yaml get-stack-details "dev-99"
# 3. Plan the entire stack
python3 -m terragrunt_gcp_mcp.cli --config config/config.yaml execute-stack-command "dev-99" plan --dry-run
# 4. Apply the stack with parallel execution
python3 -m terragrunt_gcp_mcp.cli --config config/config.yaml execute-stack-command "dev-99" apply
Flujo de Trabajo MCP
# Complete deployment workflow via MCP
# 1. Validate
validation = validate_resource_config("web-server-01", check_dependencies=True)
# 2. Plan
if validation.success:
plan = plan_resource_deployment("web-server-01", dry_run=True, save_plan=True)
# 3. Apply
if plan.success and plan.data["plan"]["changes_summary"]["has_changes"]:
deployment = apply_resource_deployment(
"web-server-01",
auto_approve=False,
notify_on_completion=True
)
Consulta de Recursos Individuales
# Get detailed information about a specific resource
python3 -m terragrunt_gcp_mcp.cli --config config/config.yaml get-resource "web-server-01"
# Get resource info with full configuration
python3 -m terragrunt_gcp_mcp.cli --config config/config.yaml get-resource "live/dev-account/test-dev/dev-99/europe-west2/compute/web-server-01" --include-config
# Get resource info in JSON format
python3 -m terragrunt_gcp_mcp.cli --config config/config.yaml get-resource "sftp-worker-01" --format json
Creación de una Nueva Instancia de Compute
# Example: Create a new compute instance
result = create_resource(
resource_type="compute",
resource_name="web-server-02",
environment="dev-99",
region="europe-west2",
configuration={
"machine_type": "e2-medium",
"disk_size_gb": 50,
"tags": ["web-server", "api"]
}
)
Obtención de Detalles de Recursos vía MCP
# Example: Get detailed resource information
result = get_resource_details(
resource_path="live/dev-account/test-dev/dev-99/europe-west2/compute/web-server-01",
include_configuration=True
)
Implementación de Cambios
# Example: Deploy specific resources
result = deploy_resources(
resources=["live/dev-account/test-dev/dev-99/europe-west2/compute/web-server-02"],
dry_run=False,
notify_slack=True
)
Supervisión de Estado
# Example: Check infrastructure status
status = get_infrastructure_status(
environment="dev-99",
include_costs=True,
include_health=True
)
💰 Gestión y Análisis de Costos (¡Nuevo!)
Análisis integral de costos, supervisión y optimización para tu infraestructura GCP.
Uso CLI
# Get comprehensive cost analysis
python3 -m terragrunt_gcp_mcp.cli --config config/config.yaml cost-analysis
# Get cost analysis for specific environment with 60-day period
python3 -m terragrunt_gcp_mcp.cli --config config/config.yaml cost-analysis --environment dev-99 --period-days 60
# Get cost analysis in JSON format without forecasting
python3 -m terragrunt_gcp_mcp.cli --config config/config.yaml cost-analysis --format json --no-forecasting
# Check cost alerts with custom threshold
python3 -m terragrunt_gcp_mcp.cli --config config/config.yaml cost-alerts --threshold 75.0
# Get cost optimization score
python3 -m terragrunt_gcp_mcp.cli --config config/config.yaml cost-optimization-score
# Get comprehensive cost status
python3 -m terragrunt_gcp_mcp.cli --config config/config.yaml cost-status --environment dev-99
# Get cost status without optimization score
python3 -m terragrunt_gcp_mcp.cli --config config/config.yaml cost-status --no-optimization
Uso MCP
# Example: Get comprehensive cost analysis
result = get_cost_analysis(
environment="dev-99",
period_days=30,
include_forecasting=True,
include_recommendations=True
)
# Example: Get cost alerts
result = get_cost_alerts(threshold_percentage=80.0)
# Example: Get cost optimization score
result = get_cost_optimization_score()
# Example: Get complete cost status
result = get_cost_status(
environment="dev-99",
include_alerts=True,
include_optimization_score=True
)
Funciones de Análisis de Costos
- Desglose por Servicio: Costos por servicio de GCP (Compute, Storage, Networking, etc.)
- Desglose por Entorno: Costos por entorno (dev, staging, producción)
- Costos a Nivel de Recurso: Seguimiento de costos de recursos individuales
- Tendencias de Costos: Datos históricos de costos y análisis de tendencias
- Pronósticos: Modelado predictivo de costos para planificación de presupuestos
- Recomendaciones de Optimización: Sugerencias accionables para reducción de costos
- Alertas de Presupuesto: Notificaciones proactivas para umbrales de presupuesto
- Puntuación de Optimización: Evaluación de eficiencia de infraestructura (calificación A-F)
live/ ├── dev-account/ │ └── test-dev/ │ └── dev-99/ │ ├── stack.hcl # Definición del stack │ ├── project/ │ │ └── terragrunt.hcl # Unidad 1 │ ├── compute/ │ │ └── terragrunt.hcl # Unidad 2 │ └── secrets/ │ └── terragrunt.hcl # Unidad 3
#### Benefits
1. **Faster Deployments**: Parallel execution of independent units
2. **Better Dependency Management**: Automatic dependency resolution
3. **Improved Reliability**: Enhanced error handling and retry mechanisms
4. **Stack-Level Visibility**: Aggregate status and outputs
5. **Simplified Operations**: Single commands for complex deployments
## Architecture
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐ │ MCP Client │ │ MCP Server │ │ Terragrunt │ │ (Claude) │◄──►│ (This Tool) │◄──►│ Infrastructure│ └─────────────────┘ └──────────────────┘ └─────────────────┘ │ │ ▼ ▼ ┌──────────────────┐ ┌─────────────────┐ │ External APIs │ │ 🧪 Experimental │ │ • GCP APIs │ │ Stacks │ │ • Slack API │ │ • Enhanced │ │ • GitHub API │ │ Dependencies│ └──────────────────┘ │ • Parallel │ │ Execution │ └─────────────────┘
## Seguridad
- **Gestión de Credenciales**: Soporta múltiples métodos de autenticación de GCP
- **Validación de Permisos**: Verifica permisos antes de las operaciones
- **Registro de Auditoría**: Todas las operaciones se registran para auditoría de seguridad
- **Operaciones Seguras**: Modo de prueba (dry-run) para probar cambios
## Contribución
1. Haz un fork del repositorio
2. Crea una rama de características
3. Realiza tus cambios
4. Agrega pruebas para la nueva funcionalidad
5. Envía una solicitud de pull (pull request)
## Licencia
Licencia Pública General de GNU v3.0 - consulta LICENSE.md para más detalles.
## Soporte
Para problemas y preguntas:
- Crea un issue en el repositorio
- Consulta la documentación en `/docs`
- Revisa los ejemplos en `/examples`