可用作 代理技能 --无需设置MCP服务器。
苹果深度文档MCP
通过模型上下文协议访问隐藏的Xcode文档和Apple开发人员资源。
概述
现代苹果文档使用DocC渲染系统,该系统需要JavaScript动态加载内容,使某些LLM无法访问。此MCP服务器通过提供对苹果开发文档生态系统的全面访问来绕过这一限制,包括:
- 隐藏Xcode文档:搜索
AdditionalDocumentationXcode.app中的文件夹,其中包含高级SwiftUI模式、iOS 26+的Liquid Glass设计指南以及特定于框架的实现细节,这些细节在苹果的公共开发者网站上不可用 - 苹果开发者API:从developer.apple.com获取并解析结构化文档
- 快速进化建议:搜索500多个提案,了解语言功能背后的“原因”
- Swift开源仓库:在所有Apple/SwiftLang GitHub存储库中搜索实现示例
- WWDC会议记录:访问社区策划的WWDC会议摘要,了解性能优化和架构模式
- 人机界面指南:通过人机界面指南进行搜索
需求
- Python 3.10+
- 已安装Xcode(用于本地文档功能)
安装
- 克隆此存储库:
git clone https://github.com/Ahrentlov/appledeepdoc-mcp.git
cd appledeepdoc-mcp- 设置Python环境:
# Create virtual environment
python3 -m venv venv
# Install dependencies
./venv/bin/pip install fastmcp配置
克劳德代码
对于Claude Code,您需要使用以下CLI命令添加MCP服务器:
确保run.sh是可执行的
chmod +x /path/to/appledeepdoc-mcp/run.sh将MCP服务器添加到本地Claude Code项目配置中
导航到要激活Claude Code的项目文件夹,然后运行以下命令注册MCP服务器:
claude mcp add --transport stdio apple-deep-docs /path/to/appledeepdoc-mcp/run.sh验证是否已添加
claude mcp list现在,当您激活时 claude 在此文件夹中,MCP服务器将可用。
克劳德桌面版
添加到您的Claude Desktop配置文件中:
{
"mcpServers": {
"apple-deep-docs": {
"command": "/path/to/appledeepdoc-mcp/run.sh"
}
}
}GPT法典
添加 ~/.codex/config.toml:
[mcp_servers.apple-deep-docs]
"command" = "/path/to/appledeepdoc-mcp/run.sh"替换 /path/to/appledeepdoc-mcp 包含克隆此存储库的完整路径。这 run.sh 脚本自动处理虚拟环境。
配置文件位置:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 窗户:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
更新配置后,重新启动Claude Desktop以加载MCP服务器。
项目结构
├── main.py # Entry point for the MCP server
├── config.py # Configuration and Xcode path discovery
├── tools.py # MCP tool definitions and input validation
├── docs/ # Documentation access modules
│ ├── local_docs.py # Xcode's hidden local documentation
│ └── apple_docs.py # Apple Developer website API access
├── evolution/ # Swift language evolution
│ └── swift_evolution.py
├── repos/ # GitHub repository searching
│ └── swift_repos.py
├── suggestions/ # Intelligent suggestion system
│ └── suggestions.py # Centralized suggestion engine
├── wwdc/ # WWDC session resources
│ └── wwdc_notes.py
└── pyproject.toml # Package configuration可用工具
当地文件
search_docs-搜索Xcode的隐藏文档get_document-检索特定文档的完整内容list_documents-列出所有可用的文档文件get_xcode_versions-使用文档获取已安装的Xcode版本
苹果开发者资源
fetch_apple_documentation-从developer.apple.com获取结构化文档search_apple_online-搜索本地和在线Apple文档get_framework_info-获取任何框架的直接文档URL
快速进化
search_swift_evolution-搜索Swift Evolution提案get_swift_evolution_proposal-获取特定提案的详细信息
GitHub资源
search_swift_repos-在所有Apple/SwiftLang存储库中搜索fetch_github_file-从GitHub仓库获取源代码
WWDC资源
search_wwdc_notes-搜索WWDC会议记录和成绩单get_wwdc_session-从会话ID获取WWDC会话URL
人机界面指南
search_human_interface_guidelines-在Apple的HIG中搜索设计模式和最佳实践list_human_interface_guidelines_platforms-列出所有具有HIG链接的可用平台
环境变量
XCODE_DOC_PATH:覆盖默认Xcode文档搜索路径CODE_EXECUTION_MODE:设置为true启用实验代码执行模式(见下文)
实验:代码执行模式
基于中描述的方法 使用MCP执行代码:构建更高效的代理 来自人类工程学。
该服务器还支持一种替代方法,即用 沙盒Python执行环境LLM编写Python代码直接获取和过滤数据,而不是接收大型JSON响应并在外部进行处理,从而大大减少了令牌的使用。
为什么要执行代码?
标准模式公开了15个以上的工具,每个工具都返回完整的JSON响应。例如,搜索Swift Evolution提案会返回整个匹配的数据集。使用代码执行模式:
- 工具更少 -仅需3个工具,而不是15+个,减少了工具列表开销
- 筛选结果 -LLM编写代码以准确提取所需内容
- 可组合查询 -在一次执行中合并多个API调用和筛选
代码执行模式下的可用工具
| 工具 | 目的 |
|---|---|
list_tool_directory | 浏览虚拟文件系统以发现可用的API |
read_tool_definition | 读取函数签名和使用示例 |
execute_documentation_code | 在沙盒环境中运行Python代码 |
安全模型
沙盒提供深度防御:
- AST验证 -阻止导入,
exec,eval,以及危险的建筑 - 子进程隔离 -代码在单独的进程中运行
- 资源限制 -5秒超时,50MB内存限制
- 受限命名空间 -只有安全的内置程序和文档API可用
启用代码执行模式
添加 CODE_EXECUTION_MODE MCP配置的环境变量:
克劳德代码:
claude mcp add apple-deep-docs-exec /path/to/appledeepdoc-mcp/run.sh --env CODE_EXECUTION_MODE=true克劳德桌面:
{
"mcpServers": {
"apple-deep-docs-exec": {
"command": "/path/to/appledeepdoc-mcp/run.sh",
"env": {
"CODE_EXECUTION_MODE": "true"
}
}
}
}示例:过滤Swift进化建议
而不是打电话 search_swift_evolution LLM接收到较大的JSON响应后执行:
# Executed in sandbox via execute_documentation_code
proposals = search_proposals('async')
swift6 = [p for p in proposals.get('proposals', [])
if p.get('version', '').startswith('6')]
result = {'swift6_async': swift6[:5], 'count': len(swift6)}LLM只接收经过筛选的5个提案,而不是整个匹配的数据集。
Sandbox中的可用API
所有文档来源都可以作为函数使用:
| API | 函数 |
|---|---|
| 苹果开发者文档 | fetch_documentation(url), search_apple_online(query), get_framework_info(name) |
| 快速进化 | search_proposals(feature), get_proposal(se_number) |
| 本地Xcode文档 | search_docs(query), get_document(name), list_documents(), get_xcode_versions() |
| GitHub仓库 | search_swift_repos(query), fetch_github_file(url) |
| WWDC会议 | search_wwdc_notes(query), get_wwdc_session(session_id) |
| 人机界面指南 | search_hig(query), list_hig_platforms() |
贡献
该项目按其当前状态提供。虽然我已经尽了最大努力让它对访问苹果更深层次的文档层有用,但可能还有一些粗糙的边缘或需要改进的地方。
我们非常欢迎您提出建议和请求!如果您对新功能有想法、发现错误或想做出改进,请随时打开问题或提交PR。
许可证
麻省理工学院
