返回市场
洛克卡

洛克卡

作者:merill201 星标更新:2025-10-20

项目介绍

Lokka

npm 版本

Lokka 是一个针对 Microsoft Graph 和 Azure RM API 的模型-上下文-协议服务器,它允许您使用 AI 查询和管理您的 Azure 和 Microsoft 365 租户。

<img src="https://github.com/merill/lokka/blob/main/assets/lokka-demo-1.gif?raw=true" alt="Lokka 演示 - 用户创建演示" width="500"/>

请参阅 Lokka.dev,了解如何使用您喜欢的 AI 模型和聊天客户端来使用 Lokka。

Lokka 让您可以使用 Claude Desktop 或任何 MCP 客户端,通过自然语言在您的 Azure 和 Microsoft 365 租户中完成任务,通过 Microsoft API 实现。

例如:

  • 创建一个名为 '销售与人力资源' 的安全组,并基于部门属性设置动态规则。
  • 查找所有未排除紧急访问账户的条件访问策略。
  • 显示分配给 '呼叫中心' 组的所有 Intune 设备配置策略。
  • 上个月 Azure 中最昂贵的服务是什么?

Lokka 如何工作?

身份验证方法

Lokka 现支持多种身份验证方法以适应不同的部署场景:

交互式认证

对于基于用户的交互登录身份验证,可以使用以下配置:

这是最简单的配置,并使用默认的 Lokka 应用程序。

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

使用自定义应用的交互式认证

如果您希望使用自定义的 Microsoft Entra 应用,可以在 Microsoft Entra 中创建一个新的应用注册,并使用以下环境变量进行配置:

{
  "mcpServers": {
    "Lokka-Microsoft": {
      "command": "npx",
      "args": ["-y", "@merill/lokka"],
      "env": {
        "TENANT_ID": "<租户ID>",
        "CLIENT_ID": "<客户端ID>",
        "USE_INTERACTIVE": "true"
      }
    }
  }
}

应用程序专用认证

传统的应用程序专用认证。您可以使用证书(推荐)或客户端密钥进行认证,配置如下:

详见 安装指南,了解如何创建 Entra 应用。

使用证书的应用程序专用认证

仅使用 PEM 编码的客户端证书进行应用程序专用认证:

{
  "mcpServers": {
    "Lokka-Microsoft": {
      "command": "npx",
      "args": ["-y", "@merill/lokka"],
      "env": {
        "TENANT_ID": "<租户ID>",
        "CLIENT_ID": "<客户端ID>",
        "CERTIFICATE_PATH": "/证书路径/certificate.pem",
        "CERTIFICATE_PASSWORD": "<可选证书密码>",
        "USE_CERTIFICATE": "true"
      }
    }
  }
}

为了方便,将 PFX 客户端证书转换为 PEM 编码证书:

openssl pkcs12 -in /证书路径/cert.pfx -out /证书路径/cert.pem -nodes -clcerts

使用客户端密钥的应用程序专用认证

{
  "mcpServers": {
    "Lokka-Microsoft": {
      "command": "npx",
      "args": ["-y", "@merill/lokka"],
      "env": {
        "TENANT_ID": "<租户ID>",
        "CLIENT_ID": "<客户端ID>",
        "CLIENT_SECRET": "<客户端密钥>"
      }
    }
  }
}

客户端提供的令牌

基于令牌的身份验证,其中 MCP 客户端提供访问令牌:

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

当使用客户端提供的令牌模式时:

  1. 使用 USE_CLIENT_TOKEN=true 启动 MCP 服务器。
  2. 使用 set-access-token 工具提供有效的 Microsoft Graph 访问令牌。
  3. 使用 get-auth-status 工具验证身份验证状态。
  4. 根据需要使用 set-access-token 刷新令牌。

新工具

令牌管理工具

  • set-access-token:设置或更新 Microsoft Graph 认证的访问令牌。
  • get-auth-status:检查当前的身份验证状态和功能。
  • add-graph-permission:交互式请求额外的 Microsoft Graph 权限范围。

Graph API 版本控制

Lokka 现支持控制用于所有请求的默认 Microsoft Graph API 版本:

  • 默认行为:使用 beta 版本以访问最新功能。
  • 生产模式:设置 USE_GRAPH_BETA=false 强制所有请求使用 v1.0 版本。
  • 按请求覆盖:您仍然可以在单个请求中指定 graphApiVersion 参数(除非 USE_GRAPH_BETA=false)。

