项目简介
'Apple Doc MCP' 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为人工智能编码助手提供直接访问 Apple 开发者文档的能力。它将复杂的文档查询和数据管理封装成易于调用的 MCP 工具,让 LLM 能够无缝地搜索、选择框架并获取详细的API文档。服务器支持文档缓存,提高查询效率,并提供模糊搜索和多种搜索策略。
主要功能点
- 文档检索: 直接访问和获取 Apple 开发者文档中的符号(symbols)和框架(frameworks)。
- 框架管理: 允许用户浏览、筛选和选择当前关注的 Apple 技术或框架,以便进行更精确的搜索。
- 智能搜索: 提供强大的模糊搜索功能,能在选定的框架内搜索符号,并支持平台、符号类型等过滤条件。支持分层搜索和正则表达式搜索,提高搜索的全面性和准确性。
- 上下文感知: 服务器维护会话状态,如当前选择的框架和最近的搜索记录,使 LLM 交互更连贯。
- 性能优化: 采用内存和文件缓存机制,显著减少对 Apple 文档服务器的重复请求,提高响应速度。
安装步骤
- 确保您的系统已安装 Node.js 和 npm。
- 通过Git克隆或下载此仓库到您的本地机器。
- 打开终端或命令行工具,导航到项目根目录。
- 运行 'npm install' 命令安装所有必要的项目依赖。
- 运行 'npm build' 命令编译 TypeScript 源代码,生成可执行的 JavaScript 文件。
服务器配置
MCP服务器通常由MCP客户端启动和管理。以下是一个MCP客户端配置此 'Apple Doc MCP' 服务器的示例(JSON格式)。您需要根据您的MCP客户端的具体配置方式,将其添加到客户端的配置文件中。
{ "mcpServers": { "apple-doc": { // 自定义的服务器名称,用于在MCP客户端中引用此服务器 "command": "npx", // 启动MCP服务器的命令,这里使用npx "args": [ "apple-doc-mcp-server@latest" // 传递给npx的参数,表示运行npm上的最新版本 ] } } }
或者,如果通过本地构建的二进制文件运行:
{ "mcpServers": { "apple-doc-mcp": { // 自定义的服务器名称,用于在MCP客户端中引用此服务器 "command": "node", // 启动MCP服务器的命令 "args": ["/absolute/path/to/apple-doc-mcp/dist/index.js"] // 传递给node的参数,表示服务器入口文件的绝对路径 } } }
基本使用方法
MCP客户端连接到 'Apple Doc MCP' 服务器后,可以通过调用以下工具来访问Apple开发者文档:
-
探索可用的技术/框架:
- 按关键词筛选:'discover_technologies { "query": "swift" }'
- 分页浏览:'discover_technologies { "page": 2, "pageSize": 10 }'
-
选择并锁定一个框架进行操作:
- 通过框架名称选择:'choose_technology "SwiftUI"'
- 通过框架标识符选择:'choose_technology { "identifier": "doc://com.apple.documentation/documentation/SwiftUI" }'
-
查询当前选定的框架信息:
- 'current_technology' (返回当前活跃的框架名称和下一步操作提示)
-
在当前选定框架内搜索符号:
- 模糊关键词搜索:'search_symbols { "query": "tab view layout" }'
- 限制结果数量:'search_symbols { "query": "toolbar", "maxResults": 5 }'
- 按平台筛选:'search_symbols { "query": "button", "platform": "iOS" }'
- 按符号类型筛选:'search_symbols { "query": "view", "symbolType": "struct" }'
-
获取符号的详细文档:
- 获取相对路径的符号文档:'get_documentation { "path": "TabView" }'
- 获取完整路径的符号文档:'get_documentation { "path": "documentation/SwiftUI/TabViewStyle" }'
信息
分类
开发者工具