Jamf Docs MCP服务器
 ](https://www.npmjs.com/package/@get-technology-inc/jamf-docs-mcp-server) 
一个MCP服务器,允许AI助手(Claude、Cursor等)直接访问Jamf官方文档。询问Jamf相关问题,并根据learn.Jamf.com的最新文档获得答案。
支持的产品:Jamf Pro、Jamf School、Jamf Connect、Jamf Protect、Jamf Now、Jamf安全互联网、Jamf Insights、RapidIdentity、Jamf Trust、Jamf例程、自助服务+、Jamf应用程序目录
快速开始
克劳德桌面
编辑 claude_desktop_config.json:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 视窗:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"jamf-docs": {
"command": "npx",
"args": ["-y", "@get-technology-inc/jamf-docs-mcp-server"]
}
}
}重新启动Claude Desktop以应用。
克劳德代码(CLI)
claude mcp add jamf-docs -- npx -y @get-technology-inc/jamf-docs-mcp-server光标
编辑 ~/.cursor/mcp.json:
{
"mcpServers": {
"jamf-docs": {
"command": "npx",
"args": ["-y", "@get-technology-inc/jamf-docs-mcp-server"]
}
}
}验证安装
MCP检验员测试:
npx @modelcontextprotocol/inspector npx -y @get-technology-inc/jamf-docs-mcp-server用法示例
配置后,只需询问您的AI助手:
- “如何在Jamf Pro中配置SSO?”
- “Jamf Protect的系统要求是什么?”
- “解释MDM注册过程”
- “Jamf Connect最新发行说明中有什么变化?”
可用工具
| 工具 | 说明 |
|---|---|
jamf_docs_list_products | 列出所有支持的产品、主题和文档类型筛选器 |
jamf_docs_search | 通过过滤和分页按关键字搜索文档 |
jamf_docs_get_article | 检索特定文档文章的完整内容 |
jamf_docs_get_toc | 浏览产品目录 |
jamf_docs_batch_get_articles | 在一次调用中获取多篇文章(最多10个URL) |
jamf_docs_glossary_lookup | 查找Jamf术语和定义(模糊匹配) |
jamf_docs_list_products
返回所有可用的Jamf产品及其ID、可用的主题筛选器和文档类型筛选器。
| 参数 | 类型 | 默认值 | 说明 | |
|---|---|---|---|---|
language | 字符串 | en-US | 文档语言/区域设置 | |
outputMode | "full" | "compact" | "full" | 响应的详细程度 |
responseFormat | "markdown" | "json" | "markdown" | 输出格式 |
maxTokens | 数量(100-20000) | 5000 | 响应中的最大令牌数 |
jamf_docs_search
搜索所有Jamf产品文档。
| 参数 | 类型 | 默认值 | 说明 | |
|---|---|---|---|---|
query | string(2-200个字符) | 必填 | 搜索关键字 | |
product | string | -- | 按产品ID过滤(例如。, jamf-pro) | |
topic | string | -- | 按主题类别筛选(例如。, enrollment, security) | |
docType | string | -- | 按文档类型筛选: documentation, release-notes, install-guide, technical-paper, configuration-guide, training | |
version | string | -- | 按版本过滤(例如。, "11.5.0") | |
language | 字符串 | en-US | 文档语言/区域设置 | |
limit | 数字(1-50) | 10 | 每页结果 | |
page | 数字(1–100) | 1 | 分页页码 | |
maxTokens | 数量(100-20000) | 5000 | 响应中的最大令牌数 | |
outputMode | "full" | "compact" | "full" | 细节层次;使用 "compact" 用于令牌高效输出 |
responseFormat | "markdown" | "json" | "markdown" | 输出格式 |
jamf_docs_get_article
获取文档文章并将其转换为干净的markdown或JSON。
| 参数 | 类型 | 默认值 | 说明 | |
|---|---|---|---|---|
url | string | 必填 | 来自的完整URL docs.jamf.com 或 learn.jamf.com | |
section | string | -- | 仅提取一个命名部分(例如。, "Prerequisites") | |
summaryOnly | 布尔值 | false | 仅返回文章大纲——在获取完整内容之前预览的令牌高效方式 | |
includeRelated | 布尔值 | false | 包含相关文章的链接 | |
language | 字符串 | en-US | 文档语言/区域设置 | |
maxTokens | 数量(100-20000) | 5000 | 响应中的最大令牌数 | |
outputMode | "full" | "compact" | "full" | 细节层次; "compact" 显示约500个令牌预览和可用部分列表 |
responseFormat | "markdown" | "json" | "markdown" | 输出格式 |
当内容超过 maxTokens,该工具截断响应并列出所有可用部分及其令牌计数。使用 section 后续调用中的参数,用于检索特定零件。
jamf_docs_get_doc
检索产品的导航结构(目录)。
| 参数 | 类型 | 默认值 | 说明 | |
|---|---|---|---|---|
product | string | 必填 | 产品ID(请参阅下面支持的产品) | |
version | string | latest | 要获取的特定版本 | |
language | 字符串 | en-US | 文档语言/区域设置 | |
page | 数字(1–100) | 1 | 分页目录的页码 | |
maxTokens | 数量(100-20000) | 5000 | 响应中的最大令牌数 | |
outputMode | "full" | "compact" | "full" | 使用 "compact" 对于没有嵌套子项的平面列表 |
responseFormat | "markdown" | "json" | "markdown" | 输出格式 |
jamf_docs_batch_get_文章
在一次调用中获取多个文档文章。每个URL都是同时获取的,无效域会根据文章错误报告,而不会导致整个批次失败。
| 参数 | 类型 | 默认值 | 说明 | |
|---|---|---|---|---|
urls | string\[\](1-10) | 必填 | Jamf文档URL数组 | |
concurrency | 数字(1-5) | 3 | 最大并行请求数 | |
language | 字符串 | en-US | 文档语言/区域设置 | |
maxTokens | 数量(100-20000) | 5000 | 所有文章的代币总预算 | |
outputMode | "full" | "compact" | "full" | 每篇文章的详细程度 |
responseFormat | "markdown" | "json" | "markdown" | 输出格式 |
jamf_docs_glossary_lookup
在Jamf官方术语表中查找一个术语,并使用模糊匹配返回匹配的定义。术语表内容目前仅为英文;非英语 language 数值已被接受,但结果将以英文呈现。
| 参数 | 类型 | 默认值 | 说明 | |
|---|---|---|---|---|
term | string(2-100个字符) | 必填 | 要查找的术语 | |
product | string | -- | 按产品ID筛选 | |
language | 字符串 | en-US | 文档语言/地区(术语表仅为英文) | |
maxTokens | 数量(100-50000) | 5000 | 响应中的最大令牌数 | |
outputMode | "full" | "compact" | "full" | 细节级别 |
responseFormat | "markdown" | "json" | "markdown" | 输出格式 |
MCP资源
无需工具调用即可访问静态和动态参考数据:
| 资源 | URI | 描述 |
|---|---|---|
| 产品列表 | jamf://products | 所有可用的带有ID和版本信息的Jamf产品(从API动态获取) |
| 主题列表 | jamf://topics | 用于筛选文档搜索的主题类别 |
| 产品目录 | jamf://products/{productId}/toc | 特定产品的目录(模板资源) |
| 产品版本 | jamf://products/{productId}/versions | 特定产品的可用文档版本(模板资源) |
模板资源支持选项卡完成时间 productId 在兼容的客户端中。
MCP提示
预构建的提示工作流程,指导人工智能完成多步文档任务:
jamf_troubleshoot
引导人工智能完成结构化的故障排除工作流程:搜索相关文档,预览文章 summaryOnly,然后提供根本原因诊断和逐步解决方案。
| 参数 | 类型 | 描述 |
|---|---|---|
problem | string(必填) | 要排除故障的问题描述 |
product | string(可选) | 用于搜索范围的Jamf产品ID |
jamf_setup_guide
指示AI为Jamf功能生成分步设置指南,包括先决条件、配置步骤和验证。
| 参数 | 类型 | 描述 |
|---|---|---|
feature | string(必填) | 要设置的特性或功能 |
product | string(可选) | 用于搜索范围的Jamf产品ID |
jamf_compare_versions
指示AI比较两个产品版本之间的目录结构和关键文章,总结新功能、删除的功能和迁移注意事项。
| 参数 | 类型 | 描述 |
|---|---|---|
product | string(必填) | Jamf产品ID |
version_a | string(必填) | 要比较的第一个版本(例如。, "11.5.0") |
version_b | string(必填) | 要比较的第二个版本(例如。, "11.12.0") |
支持的产品
| 产品ID | 名称 | 描述 |
|---|---|---|
jamf-pro | Jamf Pro | 面向企业的苹果设备管理 |
jamf-school | Jamf School | 苹果教育设备管理 |
jamf-connect | Jamf Connect | 身份和访问管理 |
jamf-protect | Jamf Protect | 苹果端点安全 |
jamf-now | Jamf Now | 面向小型企业的简单苹果设备管理 |
jamf-safe-internet | Jamf Safe Internet | 教育和商业的内容过滤和网络安全 |
jamf-insights | Jamf Insights | 苹果车队的分析和报告平台 |
jamf-rapididentity | RapidIdentity | 身份和访问管理平台 |
jamf-trust | Jamf Trust | 苹果设备的零信任网络访问 |
jamf-routines | Jamf例程 | 用于设备管理的自动化工作流编排 |
self-service-plus | 自助服务+ | macOS下一代自助服务门户 |
jamf-app-catalog | Jamf应用程序目录 | 为托管部署精心策划的应用程序目录 |
主要特点
- 紧凑模式:使用
outputMode: "compact"用于令牌高效响应;文章显示了一个约500个令牌的预览,其中包含可用的部分列表 - 仅摘要:使用
summaryOnly: true上jamf_docs_get_article在获取完整内容之前预览文章大纲 - 剖面提取:使用
section: "Prerequisites"仅检索文章中您需要的部分 - 批量抓取:使用
jamf_docs_batch_get_articles在一次调用中同时请求最多获取10篇文章 - 词汇表查找:使用
jamf_docs_glossary_lookup使用模糊匹配查找Jamf术语 - 多语言:所有工具都接受
language用于本地化文档的参数(例如。,ja-JP,de-DE) - 文档类型筛选器:使用
docType上jamf_docs_search将结果缩小到release-notes,install-guide,technical-paper,configuration-guide,或training - 版本查询:使用
version用于查询特定产品版本文档的参数 - 分页:搜索结果支持
page和limit;目录支持page;产品列表没有分页 - 搜索建议:当搜索未返回结果时,收到有用的建议
- 许可证管理:所有工具都接受
maxTokens控制响应大小的参数(100–20000,默认值5000)
HTTP/SSE传输模式
除了默认值 stdio 服务器支持HTTP传输,用作远程或共享MCP端点。
启动HTTP服务器
# Using the npm script (defaults: localhost:3000)
npm run start:http
# Using the built binary directly with custom options
node dist/index.js --transport http --port 8080 --host 127.0.0.1CLI参数
| 参数 | 默认值 | 描述 |
|---|---|---|
--transport | stdio | 运输方式: stdio 或 http |
--port | 3000 | 监听端口(1–65535) |
--host | 127.0.0.1 | 要绑定的主机 |
安全说明:默认主机127.0.0.1仅限制对本地主机的访问。绑定到0.0.0.0将服务器暴露于网络;仅在受控环境中执行此操作。
HTTP端点
| 端点 | 方法 | 描述 |
|---|---|---|
/mcp | POST | MCP JSON-RPC端点(可流式HTTP传输) |
/health | GET | 健康检查-退货 {"status":"ok","version":""} |
通过HTTP连接MCP客户端
Claude Desktop或其他支持HTTP传输的MCP客户端可以连接:
{
"mcpServers": {
"jamf-docs": {
"url": "http://127.0.0.1:3000/mcp"
}
}
}CORS配置
默认情况下,服务器不设置CORS标头(跨源请求被阻止)。要允许特定的来源,请设置 CORS_ALLOWED_ORIGINS 环境变量:
CORS_ALLOWED_ORIGINS=https://myapp.example.com node dist/index.js --transport http多个来源用逗号分隔。
速率限制
HTTP服务器应用每IP令牌桶速率限制。默认值为每分钟60个请求。用覆盖 RATE_LIMIT_RPM 环境变量。
配置
所有设置都是可选的。在启动服务器之前,将它们设置为环境变量。
缓存设置
| 变量 | 默认值 | 范围 | 描述 |
|---|---|---|---|
CACHE_DIR | .cache | -- | 缓存目录(相对路径必须保留在项目中;敏感的系统路径将被拒绝) |
CACHE_TTL_SEARCH | 1800000 (30分钟) | 1分钟-30天 | 搜索结果缓存条目的TTL |
CACHE_TTL_ARTICLE | 86400000 (24小时) | 1分钟-30天 | 文章内容缓存条目的TTL |
CACHE_TTL_PRODUCTS | 604800000 (7天) | 1分钟-30天 | 产品列表缓存条目的TTL |
CACHE_TTL_TOC | 86400000 (24小时) | 1分钟-30天 | 目录缓存条目的TTL |
CACHE_MAX_ENTRIES | 500 | 10–10000 | 内存缓存中保存的最大条目数 |
请求设置
| 变量 | 默认值 | 范围 | 描述 |
|---|---|---|---|
REQUEST_TIMEOUT | 15000 | 1000–60000毫秒 | HTTP请求超时 |
MAX_RETRIES | 3 | 0–10 | 失败时重试的次数 |
RETRY_DELAY | 1000 | 100–30000毫秒 | 重试之间的延迟 |
RATE_LIMIT_DELAY | 500 | 0–10000毫秒 | 出站请求之间的延迟(礼貌) |
USER_AGENT | JamfDocsMCP/1.0 ... | -- | 用户代理标头发送到learn.jamf.com |
HTTP传输设置
| 变量 | 默认值 | 范围 | 描述 |
|---|---|---|---|
RATE_LIMIT_RPM | 60 | 1–10000 | 每分钟每个IP的入站请求数(仅限HTTP传输) |
CORS_ALLOWED_ORIGINS | \\(空) | -- | 逗号分隔的允许CORS源列表(仅限HTTP传输) |
发展
git clone https://github.com/GET-Technology-Inc/jamf-docs-mcp-server.git
cd jamf-docs-mcp-server
npm install
npm run dev # stdio mode with file watching
npm run start:http # HTTP transport mode可用脚本
| 脚本 | 描述 |
|---|---|
npm run build | 将TypeScript编译为 dist/ |
npm run dev | 具有自动重新加载(stdio)的开发模式 |
npm run start:http | 启动HTTP/SSE传输模式 |
npm test | 运行所有测试 |
npm run test:unit | 仅限单元测试 |
npm run test:integration | 仅集成测试 |
npm run test:e2e | 仅限端到端测试 |
npm run test:coverage | 测试覆盖率报告 |
npm run test:inspector | 针对本地构建启动MCP检查器 |
npm run lint | Lint源文件 |
npm run typecheck | 不发射的TypeScript类型检查 |
许可证
麻省理工学院-版权所有(c)2025 GET Technology股份有限公司。
免责声明
这是一个非官方工具,与Jamf无关。