USE_GRAPH_BETA=false 时,所有 Graph API 调用将使用稳定的 v1.0 版本,即使在 graphApiVersion 参数中明确请求了 beta

快速开始

查看文档以获取更多关于如何安装和配置 Lokka 的信息。

VS Code 一键安装

平台VS CodeVS Code Insiders
Windows在 VS Code 中安装在 VS Code Insiders 中安装
macOS/Linux在 VS Code 中安装在 VS Code Insiders 中安装

组件

工具

  1. Lokka-Microsoft

    • 调用 Microsoft Graph 和 Azure API。支持查询 Azure 和 Microsoft 365 租户。如果提供了权限,也支持更新。
    • 输入:
      • apiType (字符串):要查询的 Microsoft API 类型。选项:'graph' 对应 Microsoft Graph (Entra),'azure' 对应 Azure 资源管理。
      • path (字符串):要调用的 Azure 或 Graph API URL 路径(如 '/users', '/groups', '/subscriptions')。
      • method (字符串):要使用的 HTTP 方法(如 get, post, put, patch, delete)。
      • apiVersion (字符串):Azure 资源管理 API 版本(对于 apiType Azure 是必需的)。
      • subscriptionId (字符串):Azure 订阅 ID(对于 Azure 资源管理)。
      • queryParams (字符串):类似 $filter, $select 等查询参数数组。所有参数都是字符串。
      • body (JSON):请求正文(适用于 POST, PUT, PATCH)。
    • 返回:来自 Azure 或 Graph API 调用的结果。
  2. set-access-token (v0.2.0 新增)

    • 当使用客户端提供的令牌模式时,设置或更新 Microsoft Graph 认证的访问令牌。
    • 输入:
      • accessToken (字符串):从 Microsoft Graph 认证获得的访问令牌。
      • expiresOn (字符串,可选):令牌过期时间,ISO 格式。
    • 返回:确认令牌更新。
  3. get-auth-status (v0.2.0 新增)

    • 检查 MCP 服务器当前的身份验证状态和模式。
    • 返回:身份验证模式、就绪状态和功能。

环境变量

服务器的配置是通过环境变量完成的。支持以下环境变量:

名称描述是否必需
TENANT_IDMicrosoft Entra 租户的 ID。是(除了客户端提供的令牌模式)
CLIENT_ID在 Microsoft Entra 中注册的应用程序的 ID。是(除了客户端提供的令牌模式)
CLIENT_SECRET在 Microsoft Entra 中注册的应用程序的客户端密钥。是(仅限客户端凭据模式)
USE_INTERACTIVE设置为 "true" 以启用交互式认证模式。
USE_CLIENT_TOKEN设置为 "true" 以启用客户端提供的令牌认证模式。
USE_CERTIFICATE设置为 "true" 以启用证书认证模式。
CERTIFICATE_PATH用于证书认证的 PEM 编码证书文件路径。是(仅限证书模式)
CERTIFICATE_PASSWORD证书文件的密码(如果加密)。
REDIRECT_URI交互式认证的重定向 URI(默认:http://localhost:3000)。
ACCESS_TOKEN客户端提供的令牌模式的初始访问令牌。
USE_GRAPH_BETA设置为 "false" 以强制所有 Graph API 调用使用 v1.0 而不是 beta(默认:true,允许 beta)。

贡献者

安装

要使用此服务器与 Claude Desktop 应用程序一起使用,请将以下配置添加到您的 claude_desktop_config.json 文件中的 "mcpServers" 部分:

交互式认证

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

客户端凭据认证

{
  "mcpServers": {
    "Lokka-Microsoft": {
      "command": "npx",
      "args": ["-y", "@merill/lokka"],
      "env": {
        "TENANT_ID": "<租户ID>",
        "CLIENT_ID": "<客户端ID>",
        "CLIENT_SECRET": "<客户端密钥>"
      }
    }
  }
}

确保替换 <租户ID><客户端ID><客户端密钥> 为您 Microsoft Entra 应用的实际值。(详见 安装指南,了解如何创建 Entra 应用并配置代理。)