apple-docs-mcp
让 Claude/Cursor 等 AI 助手直接查阅 Apple 官方开发者文档的 MCP 工具
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
让 Claude/Cursor 等 AI 助手直接查阅 Apple 官方开发者文档的 MCP 工具
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
你是否曾在用 Claude 或 Cursor 编写 iOS 应用时,为了查一个 SwiftUI API 的用法,不得不切换到浏览器搜索 Apple 官方文档,然后再来回复制粘贴代码?那种被打断的体验,就像正在写报告时被迫去翻一本厚重的纸质字典。Apple Docs MCP 正是为了解决这个痛点而诞生的——它把 Apple 开发者文档直接接入了 AI 编程助手,让 AI 在写代码时就能实时查阅权威文档,无需人工干预。
Apple 开发者文档是 iOS/macOS 开发的事实标准,但它的检索系统对开发者并不友好。Apple 官方文档站点虽然内容权威,但搜索体验落后、页面层级深,开发者经常要经过「搜索→点击→浏览→返回」多次循环才能找到想要的 API 信息。更关键的是,当你在 Claude、Cursor 这类 AI 编程工具中编写 Swift 代码时,如果想让 AI 给出准确的 API 用法建议,你必须自己先查好文档再喂给 AI——这个「翻译」过程本身就是一种效率损耗。
MCP(Model Context Protocol)是由 Anthropic 主导推出的 AI 工具上下文协议,允许 AI 助手通过标准化接口调用外部数据源和工具。Apple Docs MCP 的作者 Kim Sung-hwee 敏锐地看到了这个结合点:与其让开发者手动查文档,不如让 AI 编程助手自己调用文档 API,将权威信息直接注入 AI 的推理过程,从根本上消除文档检索的摩擦。
Apple Docs MCP 通过 MCP 协议暴露了 12 个工具,涵盖了 Apple 开发者文档的方方面面:
智能搜索是最核心的工具。用户可以用自然语言提问(如"Search for SwiftUI animations"、"Look up async/await patterns in Swift"),MCP Server 会调用 Apple 官方搜索 API,返回结构化的文档列表和摘要。这个搜索不是简单的关键词匹配,而是结合了 Apple 文档的语义结构,能返回 API 参考、指南文章、技术概览等多种类型的相关内容。
文档详情获取则更进一步。当用户拿到一个具体文档 URL 后,MCP 可以抓取该页面的完整内容,包括:API 的详细说明、相关 API 列表、Swift/Objective-C 示例代码、平台兼容性分析等。特别是示例代码获取(get_sample_code),直接从 Apple 官方代码库提取经过官方验证的代码片段,比开发者自己写的更具参考价值。
WWDC 视频库是另一个亮点功能。苹果每年 WWDC 都会发布数百个技术视频,但视频内容难以被 AI 处理。Apple Docs MCP 内置了从 2014 年到 2025 年全部 WWDC 视频的索引数据(存储在 data/wwdc/ 目录下),支持按年份、按主题搜索,并附带文字记录(transcript)和代码示例。用户问"WWDC 2024 有哪些关于 SwiftUI 的 session",MCP 立刻返回相关视频列表和链接。
API 发现与关联功能则帮助开发者进行深度探索。find_similar_apis 可以找到功能相近的 API(如 UIKit 和 SwiftUI 中功能相似的视图组件),get_related_apis 返回同一框架下的关联 API,resolve_references_batch 则批量解析文档中的内部链接,帮助开发者建立对某个技术领域的系统性认知。
平台兼容性分析对于需要多平台支持的开发者尤为实用。苹果的不同操作系统版本对同一 API 的支持程度不同(如某个 API 在 iOS 13 支持但 iOS 17 废弃),MCP 可以返回详细的版本兼容性矩阵,帮助开发者在跨版本开发时做出正确决策。
从代码结构看,Apple Docs MCP 是一个典型的 TypeScript 工程化项目,采用模块化分层设计:
入口层(src/index.ts)基于 @modelcontextprotocol/sdk 构建 MCP Server,使用 StdioServerTransport 实现标准输入输出的进程间通信。这种通信方式意味着 MCP Server 本质上是一个命令行工具,AI 助手通过子进程调用它、传递参数、接收结果。这种设计简单可靠,与 AI 助手通过 JSON-RPC 交互的模式天然契合。
工具定义层(src/tools/definitions.ts)使用 Zod schema 定义每个工具的输入输出格式。Zod 是一个 TypeScript 优先的模式验证库,MCP Server 在接收 AI 请求时先用 Zod 验证参数类型,确保参数合法后才交给具体的 handler 处理。这是一种防御性编程策略——外部输入永远不可信,验证先行能避免很多运行时错误。
业务逻辑层(src/tools/*.ts)包含每个工具的具体实现。核心逻辑包括:
search-parser.ts 解析 Apple 搜索页面的 HTML 结构,提取文档标题、URL、摘要和类型doc-fetcher.ts 调用 Apple 的 JSON API 获取文档详情,包括 API 参考页面的结构化数据doc-formatter.ts 将获取到的文档数据格式化为 MCP 协议要求的响应格式get-sample-code.ts 从 Apple 代码示例库中提取特定 API 的示例代码wwdc/ 子目录处理 WWDC 视频的搜索和元数据查询工具层(src/utils/)则提供了通用的基础设施:
http-client.ts:封装 HTTP 请求,支持重试、超时、代理配置user-agent-pool.ts:维护一组浏览器 User-Agent,轮换使用以避免被 Apple 网站限流rate-limiter.ts:速率限制,防止请求过于频繁cache.ts / cache-warmer.ts:多级缓存策略,预先加载热门框架文档,减少响应延迟logger.ts:结构化日志,支持调试和监控error-handler.ts:统一错误处理,将各类错误转换为用户友好的 MCP 错误响应数据层(data/)包含静态的 WWDC 元数据(JSON 格式),避免每次查询都访问网络。这些数据按年份和主题组织,MCP Server 启动时会预加载到内存中。
值得注意的是,代码中有大量中文注释,这是作者在维护过程中的个人习惯,侧面反映了这是一个持续迭代的个人项目,而非企业级产品。
项目使用 Jest + ts-jest 做单元测试,使用 ESLint + TypeScript 强制代码规范。构建产物是 TypeScript 编译后的 JavaScript(dist/ 目录),通过 npm publish 发布到 npm registry。项目还配置了 pnpm workspace,支持 monorepo 风格的管理(虽然当前只有一个包)。发布前会自动执行 clean→build→test:ci 三连,确保代码质量。
优势方面:纯本地 CLI 工具,无需服务器,隐私完全可控;安装极简,npx 一行命令即可;覆盖 Apple 全平台文档(iOS/macOS/watchOS/tvOS/visionOS);支持除 Claude 外的多种 AI 工具(Cursor、VS Code、Windsurf、Zed、Cline 等),生态覆盖面广。
局限方面:纯 CLI 工具没有 Web UI,对非技术用户不够友好;依赖 Apple 官方文档的可用性,如果 Apple 改版导致 HTML 结构变化,爬虫逻辑可能失效;数据更新依赖作者维护 WWDC 元数据,存在一定滞后性;不支持离线使用(需要访问 developer.apple.com)。
Apple Docs MCP 代表了 AI 编程助手生态的一个重要趋势:工具化检索。传统的 RAG(检索增强生成)方案需要开发者自己维护文档向量数据库,而 MCP 方案则将文档 API 本身作为检索层,由专业维护者(如本项目的作者)负责保持数据源的可用性,开发者只需配置一次即可持续使用。这种「分工专业化」的模式,与当年开源库让开发者不必重复造轮子的逻辑一脉相承。
该项目在 GitHub 获得 1300+ stars、10 个主题标签覆盖主流 AI 开发工具,表明开发者对 Apple 平台文档工具化有真实需求。随着 MCP 协议的普及,预计会有更多类似的专业文档 MCP Server 涌现。