Lokka

Un servidor para las API de Microsoft Graph y Azure RM para gestionar inquilinos de Azure y Microsoft 365 con IA.

Documentación

Lokka

npm version downloads downloads per month GitHub stars license

Lokka es un servidor de protocolo de contexto de modelo (MCP) para las API de Microsoft Graph y Azure RM que te permite consultar y administrar tus inquilinos de Azure y Microsoft 365 con IA.

Lokka Demo - user create demo

Consulta Lokka.dev para saber cómo usar Lokka con tu modelo de IA y cliente de chat favorito.

Lokka te permite usar Claude Desktop, o cualquier cliente MCP, para usar lenguaje natural y realizar tareas en tu inquilino de Azure y Microsoft 365 a través de las API de Microsoft.

Por ejemplo:

  • Create a new security group called 'Sales and HR' with a dynamic rule based on the department attribute.
  • Find all the conditional access policies that haven't excluded the emergency access account
  • Show me all the Intune device configuration policies assigned to the 'Call center' group
  • What was the most expensive service in Azure last month?

How does Lokka work?

Métodos de autenticación

Lokka ahora admite múltiples métodos de autenticación para adaptarse a diferentes escenarios de implementación:

Autenticación interactiva

Para autenticación basada en usuario con inicio de sesión interactivo, puedes usar la siguiente configuración:

Esta es la configuración más simple y usa la aplicación Lokka predeterminada.

{
  "mcpServers": {
    "Lokka-Microsoft": {
      "command": "npx",
      "args": ["-y", "@merill/lokka"]
    }
  }
}

Autenticación interactiva con aplicación personalizada

Si deseas usar una aplicación personalizada de Microsoft Entra, puedes crear un nuevo registro de aplicación en Microsoft Entra y configurarlo con las siguientes variables de entorno:

{
  "mcpServers": {
    "Lokka-Microsoft": {
      "command": "npx",
      "args": ["-y", "@merill/lokka"],
      "env": {
        "TENANT_ID": "<tenant-id>",
        "CLIENT_ID": "<client-id>",
        "USE_INTERACTIVE": "true"
      }
    }
  }
}

Autenticación solo de aplicación

Autenticación tradicional solo de aplicación. Puedes usar autenticación con certificado (recomendado) o con secreto de cliente usando la siguiente configuración.

Consulta la Guía de instalación para más detalles sobre cómo crear una aplicación de Entra.

Autenticación solo de aplicación con certificado

Autenticación solo de aplicación usando un certificado de cliente codificado en PEM:

{
  "mcpServers": {
    "Lokka-Microsoft": {
      "command": "npx",
      "args": ["-y", "@merill/lokka"],
      "env": {
        "TENANT_ID": "<tenant-id>",
        "CLIENT_ID": "<client-id>",
        "CERTIFICATE_PATH": "/path/to/certificate.pem",
        "CERTIFICATE_PASSWORD": "<optional-certificate-password>",
        "USE_CERTIFICATE": "true"
      }
    }
  }
}

Para mayor comodidad, para convertir un certificado de cliente PFX a un certificado codificado en PEM:

openssl pkcs12 -in /path/to/cert.pfx -out /path/to/cert.pem -nodes -clcerts

Autenticación solo de aplicación con secreto de cliente

{
  "mcpServers": {
    "Lokka-Microsoft": {
      "command": "npx",
      "args": ["-y", "@merill/lokka"],
      "env": {
        "TENANT_ID": "<tenant-id>",
        "CLIENT_ID": "<client-id>",
        "CLIENT_SECRET": "<client-secret>"
      }
    }
  }
}

Token proporcionado por el cliente

Autenticación basada en token donde el cliente MCP proporciona los tokens de acceso:

{
  "mcpServers": {
    "Lokka-Microsoft": {
      "command": "npx",
      "args": ["-y", "@merill/lokka"],
      "env": {
        "USE_CLIENT_TOKEN": "true"
      }
    }
  }
}

Al usar el modo de token proporcionado por el cliente:

  1. Inicia el servidor MCP con USE_CLIENT_TOKEN=true
  2. Usa la herramienta set-access-token para proporcionar un token de acceso válido de Microsoft Graph
  3. Usa la herramienta get-auth-status para verificar el estado de autenticación
  4. Actualiza los tokens según sea necesario usando set-access-token

Nuevas herramientas

Herramientas de gestión de tokens

  • set-access-token: Establece o actualiza tokens de acceso para la autenticación de Microsoft Graph
  • get-auth-status: Verifica el estado de autenticación actual y las capacidades
  • add-graph-permission: Solicita ámbitos de permiso adicionales de Microsoft Graph de forma interactiva

Control de versión de la API de Graph

Lokka ahora admite el control de la versión predeterminada de la API de Microsoft Graph utilizada para todas las solicitudes:

  • Comportamiento predeterminado: Usa la versión beta para acceder a las funciones más recientes
  • Modo producción: Establece USE_GRAPH_BETA=false para forzar que todas las solicitudes usen la versión v1.0
  • Anulación por solicitud: Aún puedes especificar el parámetro graphApiVersion en solicitudes individuales (a menos que USE_GRAPH_BETA=false)

