#!/bin/bash # Script de configuración automática de Chrome DevTools MCP PROJECT_NAME=$(basename $(pwd)) CHROME_PORT=$((9222 + $(echo $PROJECT_NAME | cksum | cut -d' ' -f1) % 100)) CLAUDE_CONFIG_DIR="$HOME/.config/claudecode" CLAUDE_CONFIG_FILE="$CLAUDE_CONFIG_DIR/mcp.json" echo "======================================" echo "Configuración de Chrome DevTools MCP" echo "Proyecto: $PROJECT_NAME" echo "Puerto: $CHROME_PORT" echo "======================================" echo "" # Crear directorio de configuración si no existe if [ ! -d "$CLAUDE_CONFIG_DIR" ]; then echo "Creando directorio de configuración de Claude Code..." mkdir -p "$CLAUDE_CONFIG_DIR" fi # Función para crear configuración nueva create_new_config() { cat > "$CLAUDE_CONFIG_FILE" << EOF { "mcpServers": { "chrome-devtools": { "command": "npx", "args": [ "chrome-devtools-mcp@latest", "--browserUrl=http://localhost:${CHROME_PORT}", "--isolated" ] } } } EOF echo "✓ Configuración creada exitosamente" } # Función para actualizar configuración existente update_existing_config() { # Hacer backup cp "$CLAUDE_CONFIG_FILE" "$CLAUDE_CONFIG_FILE.backup" echo "✓ Backup creado: $CLAUDE_CONFIG_FILE.backup" # Usar jq para actualizar si está disponible if command -v jq &> /dev/null; then jq ".mcpServers[\"chrome-devtools\"].args = [\"chrome-devtools-mcp@latest\", \"--browserUrl=http://localhost:${CHROME_PORT}\", \"--isolated\"]" \ "$CLAUDE_CONFIG_FILE.backup" > "$CLAUDE_CONFIG_FILE" echo "✓ Configuración actualizada con jq" else echo "⚠ jq no está instalado. Mostrando configuración manual..." echo "" echo "Por favor, editá manualmente $CLAUDE_CONFIG_FILE" echo "y cambiá el --browserUrl a: http://localhost:${CHROME_PORT}" echo "y agregá --isolated como tercer argumento" echo "" echo "O instalá jq: sudo apt install jq" return 1 fi } # Verificar si existe config.json if [ -f "$CLAUDE_CONFIG_FILE" ]; then echo "Archivo de configuración existente encontrado." echo "Opciones:" echo " 1) Actualizar configuración existente (recomendado)" echo " 2) Sobrescribir con nueva configuración" echo " 3) Mostrar configuración manual" echo " 4) Cancelar" echo "" read -p "Seleccioná una opción (1-4): " option case $option in 1) update_existing_config ;; 2) echo "⚠ Esto sobrescribirá toda tu configuración actual." read -p "¿Estás seguro? (s/N): " confirm if [[ $confirm =~ ^[Ss]$ ]]; then create_new_config else echo "Operación cancelada" exit 0 fi ;; 3) echo "" echo "Configuración manual:" echo "1. Editá: $CLAUDE_CONFIG_FILE" echo "2. Agregá o modificá la sección mcpServers:" echo "" cat << 'EOF' { "mcpServers": { "chrome-devtools": { "command": "npx", "args": [ "chrome-devtools-mcp@latest", EOF echo " \"--browserUrl=http://localhost:${CHROME_PORT}\"," cat << 'EOF' "--isolated" ] } } } EOF exit 0 ;; 4) echo "Operación cancelada" exit 0 ;; *) echo "Opción inválida" exit 1 ;; esac else echo "No se encontró configuración existente. Creando nueva..." create_new_config fi echo "" echo "======================================" echo "✓ Configuración completada" echo "======================================" echo "" echo "Próximos pasos:" echo "1. Iniciá el navegador: ./start-browser.sh" echo "2. Reiniciá Claude Code para aplicar cambios" echo "" echo "Ver documentación completa: .claude/CHROME_SETUP.md"