Lokka

Um servidor para as APIs Microsoft Graph e Azure RM gerenciar locatários do Azure e Microsoft 365 com IA.

Documentação

Lokka

npm version downloads downloads per month GitHub stars license

Lokka é um servidor de protocolo de contexto de modelo (MCP) para as APIs do Microsoft Graph e Azure RM que permite consultar e gerenciar seus locatários do Azure e Microsoft 365 com IA.

Lokka Demo - user create demo

Consulte Lokka.dev para saber como usar o Lokka com seu modelo de IA e cliente de chat favoritos.

O Lokka permite que você use o Claude Desktop, ou qualquer Cliente MCP, para usar linguagem natural para realizar tarefas no seu locatário do Azure e Microsoft 365 por meio das APIs da Microsoft.

Por exemplo:

  • 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 Autenticação

O Lokka agora suporta múltiplos métodos de autenticação para atender a diferentes cenários de implantação:

Autenticação Interativa

Para autenticação baseada em usuário com login interativo, você pode usar a seguinte configuração:

Esta é a configuração mais simples e usa o aplicativo Lokka padrão.

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

Autenticação interativa com aplicativo personalizado

Se você deseja usar um aplicativo Microsoft Entra personalizado, você pode criar um novo registro de aplicativo no Microsoft Entra e configurá-lo com as seguintes variáveis de ambiente:

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

Autenticação Somente Aplicativo

Autenticação tradicional somente aplicativo. Você pode usar autenticação por certificado (recomendado) ou segredo de cliente com a seguinte configuração.

Consulte o Guia de Instalação para mais detalhes sobre como criar um aplicativo Entra.

Autenticação Somente Aplicativo com Certificado

Autenticação somente aplicativo usando um certificado de cliente codificado em 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 sua conveniência, para converter um certificado de cliente PFX em um certificado codificado em PEM:

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

Autenticação Somente Aplicativo com Segredo 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 Fornecido pelo Cliente

Autenticação baseada em token onde o Cliente MCP fornece tokens de acesso:

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

Ao usar o modo de token fornecido pelo cliente:

  1. Inicie o servidor MCP com USE_CLIENT_TOKEN=true
  2. Use a ferramenta set-access-token para fornecer um token de acesso válido do Microsoft Graph
  3. Use a ferramenta get-auth-status para verificar o status de autenticação
  4. Atualize os tokens conforme necessário usando set-access-token

Novas Ferramentas

Ferramentas de Gerenciamento de Token

  • set-access-token: Define ou atualiza tokens de acesso para autenticação do Microsoft Graph
  • get-auth-status: Verifica o status atual de autenticação e as capacidades
  • add-graph-permission: Solicita escopos de permissão adicionais do Microsoft Graph interativamente

Controle de Versão da API Graph

O Lokka agora suporta o controle da versão padrão da API do Microsoft Graph usada para todas as solicitações:

  • Comportamento padrão: Usa a versão beta para acesso aos recursos mais recentes
  • Modo de produção: Defina USE_GRAPH_BETA=false para forçar todas as solicitações a usar a versão v1.0
  • Substituição por solicitação: Você ainda pode especificar o parâmetro graphApiVersion em solicitações individuais (a menos que USE_GRAPH_BETA=false)

Quando USE_GRAPH_BETA=false, todas as chamadas da API Graph usarão a versão estável v1.0, mesmo que beta seja explicitamente solicitado no parâmetro graphApiVersion.

Primeiros Passos

Consulte a documentação para mais informações sobre como instalar e configurar o Lokka.

Instalação com um clique 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

Ferramentas

  1. Lokka-Microsoft

    • Chama as APIs do Microsoft Graph e Azure. Suporta consultas a locatários do Azure e Microsoft 365. Atualizações também são suportadas se as permissões forem fornecidas.
    • Entrada:
      • apiType (string): Tipo de API da Microsoft a ser consultada. Opções: 'graph' para Microsoft Graph (Entra) ou 'azure' para Gerenciamento de Recursos do Azure.
      • path (string): O caminho da URL da API do Azure ou Graph a ser chamado (ex.: '/users', '/groups', '/subscriptions').
      • method (string): Método HTTP a ser usado (ex.: get, post, put, patch, delete)
      • apiVersion (string): Versão da API de Gerenciamento de Recursos do Azure (obrigatório para apiType Azure)
      • subscriptionId (string): ID da Assinatura do Azure (para Gerenciamento de Recursos do Azure).
      • queryParams (string): Matriz de parâmetros de consulta como $filter, $select, etc. Todos os parâmetros são strings.
      • body (JSON): O corpo da solicitação (para POST, PUT, PATCH)
    • Retorna: Resultados da chamada à API do Azure ou Graph.
  2. set-access-token (Novo na v0.2.0)

    • Define ou atualiza um token de acesso para autenticação do Microsoft Graph ao usar o modo de token fornecido pelo cliente.
    • Entrada:
      • accessToken (string): O token de acesso obtido da autenticação do Microsoft Graph
      • expiresOn (string, opcional): Tempo de expiração do token em formato ISO
    • Retorna: Confirmação da atualização do token
  3. get-auth-status (Novo na v0.2.0)

    • Verifica o status atual de autenticação e o modo do Servidor MCP
    • Retorna: Modo de autenticação, status de prontidão e capacidades

Variáveis de Ambiente

A configuração do servidor é feita usando variáveis de ambiente. As seguintes variáveis de ambiente são suportadas:

NomeDescriçãoObrigatória
TENANT_IDO ID do locatário do Microsoft Entra.Sim (exceto para o modo de token fornecido pelo cliente)
CLIENT_IDO ID do aplicativo registrado no Microsoft Entra.Sim (exceto para o modo de token fornecido pelo cliente)
CLIENT_SECRETO segredo do cliente do aplicativo registrado no Microsoft Entra.Sim (somente para o modo de credenciais do cliente)
USE_INTERACTIVEDefina como "true" para habilitar o modo de autenticação interativa.Não
USE_CLIENT_TOKENDefina como "true" para habilitar o modo de autenticação por token fornecido pelo cliente.Não
USE_CERTIFICATEDefina como "true" para habilitar o modo de autenticação por certificado.Não
CERTIFICATE_PATHCaminho para o arquivo de certificado codificado em PEM para autenticação por certificado.Sim (somente para o modo de certificado)
CERTIFICATE_PASSWORDSenha para o arquivo de certificado (se criptografado).Não
REDIRECT_URIURI de redirecionamento para autenticação interativa (padrão: http://localhost:3000).Não
ACCESS_TOKENToken de acesso inicial para o modo de token fornecido pelo cliente.Não
USE_GRAPH_BETADefina como "false" para forçar todas as chamadas da API Graph a usar v1.0 em vez de beta (padrão: true, permite beta).Não

Colaboradores

  • Autenticação Interativa e Baseada em Token (v0.2.0) - @darrenjrobinson
  • Autenticação por Certificado (v0.2.1) - @nitzpo

Patrocinadores

O Lokka é gratuito e sem anúncios, sem investidores por trás. Se ele economizar seu tempo, considere patrocinar-me no GitHub. 💙

Sponsors

Instalação

Para usar este servidor com o aplicativo Claude Desktop, adicione a seguinte configuração à seção "mcpServers" do seu claude_desktop_config.json:

Autenticação Interativa

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

Autenticação por Credenciais do Cliente

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

Certifique-se de substituir <tenant-id>, <client-id> e <client-secret> pelos valores reais do seu aplicativo Microsoft Entra. (Consulte o Guia de Instalação para mais detalhes sobre como criar um aplicativo Entra e configurar o agente.)