Terragrunt GCP MCP Tool
Gerencie a infraestrutura do Google Cloud Platform (GCP) usando Terragrunt, com suporte a recursos experimentais como AutoDevOps e gerenciamento de custos.
Documentação
Terragrunt GCP MCP Tool
Um servidor de ferramentas Model Context Protocol (MCP) para gerenciar infraestrutura do Google Cloud Platform usando Terragrunt. Esta ferramenta fornece automação inteligente e capacidades de gerenciamento para o codebase terragrunt-gcp-org-automation com suporte para Recursos Experimentais do Terragrunt.
Recursos
🧪 Suporte a Recursos Experimentais
- Terragrunt Stacks: Gerenciamento aprimorado de dependências e execução paralela usando o recurso experimental de stacks
- Resolução Aprimorada de Dependências: Análise melhorada de dependências e ordenação de execução
- Operações em Nível de Stack: Executar comandos em múltiplas unidades com gerenciamento inteligente de dependências
- Execução Paralela: Executar múltiplas unidades em paralelo dentro de stacks para implantações mais rápidas
- Saídas de Stack: Agregar e gerenciar saídas no nível do stack
Gerenciamento de Recursos
- Adicionar Novos Recursos: Criar novos recursos de infraestrutura com modelos
- Consultar Recursos: Inspecionar configurações e estados de recursos existentes
- Atualizar Recursos: Modificar configurações de recursos com segurança
- Excluir Recursos: Remover recursos com verificação de dependências
Operações de Implantação
- Verificar Status: Monitorar status de implantação e saúde
- Acionar Implantações: Iniciar implantações de infraestrutura
- Planejar Alterações: Gerar e revisar planos de infraestrutura
- Rollback: Reverter alterações com falha ou indesejadas
Monitoramento e Notificações
- Monitoramento de Status: Rastrear estado e alterações da infraestrutura
- Notificações de Equipe: Enviar atualizações para canais do Slack
- Gerenciamento de Alertas: Configurar e gerenciar alertas de infraestrutura
- Registro de Auditoria: Rastrear todas as operações e alterações
Recursos Avançados
- Análise de Dependências: Entender dependências de recursos
- Gerenciamento de Ambientes: Lidar com ambientes dev/staging/produção
- Gerenciamento de Modelos: Criar e gerenciar modelos de infraestrutura
- Análise de Custos: Monitorar e otimizar custos de infraestrutura
Suporte ao Redesign da CLI do Terragrunt
- Nova Estrutura de Comandos: Usa o redesign mais recente da CLI do Terragrunt com comandos
run - Variáveis de Ambiente: Atualizado para usar variáveis de ambiente com prefixo
TG_ - Bootstrap de Backend: Provisionamento automático de recursos de backend com
--backend-bootstrap - Descoberta de Dependências: Análise aprimorada do grafo de dependências com comandos
findelist - Operações Run All: Suporte para comandos
run --allem múltiplas unidades
🤖 Integração com Assistente AutoDevOps (Novo!)
Esta ferramenta agora inclui prompts de sistema abrangentes para criar assistentes AutoDevOps que podem ajudar a gerenciar, monitorar e manter infraestrutura em nuvem usando todas as capacidades da ferramenta.
Obtendo 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
Acesso à Ferramenta 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")
Integração com Claude Desktop
Adicione o prompt AutoDevOps à sua configuração do 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."
}
}
Exemplo de Integração com 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"
}
]
)
Integração de Automação
#!/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"
O que o Assistente AutoDevOps Fornece
Capacidades Principais:
- 🌳 Visualização de Infraestrutura: Árvores visuais e grafos de dependências
- 🧪 Stacks Experimentais: Execução paralela e gerenciamento aprimorado de dependências
- 🚀 Implantações Seguras: Validação, planejamento e capacidades de rollback
- 🔧 Gerenciamento de Recursos: Gerenciamento completo do ciclo de vida com verificações de segurança
- 📊 Monitoramento: Avaliação de saúde e otimização de desempenho
- 🔐 Segurança: Conformidade e gerenciamento de trilha de auditoria
Diretrizes Operacionais:
- Abordagem de Segurança em Primeiro Lugar: Sempre validar → visualizar → planejar → implantar
- Visualização em Primeiro Lugar: Começar com visualização de árvore/grafo antes de fazer alterações
- Melhores Práticas GitOps: Integração com controle de versão e testes automatizados
- Proteção de Ambientes: Tratamento especial para ambientes de produção
Padrão de Resposta:
- Visualização do Estado Atual - Mostrar estado da infraestrutura com ferramentas de árvore/grafo
- Análise de Impacto - Analisar o que mudaria e o que poderia ser afetado
- Recomendações - Fornecer melhores práticas e ações sugeridas
- Etapas de Implementação - Etapas claras e acionáveis com comandos específicos da ferramenta
- Validação e Monitoramento - Como verificar o sucesso e monitoramento contínuo
🌳 Visualização de Árvore de Recursos
Instalação
# 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
Configuração
Crie um arquivo config/config.yaml com suas configurações:
# 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
Executando como Servidor MCP
Existem várias maneiras de iniciar o servidor MCP:
Opção 1: Usando o script de inicialização (Recomendado)
# Start the MCP server with default config
python3 run_server.py
# Start with custom config file
python3 run_server.py config/config.yaml
Opção 2: Usando o módulo diretamente
# Start the MCP server
python3 -m terragrunt_gcp_mcp.server
# With custom config
python3 -m terragrunt_gcp_mcp.server config/config.yaml
Opção 3: Usando a 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
O servidor estará disponível para clientes MCP se conectarem via stdio.
Usando com Claude Desktop
Adicione à sua configuração MCP do Claude Desktop:
{
"mcpServers": {
"terragrunt-gcp": {
"command": "python3",
"args": ["-m", "terragrunt_gcp_mcp.server"],
"cwd": "/path/to/terragrunt-gcp-tool-mcp"
}
}
}
Ferramentas Disponíveis
O servidor MCP fornece estas ferramentas:
🧪 Ferramentas de Stacks Experimentais
list_stacks- Listar todos os stacks do Terragrunt usando recursos experimentaisget_stack_details- Obter informações detalhadas sobre um stack específico, incluindo unidades e ordem de execuçãoexecute_stack_command- Executar comandos em stacks com execução paralela e gerenciamento de dependênciasget_stack_outputs- Obter saídas agregadas de operações em nível de stackget_enhanced_infrastructure_status- Obter status abrangente incluindo recursos tradicionais e stacks
Gerenciamento de Recursos
list_resources- Listar todos os recursos na infraestruturaget_resource- Obter informações detalhadas sobre um recurso específico (obsoleto, use get_resource_details)get_resource_details- Obter informações abrangentes sobre um recurso específico, incluindo atributos, estado e configuraçãovalidate_resource_config- Validar uma configuração de recurso do Terragrunt com verificação de dependênciascreate_resource- Criar um novo recurso de infraestruturaupdate_resource- Atualizar uma configuração de recurso existentedelete_resource- Excluir um recurso (com verificação de dependências)
Visualização e Desenho de Árvores (Novo!)
draw_resource_tree- Desenhar uma árvore visual de recursos usando comandos do redesign da CLI do Terragruntget_dependency_graph- Gerar grafos de dependências em formato DOT, Mermaid ou JSONvisualize_infrastructure- Visualização abrangente de infraestrutura combinando árvores e grafos
Integração com Assistente AutoDevOps (Novo!)
get_autodevops_system_prompt- Obter prompts de sistema para integração com LLM para criar assistentes AutoDevOps- Suporte para variantes de prompt compactas, estendidas e específicas de CLI
- Formatos de saída JSON, texto e contexto para diferentes cenários de integração
- Guias de integração integrados para Claude Desktop, APIs e ferramentas de automação
Gerenciamento e Análise de Custos (Novo!)
get_cost_analysis- Análise abrangente de custos com previsão e recomendações de otimizaçãoget_cost_alerts- Alertas de custos baseados em limites de orçamento e padrões de gastosget_cost_optimization_score- Pontuação de otimização de custos de infraestrutura e recomendaçõesget_cost_status- Painel completo de status de custos com análise, alertas e insights de otimização- Suporte para filtragem por ambiente, múltiplos períodos de tempo e detalhamentos detalhados de custos
- Integração com a API de Cobrança do Google Cloud para dados precisos de custos
Operações de Implantação
plan_deployment- Gerar plano de implantação para alterações (obsoleto, use plan_resource_deployment)plan_resource_deployment- Gerar um plano de implantação abrangente para um recurso do Terragruntdeploy_resources- Implantar alterações de infraestrutura (obsoleto, use apply_resource_deployment)apply_resource_deployment- Aplicar alterações a um recurso do Terragrunt com verificações de segurançacheck_deployment_status- Verificar status de implantações em andamentorollback_deployment- Reverter uma implantação com falha
Monitoramento e Análise
get_infrastructure_status- Obter saúde geral da infraestruturaanalyze_dependencies- Analisar dependências de recursosget_cost_analysis- Obter detalhamento de custos da infraestruturacheck_drift- Detectar desvio de configuração
Colaboração de Equipe
send_slack_notification- Enviar notificações para a equipecreate_deployment_summary- Gerar relatórios de implantaçãoget_audit_log- Recuperar registros de auditoria
Exemplos
🧪 Usando Recursos Experimentais de Stacks
Uso via 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
🌳 Visualização de Árvore de Recursos (Novo!)
Uso via 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 via 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
)
Exemplo de Saída de Árvore
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]
Exemplo de Grafo de Dependências (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]
Validando Recursos
Uso via 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 via 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
)
Planejando Implantações
Uso via 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 via 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
)
Aplicando Implantações
Uso via 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 via 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
)
Exemplo de Fluxo de Trabalho Completo
Fluxo de Trabalho via 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"
🧪 Fluxo de Trabalho com Stacks Experimentais
# 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
Fluxo de Trabalho via 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
)
Consultando Recursos Individuais
# 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
Criando uma Nova Instância de Computação
# 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"]
}
)
Obtendo Detalhes de Recursos via 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
)
Implantando Alterações
# 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
)
Monitorando Status
# Example: Check infrastructure status
status = get_infrastructure_status(
environment="dev-99",
include_costs=True,
include_health=True
)
💰 Gerenciamento e Análise de Custos (Novo!)
Análise abrangente de custos, monitoramento e otimização para sua infraestrutura GCP.
Uso via 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 via 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
)
Recursos de Análise de Custos
- Detalhamento por Serviço: Custos por serviço GCP (Compute, Storage, Networking, etc.)
- Detalhamento por Ambiente: Custos por ambiente (dev, staging, produção)
- Custos em Nível de Recurso: Rastreamento de custos de recursos individuais
- Tendências de Custos: Dados históricos de custos e análise de tendências
- Previsão: Modelagem preditiva de custos para planejamento de orçamento
- Recomendações de Otimização: Sugestões acionáveis de redução de custos
- Alertas de Orçamento: Notificações proativas para limites de orçamento
- Pontuação de Otimização: Pontuação de eficiência da infraestrutura (nota A-F)
live/ ├── dev-account/ │ └── test-dev/ │ └── dev-99/ │ ├── stack.hcl # Definição do stack │ ├── project/ │ │ └── terragrunt.hcl # Unidade 1 │ ├── compute/ │ │ └── terragrunt.hcl # Unidade 2 │ └── secrets/ │ └── terragrunt.hcl # Unidade 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 │ └─────────────────┘
## Segurança
- **Gerenciamento de Credenciais**: Suporta múltiplos métodos de autenticação GCP
- **Validação de Permissões**: Verifica permissões antes das operações
- **Registro de Auditoria**: Todas as operações são registradas para auditoria de segurança
- **Operações Seguras**: Modo de simulação (dry-run) para testar alterações
## Contribuindo
1. Faça um fork do repositório
2. Crie um branch de funcionalidade
3. Faça suas alterações
4. Adicione testes para novas funcionalidades
5. Envie um pull request
## Licença
GNU General Public License v3.0 - consulte LICENSE.md para detalhes.
## Suporte
Para problemas e perguntas:
- Crie um issue no repositório
- Consulte a documentação em `/docs`
- Revise os exemplos em `/examples`