项目简介

'Apple Doc MCP' 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为人工智能编码助手提供直接访问 Apple 开发者文档的能力。它将复杂的文档查询和数据管理封装成易于调用的 MCP 工具,让 LLM 能够无缝地搜索、选择框架并获取详细的API文档。服务器支持文档缓存,提高查询效率,并提供模糊搜索和多种搜索策略。

主要功能点

  • 文档检索: 直接访问和获取 Apple 开发者文档中的符号(symbols)和框架(frameworks)。
  • 框架管理: 允许用户浏览、筛选和选择当前关注的 Apple 技术或框架,以便进行更精确的搜索。
  • 智能搜索: 提供强大的模糊搜索功能,能在选定的框架内搜索符号,并支持平台、符号类型等过滤条件。支持分层搜索和正则表达式搜索,提高搜索的全面性和准确性。
  • 上下文感知: 服务器维护会话状态,如当前选择的框架和最近的搜索记录,使 LLM 交互更连贯。
  • 性能优化: 采用内存和文件缓存机制,显著减少对 Apple 文档服务器的重复请求,提高响应速度。

安装步骤

  1. 确保您的系统已安装 Node.js 和 npm。
  2. 通过Git克隆或下载此仓库到您的本地机器。
  3. 打开终端或命令行工具,导航到项目根目录。
  4. 运行 'npm install' 命令安装所有必要的项目依赖。
  5. 运行 '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" }'

信息

分类

开发者工具