Workspace ONE UEM MCP 服务器
一个模型上下文协议(MCP)服务器,提供对常用Workspace ONE UEM(统一终端管理)API的访问。该服务器使AI助手能够与您的Workspace ONE UEM环境进行交互,以进行设备管理、用户管理和系统操作。
概述
Workspace ONE UEM(原名AirWatch)是VMware的企业移动性管理解决方案。该MCP服务器通过标准化接口提供了最常用的API,使得设备管理任务的自动化、设备信息的查询以及用户的管理变得轻松便捷。
包含的API类别
- 设备管理(MDM)搜索设备,获取详细信息,发送命令,管理合规性
- 用户管理搜索和管理用户,查看用户设备
- 组织群组管理组织结构
- 标签对设备进行分类和整理
- 应用程序(MAM)搜索和管理应用程序
- 智能群组使用动态设备组工作
- 事件与审核日志跟踪系统事件和变更
特点/功能
✅ 25+个常用API 涵盖最常用的Workspace ONE UEM操作\ ✅ OAuth2 & 基本认证(Basic Auth) 支持安全认证\ ✅ 自动刷新令牌 用于OAuth认证\ ✅ 批量操作 用于高效管理多设备\ ✅ 全面的错误处理 带有明确的错误信息\ ✅ 文档齐全的工具 附带示例和参数说明
先决条件
- Python 3.10 或更高版本
- Workspace ONE UEM 环境(SaaS 或本地部署)
- API凭证(见设置部分)
- Claude Desktop 或兼容的 MCP 客户端
安装
- 克隆或下载此仓库
cd /path/to/your/projects
git clone
cd workspace-one-uem-mcp- 安装依赖项
pip install -r requirements.txt设置
1. 生成API凭证
选项A:OAuth认证(推荐)
OAuth 是最安全的方法,建议在生产环境中使用。
- 登录到您的 Workspace ONE UEM 控制台
- 导航至 组与设置 > 配置
- 在搜索框中搜索“OAuth”
- 点击 添加 创建一个新的OAuth客户端
- 填写详细信息:
- 名字MCP服务器(或任何描述性名称) - 描述MCP服务器的API访问 - 组织组选择适当的OG - 角色选择一个具有适当API权限的角色 - 状态已启用
- 点击 保存
- 重要复制 客户端ID 和 客户端密钥 立即(之后您将无法再获取该秘密)
选项B:基本身份验证
对于测试或更简单的设置,您可以使用基本认证:
- 在 Workspace ONE UEM 中创建一个专用的管理员用户
- 为API访问分配适当的角色权限
- 在配置中使用用户名和密码
2. 获取您的API密钥(租户代码)
- 登录到 Workspace ONE UEM 控制台
- 导航至 群组与设置 > 所有设置 > 系统 > 高级 > API > REST API
- 确保您属于Customer OG或更低等级
- 复制 API密钥 (也称为租户守则)
- 同时,请记下您的 REST API 地址 主机名(例如。,
cn1506.awmdm.com)
3. 确定您的OAuth令牌URL
根据您的所在地区,使用相应的代币URL:
- 北美洲:
https://na.uemauth.vmwservices.com/connect/token - 欧洲:
https://eur.uemauth.vmwservices.com/connect/token - 亚太地区(悉尼):
https://apac.uemauth.vmwservices.com/connect/token
查看 Workspace ONE UEM OAuth 知识库文章 详情如下。
4. 配置环境变量
- 复制示例环境文件:
cp env.example .env- 编辑
.env并填入你的值:
# Required
WS1_UEM_BASE_URL=https://your-instance.awmdm.com
WS1_UEM_API_KEY=your-api-key-here
# For OAuth (recommended)
WS1_UEM_CLIENT_ID=your-client-id
WS1_UEM_CLIENT_SECRET=your-client-secret
WS1_UEM_TOKEN_URL=https://na.uemauth.vmwservices.com/connect/token
# OR for Basic Auth
WS1_UEM_USERNAME=admin@company.com
WS1_UEM_PASSWORD=your-password5. 配置Claude桌面版
将此服务器添加到您的Claude Desktop配置文件中:
macOS(苹果电脑操作系统): ~/Library/Application Support/Claude/claude_desktop_config.json\ Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"workspace-one-uem": {
"command": "python",
"args": ["/absolute/path/to/workspace-one-uem-mcp/server.py"],
"env": {
"WS1_UEM_BASE_URL": "https://your-instance.awmdm.com",
"WS1_UEM_API_KEY": "your-api-key-here",
"WS1_UEM_CLIENT_ID": "your-client-id",
"WS1_UEM_CLIENT_SECRET": "your-client-secret",
"WS1_UEM_TOKEN_URL": "https://na.uemauth.vmwservices.com/connect/token"
}
}
}
}或者,如果你正在使用 .env 文件:
{
"mcpServers": {
"workspace-one-uem": {
"command": "python",
"args": ["/absolute/path/to/workspace-one-uem-mcp/server.py"]
}
}
}- 重启Claude桌面版 加载新配置
使用示例
配置完成后,您可以要求Claude与您的Workspace ONE UEM环境进行交互:
设备管理
"Find all Apple devices in our UEM console"
"Get details for device with serial number C02ABC123"
"Send a device query command to device with serial number C02ABC123"
"Lock all devices with serial numbers: SN001, SN002, SN003"
"Show me all devices that haven't been seen in the last 30 days"
"Get compliance status for device with UDID 12345678-ABCD..."用户管理
"Find user with email john.doe@company.com"
"Show me all devices enrolled by user ID 12345"
"List all users in organization group 789"标签与组织
"Get all available tags in organization group 123"
"Add tag ID 456 to device ID 789"
"Show me all smart groups"
"List all devices in smart group 'Corporate iPhones'"应用程序
"Search for Microsoft Teams app"
"Show me all apps installed on device ID 12345"
"Find all apps for the Apple platform"活动与审计
"Show me recent events for device ID 12345"
"Search for all device-related events from January 2024"
"Get audit logs for admin activities in the last week"可用工具
服务器提供了25多个按类别组织的工具:
设备管理
search_devices- 使用各种过滤器搜索设备get_device_details- 获取全面的设备信息send_device_command- 发送命令(锁定、擦除、查询等)bulk_device_command- 向多个设备发送命令get_device_compliance- 检查设备合规状态get_device_profiles- 查看已分配的配置文件get_device_apps- 列出已安装的应用程序get_device_events- 查看设备事件历史
用户管理
search_users- 搜索用户get_user_details- 获取用户信息get_user_devices- 查看用户已注册的设备
组织群组
search_organization_groups- 搜索OGs(OGs可能指原始基因、原始对象或其他特定领域的术语,具体含义需根据上下文确定)get_organization_group_details- 获取原始(OG)详细信息
标签
get_tags- 列出可用的标签add_device_tag- 标记一个设备remove_device_tag- 从设备中移除标签
应用程序
search_apps- 搜索应用程序
智能群组
get_smart_groups- 列出智能群组get_smart_group_devices- 获取智能组中的设备
系统
search_events- 搜索系统事件get_api_version验证API连接性
安全最佳实践
- 使用OAuthOAuth 认证比基本认证更安全
- 最小特权原则创建一个仅具有必要权限的专用API角色
- 轮换凭据定期轮换API密钥和OAuth密钥
- 安全存储永远不要承诺
.env将包含真实凭据的文件提交到版本控制系统 - 监控使用情况审查API活动的审计日志
故障排除
认证问题
错误:401 未经授权
- 验证您的API密钥、客户端ID和客户端密钥是否正确
- 确保您的OAuth客户端已在UEM控制台中启用
- 检查您的令牌URL是否与您的区域相匹配
错误:403 禁止访问
- 验证API角色是否具有适当的权限
- 检查管理员/OAuth客户端的组织组访问权限
连接问题
错误:连接被拒绝
- 验证 BASE_URL 是否正确(末尾无斜杠)
- 检查与您的UEM实例的网络连接
- 验证防火墙规则是否允许出站HTTPS连接
API版本问题
部分终端可能需要特定的API版本。服务器默认使用版本2,但一些较旧的终端可能需要版本1。请查阅Workspace ONE UEM API文档: https://your-instance.awmdm.com/api/help 针对特定版本需求。
API 文档
如需完整的API文档,请访问您的UEM实例的API帮助页面:
https://your-instance.awmdm.com/api/help这提供了:
- 完整的API参考
- 请求/响应示例
- 必需参数
- API版本信息
常见API端点
服务器实现了这些常用的端点:
| 类别 | 端点 | 目的 |
|---|---|---|
| 设备 | /api/mdm/devices/search | 搜索设备 |
| 设备 | /api/mdm/devices | 获取设备详细信息 |
| 设备 | /api/mdm/devices/commands | 发送设备命令 |
| 设备 | /api/mdm/devices/commands/bulk | 批处理设备命令 |
| 用户 | /api/system/users/search | 搜索用户 |
| 用户 | /api/system/users/{id}/devices | 获取用户设备 |
| 组 | /api/system/groups/search | 搜索组织群组 |
| 标签 | /api/system/groups/{id}/tags | 管理标签 |
| 应用程序 | /api/mam/apps/search | 搜索应用程序 |
| 智能群组 | /api/mdm/smartgroups/search | 列出智能群组 |
| 活动 | /api/system/events/search | 搜索活动 |
做出贡献
欢迎贡献!如果您发现常用API未被包含,请:
- 验证它们在Workspace ONE UEM环境中经常被使用
- 按照现有模式添加它们
- 包含带有示例的全面文档字符串
- 使用OAuth和基本认证进行测试
许可证
\[在此添加您的许可证\]
支持
- Workspace ONE UEM 文档https://docs.omnissa.com/bundle/WorkspaceONE-UEM 翻译为中文是:https://docs.omnissa.com/bundle/WorkspaceONE-UEM(注:网址本身通常不翻译,保持原样,此处仅为说明其含义,网址指向的是Workspace ONE UEM(Unified Endpoint Management,统一端点管理)的相关文档集)
- API 参考https://your-instance.awmdm.com/api/help 的中文翻译是:“https://your-instance.awmdm.com/api/帮助(或‘帮助文档’)”。不过,通常在实际应用中,我们可能会更倾向于使用“帮助页面”或“帮助中心”这样的表述,以更准确地传达该URL所指向的内容类型。但直接翻译的话,“api/help”可以理解为“帮助(接口/文档)”
- Omnissa社区https://communities.omnissa.com/(这个网址本身无需翻译,但若要说明其含义,可以是:“Omnissa社区论坛网址”)
免责声明
这是一个非官方的MCP服务器,与VMware/Omnissa无关联,也未得到其支持。使用时请自行承担风险。务必先在非生产环境中进行测试。
