关于 Lokka (Microsoft 365 MCP server)
Lokka 是面向 Microsoft Graph 与 Azure Resource Manager API 的 MCP 服务,可让用户以自然语言查询和管理 Azure 与 Microsoft 365 租户。适合需要用 AI 处理租户管理任务的 IT 管理员。支持交互式、应用专用和客户端令牌等多种认证方式。
主要功能
- 01调用 Microsoft Graph 与 Azure 管理 API
- 02支持交互式、证书与客户端密钥认证
- 03客户端提供令牌模式并可检查认证状态
- 04可通过 USE_GRAPH_BETA 固定使用 v1.0
- 05提供令牌设置与权限申请工具
适用场景
- 01查询 Entra 中的条件访问策略
- 02查看 Intune 设备配置策略的分配情况
- 03分析 Azure 上月的服务费用
MCP 相关
该项目是 MCP 服务,向 MCP 客户端暴露 Lokka-Microsoft、set-access-token、get-auth-status 和 add-graph-permission 等工具,用于访问 Graph 与 Azure API。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Lokka
Lokka 是适用于 Microsoft Graph 和 Azure RM API 的模型上下文协议服务,可让你借助 AI 查询和管理 Azure 与 Microsoft 365 租户。
请访问 Lokka.dev,了解如何将 Lokka 与你喜爱的 AI 模型和聊天客户端搭配使用。
借助 Lokka,你可以使用 Claude Desktop 或任何 MCP 客户端,通过自然语言调用 Microsoft API,在 Azure 和 Microsoft 365 租户中完成各类操作。
例如:
创建名为 'Sales and HR' 的新安全组,并根据 department 属性设置动态规则。查找所有未排除紧急访问帐户的条件访问策略显示分配给 'Call center' 组的所有 Intune 设备配置策略上个月 Azure 中最昂贵的服务是什么?

身份验证方法
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": "<tenant-id>",
"CLIENT_ID": "<client-id>",
"USE_INTERACTIVE": "true"
}
}
}
}
仅应用身份验证
传统的仅应用身份验证。可以使用证书(推荐)或客户端密钥进行身份验证,配置如下。
有关如何创建 Entra 应用的详细信息,请参阅安装指南。
使用证书进行仅应用身份验证
使用 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"
}
}
}
}
为方便起见,若要将 PFX 客户端证书转换为 PEM 编码的证书:
openssl pkcs12 -in /path/to/cert.pfx -out /path/to/cert.pem -nodes -clcerts
使用客户端密钥进行仅应用身份验证
{
"mcpServers": {
"Lokka-Microsoft": {
"command": "npx",
"args": ["-y", "@merill/lokka"],
"env": {
"TENANT_ID": "<tenant-id>",
"CLIENT_ID": "<client-id>",
"CLIENT_SECRET": "<client-secret>"
}
}
}
}
客户端提供令牌
基于令牌的身份验证,由 MCP 客户端提供访问令牌:
{
"mcpServers": {
"Lokka-Microsoft": {
"command": "npx",
"args": ["-y", "@merill/lokka"],
"env": {
"USE_CLIENT_TOKEN": "true"
}
}
}
}
使用客户端提供令牌模式时:
- 使用
USE_CLIENT_TOKEN=true启动 MCP 服务 - 使用
set-access-token工具提供有效的 Microsoft Graph 访问令牌 - 使用
get-auth-status工具验证身份验证状态 - 根据需要使用
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 Code | VS Code Insiders |
|---|---|---|
| Windows | ||
| macOS/Linux |
组件
工具
-
Lokka-Microsoft- 调用 Microsoft Graph 和 Azure API。支持查询 Azure 和 Microsoft 365 租户。提供相应权限后,也支持更新。
- 输入:
apiType(字符串):要查询的 Microsoft API 类型。选项:'graph' 表示 Microsoft Graph (Entra),'azure' 表示 Azure Resource Management。path(字符串):要调用的 Azure 或 Graph API URL 路径(例如,'/users'、'/groups'、'/subscriptions')。method(字符串):要使用的 HTTP 方法(例如,get、post、put、patch、delete)apiVersion(字符串):Azure Resource Management API 版本(apiType 为 Azure 时必填)subscriptionId(字符串):Azure 订阅 ID(用于 Azure Resource Management)。queryParams(字符串):查询参数数组,例如 $filter、$select 等。所有参数均为字符串。body(JSON):请求正文(用于 POST、PUT、PATCH)
- 返回:Azure 或 Graph API 调用的结果。
-
set-access-token(v0.2.0 新增)- 使用客户端提供的令牌模式时,设置或更新 Microsoft Graph 身份验证的访问令牌。
- 输入:
accessToken(字符串):通过 Microsoft Graph 身份验证获取的访问令牌expiresOn(字符串,可选):采用 ISO 格式的令牌过期时间
- 返回:令牌更新确认
-
get-auth-status(v0.2.0 新增)- 检查 MCP 服务当前的身份验证状态和模式
- 返回:身份验证模式、就绪状态和功能
环境变量
服务器通过环境变量进行配置。支持以下环境变量:
| 名称 | 描述 | 必填 |
|---|---|---|
TENANT_ID | Microsoft 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)。 | 否 |
贡献者
- 交互式和基于令牌的身份验证(v0.2.0)- @darrenjrobinson
- 证书身份验证(v0.2.1)- @nitzpo
赞助者
Lokka 免费且无广告,也没有投资者支持。如果它为你节省了时间,请考虑 在 GitHub 上赞助我。💙
安装
要将此服务与 Claude 桌面应用配合使用,请将以下配置添加到 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": "<tenant-id>",
"CLIENT_ID": "<client-id>",
"CLIENT_SECRET": "<client-secret>"
}
}
}
}
请务必将 <tenant-id>、<client-id> 和 <client-secret> 替换为 Microsoft Entra 应用中的实际值。(有关如何创建 Entra 应用并配置 Agent 的详细信息,请参阅安装指南。)
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。