Cuando USE_GRAPH_BETA=false, todas las llamadas a la API de Graph usarán la versión estable v1.0, incluso si beta se solicita explícitamente en el parámetro graphApiVersion.

Primeros pasos

Consulta la documentación para obtener más información sobre cómo instalar y configurar Lokka.

Instalación con un clic para VS Code

PlataformaVS CodeVS Code Insiders
WindowsInstall in VS CodeInstall in VS Code Insiders
macOS/LinuxInstall in VS CodeInstall in VS Code Insiders

Componentes

Herramientas

  1. Lokka-Microsoft

    • Llama a las API de Microsoft Graph y Azure. Admite consultas a inquilinos de Azure y Microsoft 365. También se admiten actualizaciones si se proporcionan los permisos.
    • Entrada:
      • apiType (cadena): Tipo de API de Microsoft a consultar. Opciones: 'graph' para Microsoft Graph (Entra) o 'azure' para Azure Resource Management.
      • path (cadena): La ruta de URL de la API de Azure o Graph a llamar (por ejemplo, '/users', '/groups', '/subscriptions').
      • method (cadena): Método HTTP a usar (por ejemplo, get, post, put, patch, delete)
      • apiVersion (cadena): Versión de API de Azure Resource Management (requerida para apiType Azure)
      • subscriptionId (cadena): ID de suscripción de Azure (para Azure Resource Management).
      • queryParams (cadena): Matriz de parámetros de consulta como $filter, $select, etc. Todos los parámetros son cadenas.
      • body (JSON): El cuerpo de la solicitud (para POST, PUT, PATCH)
    • Devuelve: Resultados de la llamada a la API de Azure o Graph.
  2. set-access-token (Nuevo en v0.2.0)

    • Establece o actualiza un token de acceso para la autenticación de Microsoft Graph cuando se usa el modo de token proporcionado por el cliente.
    • Entrada:
      • accessToken (cadena): El token de acceso obtenido de la autenticación de Microsoft Graph
      • expiresOn (cadena, opcional): Tiempo de expiración del token en formato ISO
    • Devuelve: Confirmación de la actualización del token
  3. get-auth-status (Nuevo en v0.2.0)

    • Verifica el estado de autenticación actual y el modo del servidor MCP
    • Devuelve: Modo de autenticación, estado de preparación y capacidades

Variables de entorno

La configuración del servidor se realiza mediante variables de entorno. Se admiten las siguientes variables de entorno:

NombreDescripciónRequerida
TENANT_IDEl ID del inquilino de Microsoft Entra.Sí (excepto para el modo de token proporcionado por el cliente)
CLIENT_IDEl ID de la aplicación registrada en Microsoft Entra.Sí (excepto para el modo de token proporcionado por el cliente)
CLIENT_SECRETEl secreto de cliente de la aplicación registrada en Microsoft Entra.Sí (solo para el modo de credenciales de cliente)
USE_INTERACTIVEEstablecer en "true" para habilitar el modo de autenticación interactiva.No
USE_CLIENT_TOKENEstablecer en "true" para habilitar el modo de autenticación con token proporcionado por el cliente.No
USE_CERTIFICATEEstablecer en "true" para habilitar el modo de autenticación con certificado.No
CERTIFICATE_PATHRuta al archivo de certificado codificado en PEM para la autenticación con certificado.Sí (solo para el modo de certificado)
CERTIFICATE_PASSWORDContraseña para el archivo de certificado (si está cifrado).No
REDIRECT_URIURI de redirección para la autenticación interactiva (predeterminado: http://localhost:3000).No
ACCESS_TOKENToken de acceso inicial para el modo de token proporcionado por el cliente.No
USE_GRAPH_BETAEstablecer en "false" para forzar que todas las llamadas a la API de Graph usen v1.0 en lugar de beta (predeterminado: true, permite beta).No

Contribuyentes

  • Autenticación interactiva y basada en token (v0.2.0) - @darrenjrobinson
  • Autenticación con certificado (v0.2.1) - @nitzpo

Patrocinadores

Lokka es gratuito y sin anuncios, sin inversores detrás. Si te ahorra tiempo, considera patrocinarme en GitHub. 💙

Sponsors

Instalación

Para usar este servidor con la aplicación Claude Desktop, agrega la siguiente configuración a la sección "mcpServers" de tu claude_desktop_config.json:

Autenticación interactiva

{
  "mcpServers": {
    "Lokka-Microsoft": {
      "command": "npx",
      "args": ["-y", "@merill/lokka"]
    }
  }
}

Autenticación con credenciales de cliente

{
  "mcpServers": {
    "Lokka-Microsoft": {
      "command": "npx",
      "args": ["-y", "@merill/lokka"],
      "env": {
        "TENANT_ID": "<tenant-id>",
        "CLIENT_ID": "<client-id>",
        "CLIENT_SECRET": "<client-secret>"
      }
    }
  }
}

Asegúrate de reemplazar <tenant-id>, <client-id> y <client-secret> con los valores reales de tu aplicación de Microsoft Entra. (Consulta la Guía de instalación para más detalles sobre cómo crear una aplicación de Entra y configurar el agente).