mcpField
L
Lokka (Microsoft 365 MCP server)

Lokka (Microsoft 365 MCP server)

本地服务
github.com/merill云与基础设施3105 周前更新

关于 Lokka (Microsoft 365 MCP server)

Lokka 是面向 Microsoft Graph 与 Azure Resource Manager API 的 MCP 服务,可让用户以自然语言查询和管理 Azure 与 Microsoft 365 租户。适合需要用 AI 处理租户管理任务的 IT 管理员。支持交互式、应用专用和客户端令牌等多种认证方式。

主要功能

  1. 01调用 Microsoft Graph 与 Azure 管理 API
  2. 02支持交互式、证书与客户端密钥认证
  3. 03客户端提供令牌模式并可检查认证状态
  4. 04可通过 USE_GRAPH_BETA 固定使用 v1.0
  5. 05提供令牌设置与权限申请工具

适用场景

  1. 01查询 Entra 中的条件访问策略
  2. 02查看 Intune 设备配置策略的分配情况
  3. 03分析 Azure 上月的服务费用

MCP 相关

该项目是 MCP 服务,向 MCP 客户端暴露 Lokka-Microsoft、set-access-token、get-auth-status 和 add-graph-permission 等工具,用于访问 Graph 与 Azure API。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Lokka

npm version downloads downloads per month GitHub stars license

Lokka 是适用于 Microsoft Graph 和 Azure RM API 的模型上下文协议服务,可让你借助 AI 查询和管理 Azure 与 Microsoft 365 租户。

Lokka 演示 - 用户创建演示

请访问 Lokka.dev,了解如何将 Lokka 与你喜爱的 AI 模型和聊天客户端搭配使用。

借助 Lokka,你可以使用 Claude Desktop 或任何 MCP 客户端,通过自然语言调用 Microsoft API,在 Azure 和 Microsoft 365 租户中完成各类操作。

例如:

  • 创建名为 'Sales and HR' 的新安全组,并根据 department 属性设置动态规则。
  • 查找所有未排除紧急访问帐户的条件访问策略
  • 显示分配给 'Call center' 组的所有 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": "<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"
      }
    }
  }
}

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

  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 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 调用的结果。
  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)。否

贡献者

赞助者

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 的详细信息,请参阅安装指南。)

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。