provisioning-outreach/presentations/rust-laspalmas-250926/demos/02-mcp-ai-demo.nu

185 lines
5.6 KiB
Text
Raw Normal View History

#!/usr/bin/env nu
# Demo 2: MCP + AI Integration - Rust Meetup 2025
# Este script demuestra la integración con Model Context Protocol
print "🤖 Demo 2: MCP + AI Integration"
print "================================"
# Preparar ambiente MCP
print "\n🔧 Preparando ambiente MCP..."
print "Verificando configuración de Claude Desktop..."
# Verificar configuración MCP
let mcp_config_path = if ($env.OS | default "" | str contains "Windows") {
$env.APPDATA + "/Claude/claude_desktop_config.json"
} else if ($env.OS | default "" | str contains "Darwin") {
$env.HOME + "/Library/Application Support/Claude/claude_desktop_config.json"
} else {
$env.HOME + "/.config/claude/claude_desktop_config.json"
}
print $"📁 Configuración MCP: ($mcp_config_path)"
# Mostrar configuración MCP de ejemplo
print "\n📋 Configuración Claude Desktop (ejemplo):"
let mcp_config = {
mcpServers: {
provisioning: {
command: "python3"
args: ["/ruta/completa/a/provisioning/mcp/server.py"]
env: {
PROVISIONING_PATH: "/usr/local/provisioning"
OPENAI_API_KEY: "${OPENAI_API_KEY}"
ANTHROPIC_API_KEY: "${ANTHROPIC_API_KEY}"
}
}
}
}
print ($mcp_config | to json)
# Simular interacción con Claude Desktop
print "\n💬 Simulando conversación con Claude Desktop:"
print "=============================================="
print "\n👤 Usuario:"
print "\"Crea 3 servidores AWS con 4 CPU cada uno para un cluster Kubernetes de desarrollo. Necesito un master y dos workers.\""
sleep 2sec
print "\n🤖 Claude (usando MCP):"
print "Voy a crear esa infraestructura para ti. Usando el sistema de provisioning..."
# Mostrar herramientas MCP disponibles
print "\n🛠 Herramientas MCP disponibles:"
let mcp_tools = [
{ name: "provision_create_server", description: "Crear servidores de infraestructura" }
{ name: "provision_ai_template", description: "Generar templates con AI" }
{ name: "provision_query", description: "Consultar estado de infraestructura" }
{ name: "provision_deploy_taskserv", description: "Desplegar servicios específicos" }
{ name: "provision_cluster_create", description: "Crear clusters completos" }
{ name: "provision_status", description: "Ver estado general" }
]
print ($mcp_tools | table)
# Simular ejecución de herramienta MCP
sleep 1sec
print "\n⚙ Claude ejecuta: provision_create_server"
print "Parámetros:"
let ai_request = {
description: "3 servidores AWS para cluster Kubernetes desarrollo"
requirements: {
count: 3
cpu: 4
purpose: "kubernetes"
roles: ["master", "worker", "worker"]
provider: "aws"
environment: "development"
}
}
print ($ai_request | to json)
# Simular traducción a comandos
sleep 1sec
print "\n🔄 MCP traduce a comandos del sistema:"
print "$ provisioning generate server --template aws-k8s-cluster --nodes 3 --cpu 4 --purpose development"
print "$ provisioning server create --infra k8s-dev-cluster --wait"
# Simular respuesta exitosa
sleep 2sec
print "\n✅ Resultado:"
let created_servers = [
{
hostname: "k8s-master-01"
role: "master"
instance_type: "t3.large"
cpu: 4
memory: "8GB"
status: "running"
public_ip: "203.0.113.10"
}
{
hostname: "k8s-worker-01"
role: "worker"
instance_type: "t3.large"
cpu: 4
memory: "8GB"
status: "running"
public_ip: "203.0.113.11"
}
{
hostname: "k8s-worker-02"
role: "worker"
instance_type: "t3.large"
cpu: 4
memory: "8GB"
status: "running"
public_ip: "203.0.113.12"
}
]
print ($created_servers | table)
# Demostrar consulta inteligente
print "\n💬 Segunda interacción - Consulta inteligente:"
print "=============================================="
print "\n👤 Usuario:"
print "\"¿Cuál es el estado actual de mi cluster? ¿Hay algún problema?\""
sleep 1sec
print "\n🤖 Claude (usando MCP):"
print "⚙️ Ejecutando: provision_query"
# Simular análisis inteligente
sleep 1sec
print "\n📊 Análisis del cluster:"
print "✅ Todos los servidores están funcionando correctamente"
print "✅ Conectividad de red OK"
print "⚠️ Kubernetes aún no instalado - ¿quieres que lo instale?"
print "💰 Costo actual: ~$0.35/hora ($252/mes)"
print "📈 CPU utilización: 5% promedio (normal para cluster recién creado)"
# Demostrar automatización
print "\n💬 Tercera interacción - Automatización:"
print "======================================="
print "\n👤 Usuario:"
print "\"Sí, instala Kubernetes y agrega youki como container runtime\""
print "\n🤖 Claude:"
print "⚙️ Ejecutando: provision_deploy_taskserv"
print "Instalando Kubernetes + youki..."
sleep 2sec
print "\n✅ Servicios instalados:"
let installed_services = [
{
service: "kubernetes"
version: "v1.29.0"
status: "running"
nodes_ready: "3/3"
}
{
service: "youki"
version: "0.3.0"
status: "active"
runtime: "OCI compliant"
}
]
print ($installed_services | table)
print "\n🎯 Demo MCP completada!"
print "⭐ Ventajas mostradas:"
print " - Lenguaje natural → comandos estructurados"
print " - Análisis inteligente del estado"
print " - Automatización conversacional"
print " - Integración seamless con herramientas existentes"
print "\n🔧 Para configurar MCP en tu sistema:"
print "1. Instalar Claude Desktop"
print "2. Configurar claude_desktop_config.json"
print "3. Iniciar MCP server: python3 mcp/server.py"
print "4. ¡Conversar con tu infraestructura!"