Kusto MCP Server

Un servidor MCP para Azure Data Explorer (Kusto) que permite a los asistentes de IA interactuar con bases de datos Kusto.

Documentación

🔍 Kusto MCP Server

CI npm version npm downloads

Convierte tu asistente de IA en un analista de datos en 2 minutos.

Conecta Cline, Cursor, Claude Desktop o cualquier herramienta de IA a Azure Data Explorer. Haz preguntas en lenguaje natural y obtén información de tus datos al instante, sin necesidad de conocimientos de KQL.

Lo que puedes hacer

  • "Muéstrame los registros de errores de la última hora" → Obtén información instantánea de los datos de telemetría
  • "¿Qué clientes generaron más ingresos este mes?" → Analiza métricas de negocio sin esfuerzo
  • "Encuentra todos los intentos de autenticación fallidos" → Investiga incidentes de seguridad con ayuda de la IA
  • "Resume las tendencias de rendimiento del sistema" → Obtén análisis automatizados de los datos de monitoreo

No más escribir consultas KQL complejas. Solo haz preguntas naturales a tu asistente de IA sobre tus datos.

Configuración rápida

Para usuarios de Claude Code

Ejecuta este comando en la terminal para instalar:

claude mcp add kusto-mcp -- npx -y kusto-mcp@latest

Para usuarios de Cline

Añade esto a tu archivo cline_mcp_settings.json:

{
  "mcpServers": {
    "github.com/johnib/kusto-mcp": {
      "command": "npx",
      "args": ["-y", "kusto-mcp@latest"],
      "env": {},
      "disabled": false,
      "autoApprove": [
        "initialize-connection",
        "show-tables",
        "show-table",
        "execute-query",
        "report-issue"
      ]
    }
  }
}

Para usuarios de Cursor

Añade esto a tu settings.json de VS Code:

{
  "mcp": {
    "servers": {
      "github.com/johnib/kusto-mcp": {
        "type": "stdio",
        "command": "npx",
        "args": ["-y", "kusto-mcp"]
      }
    }
  }
}

Para usuarios de Claude Desktop

Añade esto a tu archivo de configuración de Claude Desktop:

{
  "mcpServers": {
    "kusto-mcp": {
      "command": "npx",
      "args": ["-y", "kusto-mcp"]
    }
  }
}

Configuración de autenticación

  1. Instala Azure CLI (si aún no lo has hecho):

    # Windows
    winget install Microsoft.AzureCLI
    
    # macOS
    brew install azure-cli
    
    # Linux
    curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
    
  2. Inicia sesión en Azure:

    az login
    
  3. ¡Eso es todo! Tu asistente de IA ya puede conectarse a tus clústeres de Azure Data Explorer.

Prueba que funciona

Pregunta a tu asistente de IA:

"Conéctate a mi clúster de Azure Data Explorer en https://your-cluster.kusto.windows.net y muéstrame las tablas disponibles"

Deberías ver que tu IA se conecta correctamente y lista las tablas de tu base de datos.

Herramientas de IA compatibles

  • Claude Code - Configuración en un solo comando con soporte nativo de MCP
  • Cline - Soporte completo con aprobación automática
  • Cursor - Integración completa
  • Claude Desktop - Soporte nativo de MCP
  • VS Code con MCP - Compatibilidad integrada
  • Cualquier herramienta compatible con MCP - Soporte universal

Problemas comunes

🔒 ¿Permiso denegado?

  • Ejecuta az login y asegúrate de tener acceso al clúster de Azure Data Explorer
  • Verifica que has iniciado sesión en el inquilino de Azure correcto

🔌 ¿No puedes conectarte al clúster?

  • Revisa el formato de la URL del clúster: https://your-cluster.kusto.windows.net
  • Asegúrate de que el clúster sea accesible desde tu red

❓ ¿La IA no ve las herramientas?

  • Reinicia tu asistente de IA después de añadir la configuración
  • Comprueba que la configuración JSON sea válida (usa un validador JSON)

¿Sigue atascado?Abre un issue o consulta nuestra guía de solución de problemas.

Qué hay bajo el capó

Este servidor MCP proporciona a tu asistente de IA herramientas para:

  • Inicializar conexiones a clústeres de Azure Data Explorer
  • Explorar tablas y esquemas de bases de datos
  • Ejecutar consultas KQL con limitación inteligente de resultados
  • Gestionar la autenticación de forma segura mediante Azure CLI
  • Reportar un error o solicitar una función en GitHub (report-issue)

