模板
此存储库用作 默认模板存储库 根据官方的\[GitHub贡献指南\]\[项目设置\],健康贡献。它为您带来了几个领域的干净默认模板:
- ()
- 代码所有者 () _克隆后调整用户名_
- Wiki和文档 (
docs/) - gitignore的 (
.gitignore) - gitattributes (
.gitattributes) - 更新日志 (
CHANGELOG.md) - 行为准则 (
CODE_OF_CONDUCT.md) - 贡献 (
CONTRIBUTING.md) - 许可证 (
LICENSE) _克隆后调整项目名称_ - 自述文件 (
README.md) - 安全 (
SECURITY.md)
状态


从模板创建存储库
你可以 生成 与现有存储库具有相同目录结构和文件的新存储库。更多详细信息可以在\[此处\]\[CreateFromTemplate\]找到。
报告问题和反馈
问题和Bug
如果您发现任何错误,请在\[GitHub Issues\]\[GitHubIssues\]页面中提交问题。请在提供的模板中填写相应的信息。
如果你花时间提到一个问题,即使是一个看似微不足道的问题,我们将不胜感激,这对这个项目来说是一个完全有效的贡献。 非常感谢。
反馈
如果您想在此处看到某个功能,请在\[GitHub Issues\]\[GitHubIssues\]页面中提交问题或功能请求,以提供直接反馈。
贡献
如果您想成为此存储库或项目的积极贡献者,请按照中提供的说明进行操作\[CONTRIBUTING.md\]\[贡献\]。
Jamf Pro MCP服务器
Jamf Pro MCP服务器是 模型上下文协议(MCP) 服务器,提供与Jamf Pro API的无缝集成,实现高级 AI工具和应用程序的自动化和交互能力。
用例
- 自动化Jamf Pro工作流程
- 从Jamf Pro中提取和分析数据
- 构建与Jamf Pro生态系统交互的人工智能工具
- 通过AI助手管理苹果设备
______________________________________________________________________
本地Jamf Pro MCP服务器
](https://insiders.vscode.dev/redirect/mcp/install?name=jamfpro&inputs=%5B%7B%22id%22%3A%22jamf_client_id%22%2C%22type%22%3A%22promptString%22%2C%22description%22%3A%22Jamf%20Pro%20Client%20ID%22%2C%22password%22%3Atrue%7D%2C%7B%22id%22%3A%22jamf_client_secret%22%2C%22type%22%3A%22promptString%22%2C%22description%22%3A%22Jamf%20Pro%20Client%20Secret%22%2C%22password%22%3Atrue%7D%5D&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22--rm%22%2C%22-e%22%2C%22JAMF_INSTANCE_URL%3Dhttps%3A%2F%2Fyour-instance.jamfcloud.com%22%2C%22-e%22%2C%22JAMF_CLIENT_ID%3D%24%7Binput%3Ajamf_client_id%7D%22%2C%22-e%22%2C%22JAMF_CLIENT_SECRET%3D%24%7Binput%3Ajamf_client_secret%7D%22%2C%22ghcr.io%2Fdeploymenttheory%2Fjamfpro-mcp-server%3Alatest%22%5D%2C%22env%22%3A%7B%22JAMF_CLIENT_ID%22%3A%22%24%7Binput%3Ajamf_client_id%7D%22%2C%22JAMF_CLIENT_SECRET%22%3A%22%24%7Binput%3Ajamf_client_secret%7D%22%7D%7D)
先决条件
- 要在容器中运行服务器,您需要 码头工人 安装。
- 安装Docker后,您还需要确保Docker正在运行。
- 您需要一个具有API证书的Jamf Pro实例:
- 对于OAuth身份验证:客户端ID和客户端密钥 - 对于基本身份验证:用户名和密码
API集成
API功能
- RESTful接口:使用标准HTTP方法(GET、POST、PUT、DELETE、PATCH)与Jamf Pro资源交互
- JSON数据格式:大多数端点使用JSON进行数据交换
- 认证:支持OAuth2和基本身份验证方法
- 全面覆盖:访问Jamf Pro API和Classic API的435多项操作
API身份验证
MCP服务器支持两种连接Jamf Pro的身份验证方法:
OAuth2身份验证(推荐)
OAuth2是Jamf Pro API访问的推荐身份验证方法。它通过基于令牌的身份验证提供了更好的安全性,并支持自动令牌刷新。
要设置OAuth2身份验证,请执行以下操作:
- 在Jamf Pro中,导航至“设置”>“API角色和客户端”>
- 创建一个api角色,并将适当的权限委托给该角色
- 创建一个新的API客户端,并将asforeded API角色分配给客户端
- 注意与MCP服务器一起使用的客户端ID和客户端密码
基本身份验证
基本身份验证使用标准Jamf Pro用户名和密码凭据。虽然设置起来更简单,但安全性较低,不支持令牌刷新等高级功能。
安装
使用VS代码
为了快速安装,请使用一键安装按钮之一。完成该流程后,切换代理模式(位于副驾驶聊天文本输入处),服务器将启动。
在其他MCP主机中的使用
将以下JSON块添加到IDE MCP设置中:
{
"mcpServers": {
"jamfpro": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e", "JAMF_INSTANCE_URL=https://your-instance.jamfcloud.com",
"-e", "JAMF_CLIENT_ID=${input:jamf_client_id}",
"-e", "JAMF_CLIENT_SECRET=${input:jamf_client_secret}",
"ghcr.io/deploymenttheory/jamfpro-mcp-server:latest"
],
"env": {
"JAMF_CLIENT_ID": "${input:jamf_client_id}",
"JAMF_CLIENT_SECRET": "${input:jamf_client_secret}"
}
}
},
"inputs": [
{
"type": "promptString",
"id": "jamf_client_id",
"description": "Jamf Pro Client ID",
"password": true
},
{
"type": "promptString",
"id": "jamf_client_secret",
"description": "Jamf Pro Client Secret",
"password": true
}
]
}您可以选择将类似的配置添加到名为的文件中 .vscode/mcp.json 在您的工作区中与他人共享配置。
从源代码构建
如果你不想使用Docker,你可以直接构建二进制文件:
go build -o jamfpro-mcp-server cmd/jamfpro-mcp-server/main.go然后运行它:
./jamfpro-mcp-server --jamf-instance-url=https://your-instance.jamfcloud.com --jamf-client-id=your-client-id --jamf-client-secret=your-client-secret工具配置
Jamf Pro MCP服务器支持通过以下方式启用或禁用特定功能组 --toolsets 旗帜。这允许您控制哪些Jamf Pro API功能可用于您的人工智能工具。
可用工具集
以下工具集可用(默认情况下都处于打开状态):
| 工具集 | 说明 |
|---|---|
computers | 计算机管理和库存操作 |
mobile-devices | 移动设备管理操作 |
policies | 策略管理操作 |
users | 用户管理操作 |
groups | 集团管理运营 |
configuration-profiles | 配置文件操作 |
scripts | 脚本管理操作 |
buildings | 建筑管理运营 |
departments | 部门管理操作 |
categories | 类别管理操作 |
sites | 现场管理操作 |
inventory | 库存收集操作 |
all | 启用所有可用的工具集 |
指定工具集
要指定您希望可用的工具集,您可以通过两种方式传递允许列表:
- 使用命令行参数:
jamfpro-mcp-server --toolsets computers,mobile-devices,policies- 使用环境变量:
JAMF_TOOLSETS="computers,mobile-devices,policies" ./jamfpro-mcp-server在Docker中使用工具集
使用Docker时,可以将工具集作为环境变量传递:
docker run -i --rm \
-e JAMF_INSTANCE_URL=https://your-instance.jamfcloud.com \
-e JAMF_CLIENT_ID=your-client-id \
-e JAMF_CLIENT_SECRET=your-client-secret \
-e JAMF_TOOLSETS="computers,mobile-devices,policies" \
ghcr.io/deploymenttheory/jamfpro-mcp-server:latest动态工具发现
MCP服务器支持动态工具集发现。这允许MCP主机根据用户提示列出并启用工具集,这有助于避免一次用太多的工具淹没模型。
使用动态工具发现
使用二进制时,您可以传递 --dynamic-toolsets 标志:
./jamfpro-mcp-server --dynamic-toolsets使用Docker时,您可以将标志作为环境变量传递:
docker run -i --rm \
-e JAMF_INSTANCE_URL=https://your-instance.jamfcloud.com \
-e JAMF_CLIENT_ID=your-client-id \
-e JAMF_CLIENT_SECRET=your-client-secret \
-e JAMF_DYNAMIC_TOOLSETS=1 \
ghcr.io/deploymenttheory/jamfpro-mcp-server:latest身份验证方法
Jamf Pro MCP服务器支持两种身份验证方法:
OAuth2身份验证(推荐)
./jamfpro-mcp-server \
--jamf-instance-url=https://your-instance.jamfcloud.com \
--jamf-client-id=your-client-id \
--jamf-client-secret=your-client-secret基本身份验证
./jamfpro-mcp-server \
--jamf-instance-url=https://your-instance.jamfcloud.com \
--auth-method=basic \
--jamf-username=your-username \
--jamf-password=your-passwordi18n/覆盖性描述
通过创建 jamfpro-mcp-server-config.json 文件与二进制文件位于同一目录中。
该文件应包含一个JSON对象,其中工具名称作为键,新 描述为值。例如:
{
"TOOL_GET_COMPUTER_DESCRIPTION": "Get detailed information about a computer",
"TOOL_CREATE_POLICY_DESCRIPTION": "Create a new policy in Jamf Pro"
}您可以通过运行二进制文件来创建当前翻译的导出 这 --export-translations 旗帜。
可用工具
计算机
- get_计算机 -获取有关计算机的详细信息
- id:计算机ID(数字,必填)
- list_计算机 -列出所有计算机
- page:页码(数字,可选) - page_size:每页结果(数量,可选)
- 更新计算机 -更新计算机信息
- id:计算机ID(数字,必填) - name:新计算机名(字符串,可选) - serial_number:序列号(字符串,可选) - udid:UDID(字符串,可选)
- 删除计算机 -删除计算机
- id:计算机ID(数字,必填)
移动设备
- get_mobile_device -获取移动设备的详细信息
- id:移动设备ID(数字,必填)
- 列表_移动设备 -列出所有移动设备
- page:页码(数字,可选) - page_size:每页结果(数量,可选)
- update_mobile_device -更新移动设备信息
- id:移动设备ID(数字,必填) - name:新设备名称(字符串,可选) - asset_tag:资产标签(字符串,可选)
- 删除移动设备 -删除移动设备
- id:移动设备ID(数字,必填)
政策
- get_policy -获取有关策略的详细信息
- id:策略ID(编号,必填)
- list_policies -列出所有政策
- page:页码(数字,可选) - page_size:每页结果(数量,可选)
- create_policy -创建新策略
- name:策略名称(字符串,必填) - enabled:策略是否启用(布尔值,可选) - trigger:触发器类型(字符串,可选) - frequency:执行策略的频率(字符串,可选)
- update_policy -更新策略
- id:策略ID(编号,必填) - name:新策略名称(字符串,可选) - enabled:策略是否启用(布尔值,可选)
- delete_policy -删除策略
- id:策略ID(编号,必填)
脚本
- get_script -获取有关脚本的详细信息
- id:脚本ID(数字,必填)
- list_scripts -列出所有脚本
- page:页码(数字,可选) - page_size:每页结果(数量,可选)
- create_script -创建新脚本
- name:脚本名称(字符串,必填) - contents:脚本内容(字符串,必填) - notes:脚本注释(字符串,可选) - priority:脚本优先级(字符串,可选)
- update_script -更新脚本
- id:脚本ID(数字,必填) - name:新脚本名称(字符串,可选) - contents:新脚本内容(字符串,可选)
- delete_script -删除脚本
- id:脚本ID(数字,必填)
资源
计算机资源清册
- 获取计算机资源清册
检索所有计算机的库存信息。
- 模板: jamfpro://computers/inventory
- 按ID获取计算机资源清册
按ID检索特定计算机的库存信息。
- 模板: jamfpro://computers/inventory/{id} - 参数: - id:计算机ID(数字,必填)
- 按名称获取计算机资源清册
按名称检索特定计算机的库存信息。
- 模板: jamfpro://computers/inventory/name/{name} - 参数: - name:计算机名(字符串,必填)
- 获取FileVault资源清册
检索所有计算机的FileVault资源清册信息。
- 模板: jamfpro://computers/inventory/filevault
- 按ID获取FileVault资源清册
按ID检索特定计算机的FileVault资源清册信息。
- 模板: jamfpro://computers/inventory/filevault/{id} - 参数: - id:计算机ID(数字,必填)
参考文献
许可证
该项目根据麻省理工学院开源许可证条款获得许可。请参考 许可证 完整的条款。
