1 模型概述
1.1 能力评估
Lokka 是一个基于模型上下文协议(MCP) 的开源服务器,专门设计用于通过自然语言处理技术简化 Azure 和 Microsoft 365 环境中的资源管理。该项目由 Microsoft Entra ID 组的项目经理 Merill Fernando 开发,作为概念验证探索 AI 大语言模型与 MCP 协议结合如何为 Microsoft 365 管理带来价值。
核心能力包括:
-
自然语言查询:能够理解像“查找所有尚未排除紧急访问账户的条件访问策略”这样的自然语言指令,并自动转换为相应的 Graph API 查询。
-
多资源管理:支持对 Azure 和 Microsoft 365 租户的各种资源进行查询与管理,包括用户、组、设备策略和 Azure 服务等。
-
智能决策支持:可以帮助分析 Azure 服务成本,如上个月度中哪项 Azure 服务最昂贵。
-
接口规模:虽然搜索结果未明确列出具体接口数量,但从功能描述看,Lokka 至少包含数十个 API 端点,覆盖 Microsoft Graph 和 Azure Resource Manager 的主要功能。
1.2 技术特点
Lokka 的技术架构具有以下显著特点:
-
MCP 协议基础:基于模型上下文协议,确保与各种 MCP 客户端(如 Claude Desktop)的良好兼容性。
-
自然语言处理:采用先进的 NLP 技术,能够准确解析用户意图并转换为具体的 API 操作。
-
双平台支持:同时支持 Microsoft Graph 和 Azure Resource Manager API,实现对 Azure 和 Microsoft 365 的统一管理。
-
环境隔离配置:通过环境变量管理敏感信息,确保认证数据的安全性。
-
跨平台兼容:基于 Node.js 开发,可通过 npx 直接运行,支持 Windows、macOS 和 Linux 系统。
1.3 应用场景
Lokka 特别适用于以下应用场景:
-
IT 管理员日常运维:帮助管理员使用自然语言快速查询租户状态、用户信息和设备策略。
-
成本分析与优化:通过自然语言查询分析 Azure 服务使用情况和费用分布。
-
安全策略管理:快速检查和修改条件访问策略、安全组设置。
-
多租户统一管理:支持管理多个 Azure 和 Microsoft 365 租户,提高资源利用率。
-
管理员教育培训:帮助新管理员学习 Microsoft 365 管理,通过自然语言交互降低学习成本。
2 安装与部署方式
2.1 系统要求
在开始安装 Lokka 前,请确保满足以下基本要求:
-
Node.js 环境:需要安装 Node.js(建议使用 LTS 版本)
-
MCP 客户端:如 Claude Desktop 或其他兼容 MCP 协议的客户端
-
Azure 应用注册:需要在 Microsoft Entra ID 中注册应用并获取认证信息
-
网络连接:能够访问 Microsoft Graph 和 Azure Resource Manager API
2.2 注册 Azure 应用
在使用 Lokka 前,必须在 Azure 门户中完成应用注册:
-
登录 Azure 门户
-
进入 Microsoft Entra ID > 应用注册 > 新注册
-
输入应用名称(如 “Lokka MCP Server”)
-
选择支持的账户类型(通常选择 “仅此组织目录中的账户”)
-
无需配置重定向 URI,直接点击 注册
-
记录 应用程序(客户端) ID(后续作为 CLIENT_ID)
-
进入 证书和密码 > 客户端密码 > 新建客户端密码
-
输入描述并选择过期时间,记录机密值(后续作为 CLIENT_SECRET)
-
进入 API 权限 > 添加权限 > Microsoft Graph
-
根据管理需要添加相应 API 权限,如:
-
User.ReadWrite.All -
Group.ReadWrite.All -
Directory.ReadWrite.All -
Policy.ReadWrite.All -
DeviceManagementApps.ReadWrite.All -
DeviceManagementConfiguration.ReadWrite.All -
DeviceManagementManagedDevices.ReadWrite.All
-
2.3 安装步骤
Windows 系统
-
安装 Claude Desktop(如尚未安装):
-
下载并安装 Windows 版本
-
配置 Claude Desktop:
-
定位 Claude Desktop 配置文件,通常位于:
%APPDATA%\Claude\claude_desktop_config.json
-
如果文件不存在,请手动创建
-
在配置文件中添加 Lokka 服务器配置:
-
{ "mcpServers": { "Lokka-Microsoft": { "command": "npx", "args": ["-y", "@merill/lokka"], "env": { "TENANT_ID": "your-tenant-id", "CLIENT_ID": "your-client-id", "CLIENT_SECIENT": "your-client-secret" } } } }
macOS 系统
-
安装 Claude Desktop:
# 使用 Homebrew 安装(可选) brew install --cask claude
-
配置 Claude Desktop:
-
配置文件通常位于:
~/Library/Application Support/Claude/claude_desktop_config.json
-
添加与 Windows 系统相同的配置内容
-
-
通过终端验证配置:
# 测试 npx 命令可用性 npx -y @merill/lokka --version
Linux 系统
-
安装 Claude Desktop:
-
根据发行版下载相应安装包
-
或使用 Snap(如果支持):
sudo snap install claude-desktop
-
-
配置 Claude Desktop:
-
配置文件通常位于:
~/.config/Claude/claude_desktop_config.json
-
添加相同的配置内容
-
-
权限设置:
# 确保配置文件权限正确 chmod 600 ~/.config/Claude/claude_desktop_config.json
2.4 常见安装问题与解决方案
问题1:npx 命令执行失败
-
症状:客户端启动时提示无法找到 Lokka 服务器
-
解决方案:
# 全局安装 Lokka 确保可用性 npm install -g @merill/lokka # 然后在配置中将 "command" 改为 "lokka"
问题2:认证失败
-
症状:提示租户ID或客户端密钥无效
-
解决方案:
-
检查 TENANT_ID 格式(应为 GUID 格式)
-
确认客户端密钥未过期
-
验证应用注册中的 API 权限是否正确配置
-
问题3:权限不足
-
症状:可连接但执行操作时被拒绝
-
解决方案:
-
在 Azure 门户中检查应用注册的 API 权限
-
确保管理员同意已授予权限
-
确认使用的账户有相应管理权限
-
问题4:配置文件格式错误
-
症状:Claude Desktop 启动失败或忽略配置
-
解决方案:
-
使用 JSON 验证工具检查配置文件格式
-
确保没有尾部逗号等常见 JSON 错误
-
3 配套客户端
3.1 客户端介绍
Lokka 主要设计用于与 Claude Desktop 配合使用,这是一个免费的 MCP 客户端应用程序。除了 Claude Desktop 外,Lokka 也可以与任何兼容 MCP 协议的客户端集成,这为使用者提供了灵活的选择空间。
3.2 客户端配置
Claude Desktop 客户端配置详解:
-
下载与安装:
-
访问 Claude.ai/desktop 下载对应系统版本的安装包
-
按照指引完成安装,安装过程完全免费
-
-
配置文件定位:
-
不同系统的配置文件路径如下:
-
Windows:
%APPDATA%\Claude\claude_desktop_config.json -
macOS:
~/Library/Application Support/Claude/claude_desktop_config.json -
Linux:
~/.config/Claude/claude_desktop_config.json
-
-
-
配置参数说明:
{ "mcpServers": { "Lokka-Microsoft": { "command": "npx", // 执行命令 "args": ["-y", "@merill/lokka"], // 命令参数 "env": { // 环境变量 "TENANT_ID": "your-tenant-id", // Azure 租户 ID "CLIENT_ID": "your-client-id", // 应用客户端 ID "CLIENT_SECRET": "your-client-secret" // 客户端密钥 } } } }
-
配置验证:
-
重启 Claude Desktop 应用
-
在对话中尝试使用 Lokka 功能,如询问 Microsoft 365 租户信息
-
如配置正确,Claude 应能够理解并执行 Azure/Microsoft 365 相关指令
-
3.3 替代客户端选项
虽然 Lokka 主要针对 Claude Desktop 优化,但理论上任何支持 MCP 协议的客户端都可以使用,包括:
-
其他 MCP 兼容聊天客户端
-
自定义集成解决方案(通过 MCP 协议直接集成)
4 案例讲解
4.1 实际应用场景
场景背景:假设您是一家公司的 IT 管理员,需要检查当前 Microsoft 365 租户中所有部门的用户分布情况,并确保销售和人力资源部门有相应的动态组策略。传统方式需要编写复杂的 PowerShell 脚本或手动查看多个管理界面,而使用 Lokka 可以通过自然语言快速完成。
4.2 逐步操作流程
步骤1:启动对话
在配置好 Lokka 的 Claude Desktop 中,可以直接用自然语言提问:
“请帮我查一下销售部门和人力资源部门的用户账户情况,并告诉我这些部门各有多少用户。”
步骤2:自然语言查询处理
Lokka 在后台会将这个自然语言查询转换为相应的 Microsoft Graph API 请求,类似于:
// Lokka 自动生成的查询逻辑(用户不可见) const userQuery = { endpoint: '/v1.0/users', queryParams: ['$filter=department eq \'Sales\' or department eq \'HR\'', '$select=displayName,department,userPrincipalName'], method: 'GET' }; // 执行查询并统计结果 const salesUsers = users.filter(user => user.department === 'Sales'); const hrUsers = users.filter(user => user.department === 'HR');
步骤3:创建安全组策略
如果发现某些部门缺少相应的安全策略,可以继续通过自然语言指令:
“为销售和人力资源部门创建一个名为 ‘Sales and HR’ 的安全组,并基于部门属性设置动态成员资格规则。”
Lokka 会相应地调用 Microsoft Graph API 创建组:
// 自动生成的创建组请求 const createGroupData = { endpoint: '/v1.0/groups', method: 'POST', body: { "displayName": "Sales and HR", "mailEnabled": false, "mailNickname": "saleshr", "securityEnabled": true, "membershipRule": "(user.department -eq \"Sales\") or (user.department -eq \"HR\")", "membershipRuleProcessingState": "On" } };
步骤4:验证和确认
最后可以要求 Lokka 验证操作结果:
“请确认新的安全组已创建成功,并展示分配给这个组的所有策略。”
4.3 完整查询示例
通过 Lokka 可以执行的典型查询示例包括:
-
用户账户查询:
-
“有多少用户账户属于市场或销售部门?”
-
“显示所有上个月创建的用户账户”
-
-
策略检查:
-
“查找所有尚未排除紧急访问账户的条件访问策略”
-
“展示所有需要多重认证的策略”
-
-
设备管理:
-
“展示分配给 ‘Call center’ 组的所有 Intune 设备配置策略”
-
“查找所有不符合合规策略的设备”
-
-
成本分析:
-
“上个月度中,哪项 Azure 服务最昂贵?”
-
“比较过去三个月各区域的 Azure 支出”
-
5 使用成本与商业价值
5.1 使用成本分析
Lokka 本身是一个开源项目,可以免费使用,但相关环境中可能涉及的成本包括:
-
开发与维护成本:零成本,项目由社区维护
-
运行时成本:主要涉及 Azure 资源消耗和 Microsoft 365 许可费用
-
基础设施成本:
-
需要 Azure 订阅(可使用现有订阅)
-
Microsoft 365 租户(通常公司已有)
-
-
潜在集成成本:
-
与现有系统的集成可能需要开发工作
-
培训员工使用新工具的时间投入
-
5.2 商业价值评估
效率提升价值:
-
查询速度提升:传统 PowerShell 查询需要编写脚本和调试时间,而通过 Lokka 的自然语言接口可将查询时间从几分钟缩短到几秒钟
-
学习曲线降低:新管理员无需精通 PowerShell 或 Graph API 即可执行复杂查询
-
错误率减少:减少因编写错误脚本导致的配置问题
管理效能改进:
-
多租户统一管理:支持同时管理多个 Azure 和 Microsoft 365 租户,显著提升资源利用率
-
实时决策支持:快速获取租户状态信息,支持及时的管理决策
-
自动化能力:将常规管理任务自动化,释放 IT 人员用于更高价值的工作
成本控制优势:
-
资源优化:通过快速识别未使用或过度配置的资源,优化云支出
-
许可证管理:更好地跟踪和管理用户许可证分配
-
预防性维护:及早发现潜在安全问题或配置错误,避免更大损失
5.3 投资回报分析
基于典型使用场景的投资回报考虑:
-
时间节约计算:
-
传统方式:编写和调试 PowerShell 脚本(平均 15-30 分钟)
-
Lokka 方式:自然语言查询(平均 1-2 分钟)
-
每次查询节约约 20 分钟
-
-
错误成本避免:
-
减少错误配置导致的服务中断
-
避免安全策略配置错误带来的风险
-
降低合规违规的潜在罚款
-
-
培训成本降低:
-
新管理员无需深入学习了 PowerShell 和 Graph API 细节
-
通过自然语言交互降低入门门槛
-
5.4 适用组织规模
-
中小企业:特别适合资源有限的团队,可以快速实现有效的云资源管理而无需专门招聘高级技能人才
-
大型企业:适合作为现有管理工具的补充,特别是对于需要频繁执行跨租户查询的场景
-
IT 服务提供商:管理多个客户租户的 MSP 可以通过 Lokka 统一管理界面提高效率
总结
Lokka 作为一个基于 MCP 协议的开源项目,通过自然语言处理技术显著降低了 Microsoft 365 和 Azure 的管理复杂度。它将技术门槛较高的 Graph API 和 PowerShell 操作转化为直观的自然语言对话,让 IT 管理员能够更专注于业务需求而非技术实现细节。
虽然项目处于概念验证阶段,但已展现出强大的实用价值和商业潜力。对于寻求提高云管理效率、降低运营成本的组织来说,Lokka 提供了一个值得尝试的创新解决方案。随着 AI 和自然语言处理技术的不断发展,这类工具很可能成为未来 IT 管理的主流方向。

关注 “悠AI” 更多干货技巧行业动态