Los resultados se formatean y dimensionan automáticamente para las ventanas de contexto de la IA, para que tu asistente obtenga los datos que necesita sin verse abrumado.

Reportar un problema

¿Encontraste un error o quieres una función? Pide a tu asistente de IA que "reporte un issue de kusto-mcp sobre …" y llamará a la herramienta report-issue.

La herramienta devuelve un enlace de issue de GitHub pre-rellenado — ábrelo en un navegador donde hayas iniciado sesión en GitHub, revisa el título y el cuerpo, y haz clic en Submit new issue. Algunas cosas que vale la pena saber:

  • No se necesita ni se almacena ningún token de GitHub. El servidor nunca envía nada en tu nombre; el issue se crea bajo tu propia cuenta de GitHub cuando envías el formulario. (Sí necesitas una cuenta de GitHub para enviarlo).
  • Funciona incluso cuando la conexión está rota — no requiere una conexión Kusto activa, por lo que es la herramienta adecuada para reportar problemas de conexión.
  • Por defecto, se añade un pequeño pie de página de entorno no sensible (versiones de kusto-mcp/Node/OS/MCP-client, si hay una conexión activa, formato de respuesta, modo de escritura) para ayudar al triaje. Pasa includeDiagnostics: false para omitirlo. Nunca incluye la URL de tu clúster, base de datos, identidad, texto de consulta ni resultados.

Telemetría y privacidad

kusto-mcp reporta telemetría de uso anónima a la instancia de Honeycomb del mantenedor para entender cómo se usa la herramienta y diagnosticar fallos. La telemetría está siempre activada — usar kusto-mcp significa reportar uso anónimo. No contiene datos personales ni organizativos, ni texto de consultas ni resultados (detalles abajo).

Qué se recopila (trazas, métricas y registros operativos mediante OpenTelemetry):

  • Uso: qué herramientas se llaman, latencia, longitud de consultas/comandos (no el texto), recuentos de filas de resultados, tamaños de respuesta, resultados y tu configuración/opciones de funciones.
  • Fiabilidad: recuentos de llamadas/errores, intentos/fallos de conexión y nombres de clases de error (p. ej. KustoQueryError) — nunca mensajes de error.
  • Contadores de cohorte: hashes con sal de tu tenant id de Azure (company_hash) y object id (user_hash), para que el mantenedor pueda contar organizaciones y usuarios distintos — nunca se envía el tenant sin procesar, nombre de empresa, dominio de correo, correo electrónico, UPN ni id de usuario. Además, principal_type (usuario vs. entidad de servicio) y account_type (personal vs. empresarial); el tenant compartido de cuentas personales no envía company_hash.
  • Entorno: versión de kusto-mcp, SO/arquitectura, versión de Node.js, nombre del cliente MCP y un identificador aleatorio por instalación (machine.id).

Lo que NUNCA se recopila: sin nombre de empresa ni dominio de correo; sin tenant id ni id de usuario de Azure sin procesar; sin correo electrónico completo, UPN ni nombre; sin nombres de clúster, base de datos, tabla o función; sin texto de consultas, resultados, mensajes de error, credenciales ni tokens.

Enrutamiento a tu propio recopilador: las empresas que ejecutan su propio pipeline de OpenTelemetry pueden redirigir los datos con variables de entorno estándar — OTEL_EXPORTER_OTLP_ENDPOINT (tu URL base OTLP HTTP) y OTEL_EXPORTER_OTLP_HEADERS (key=value,key2=value2).

Configuración avanzada

¿Necesitas opciones personalizadas? Consulta nuestra Guía de configuración para:

  • Opciones de formato de respuesta (JSON vs. Markdown)
  • Ajustes de tiempo de espera de consultas
  • Limitación del tamaño de resultados
  • Integración con OpenTelemetry

Para desarrolladores

¿Quieres compilar, probar o contribuir? Consulta nuestra Documentación para desarrolladores para:

  • Compilar desde el código fuente
  • Ejecutar pruebas
  • Estructura del proyecto
  • Directrices de contribución

Licencia

MIT


💡 Consejo profesional: Empieza pidiendo a tu IA que "muestre las tablas de mi base de datos" para explorar qué datos tienes disponibles y luego haz preguntas en lenguaje natural sobre tablas específicas.