# Apple Docs MCP - Apple 开发者文档模型上下文协议服务器

[![npm 版本](https://badge.fury.io/js/@kimsungwhee%2Fapple-docs-mcp.svg)](https://badge.fury.io/js/@kimsungwhee%2Fapple-docs-mcp)
[![许可证: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

Apple 开发者文档 MCP 服务器 - 通过模型上下文协议访问 Apple 官方开发文档、框架、API、SwiftUI、UIKit 和 WWDC 视频。使用 AI 自然语言查询搜索 iOS、macOS、watchOS、tvOS 和 visionOS 文档。在 Claude、Cursor 或任何兼容 MCP 的 AI 助手中即时获取 Swift/Objective-C 代码示例、API 参考和技术指南。

[English](README.md) | [日本語](README.ja.md) | [한국어](README.ko.md) | **简体中文**

## ✨ 功能特性

- 🔍 **智能搜索**: 智能搜索 SwiftUI、UIKit、Foundation、CoreData、ARKit 等 Apple 开发者文档
- 📚 **完整文档访问**: 完全访问 Apple JSON API，获取 Swift、Objective-C 和框架文档
- 🔧 **框架索引**: 浏览 iOS、macOS、watchOS、tvOS、visionOS 框架的分层 API 结构
- 📋 **技术目录**: 探索包括 SwiftUI、UIKit、Metal、Core ML、Vision 和 ARKit 在内的 Apple 技术
- 📰 **文档更新**: 跟踪 WWDC 2024/2025 公告、iOS 26、macOS 26 和最新 SDK 发布
- 🎯 **技术概览**: Swift、SwiftUI、UIKit 和所有 Apple 开发平台的综合指南
- 💻 **示例代码库**: iOS、macOS 和跨平台开发的 Swift 和 Objective-C 代码示例
- 🎥 **WWDC 视频库**: 搜索 WWDC 2014-2025 会议，包含文字记录、Swift/SwiftUI 代码示例和资源
- 🔗 **相关 API 发现**: 查找 SwiftUI 视图、UIKit 控制器和框架特定的 API 关系
- 📊 **平台兼容性**: iOS 13+、macOS 10.15+、watchOS 6+、tvOS 13+、visionOS 兼容性分析
- ⚡ **高性能**: 针对 Xcode、Swift Playgrounds 和 AI 驱动的开发环境进行优化
- 🌐 **多平台**: 完整的 iOS、iPadOS、macOS、watchOS、tvOS 和 visionOS 文档支持
- 🏷️ **Beta 和状态跟踪**: iOS 26 beta API、已弃用的 UIKit 方法、新 SwiftUI 功能跟踪

## 🚀 快速开始

### Claude Desktop（推荐）

将此配置添加到您的 Claude Desktop 配置文件中：

**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`  
**Windows**: `%APPDATA%\Claude\claude_desktop_config.json`

```json
{
  "mcpServers": {
    "apple-docs": {
      "command": "npx",
      "args": ["-y", "@kimsungwhee/apple-docs-mcp"]
    }
  }
}
```

> **注意**: 如果遇到使用旧版本的问题，添加 `@latest` 以强制使用最新版本：
> ```json
> "args": ["-y", "@kimsungwhee/apple-docs-mcp@latest"]
> ```

重启 Claude Desktop 并开始询问 Apple API！

## 📦 安装指南

<details>
<summary><strong>📱 Claude Code</strong></summary>

```bash
claude mcp add apple-docs -- npx -y @kimsungwhee/apple-docs-mcp@latest
```

[📖 Claude Code MCP 文档](https://docs.anthropic.com/en/docs/claude-code/mcp)

</details>

<details>
<summary><strong>🖱️ Cursor</strong></summary>

**通过设置**: 设置 → Cursor 设置 → MCP → 添加新的全局 MCP 服务器

**通过配置文件**: 添加到 `~/.cursor/mcp.json`:

```json
{
  "mcpServers": {
    "apple-docs": {
      "command": "npx",
      "args": ["-y", "@kimsungwhee/apple-docs-mcp"]
    }
  }
}
```

[📖 Cursor MCP 文档](https://docs.cursor.com/context/mcp)

</details>

<details>
<summary><strong>🔷 VS Code</strong></summary>

添加到您的 VS Code MCP 配置：

```json
{
  "mcp": {
    "servers": {
      "apple-docs": {
        "type": "stdio",
        "command": "npx",
        "args": ["-y", "@kimsungwhee/apple-docs-mcp"]
      }
    }
  }
}
```

[📖 VS Code MCP 文档](https://code.visualstudio.com/docs/editor/mcp)

</details>

<details>
<summary><strong>🌊 Windsurf</strong></summary>

添加到您的 Windsurf MCP 配置：

```json
{
  "mcpServers": {
    "apple-docs": {
      "command": "npx",
      "args": ["-y", "@kimsungwhee/apple-docs-mcp"]
    }
  }
}
```

[📖 Windsurf MCP 文档](https://docs.codeium.com/windsurf/mcp)

</details>

<details>
<summary><strong>⚡ Zed</strong></summary>

添加到您的 Zed `settings.json`:

```json
{
  "context_servers": {
    "Apple Docs": {
      "command": {
        "path": "npx",
        "args": ["-y", "@kimsungwhee/apple-docs-mcp"]
      },
      "settings": {}
    }
  }
}
```

[📖 Zed 上下文服务器文档](https://zed.dev/docs/context-servers)

</details>

<details>
<summary><strong>🔧 Cline</strong></summary>

**通过市场**:
1. 打开 Cline → 菜单 (☰) → MCP 服务器 → 市场
2. 搜索 "Apple Docs MCP" → 安装

**通过配置**: 添加到 `cline_mcp_settings.json`:

```json
{
  "mcpServers": {
    "apple-docs": {
      "command": "npx",
      "args": ["-y", "@kimsungwhee/apple-docs-mcp"],
      "disabled": false,
      "autoApprove": []
    }
  }
}
```

</details>

<details>
<summary><strong>🪟 Windows</strong></summary>

对于 Windows 系统，使用：

```json
{
  "mcpServers": {
    "apple-docs": {
      "command": "cmd",
      "args": ["/c", "npx", "-y", "@kimsungwhee/apple-docs-mcp"],
      "disabled": false,
      "autoApprove": []
    }
  }
}
```

</details>

<details>
<summary><strong>⚙️ 高级安装</strong></summary>

**全局安装**:
```bash
# 使用 pnpm（推荐）
pnpm add -g @kimsungwhee/apple-docs-mcp

# 使用 npm
npm install -g @kimsungwhee/apple-docs-mcp
```

**直接使用**:
```bash
npx @kimsungwhee/apple-docs-mcp --help
```

**开发环境设置**:
```bash
git clone https://github.com/kimsungwhee/apple-docs-mcp.git
cd apple-docs-mcp

# 使用 pnpm（推荐）
pnpm install && pnpm run build

# 使用 npm
npm install && npm run build
```

</details>

## 💬 使用示例

### 🔍 智能搜索
```
"搜索 SwiftUI 动画"
"查找 withAnimation API 文档"
"查询 Swift 中的 async/await 模式"
"显示 AlarmKit 调度示例"
```

### 📚 文档访问
```
"获取 SwiftUI 框架的详细信息"
"显示 withAnimation API 及相关 API"
"获取 SwiftData 的平台兼容性"
"访问 UIViewController 文档及类似 API"
```

### 🔧 框架探索
```
"显示 SwiftUI 框架 API 索引"
"列出所有 UIKit 类和方法"
"浏览 ARKit 框架结构"
"获取 WeatherKit API 层次结构"
```

### 🔗 API 发现
```
"查找与 UIViewController 相关的 API"
"显示与 withAnimation 类似的 API"
"获取 SwiftData 文档中的所有引用"
"发现 Core Data NSManagedObject 的替代方案"
```

### 📋 技术和平台分析
```
"列出 iOS 26 中的所有 Beta 框架"
"显示图形和游戏技术"
"有哪些机器学习框架可用？"
"分析 Vision 框架的平台兼容性"
```

### 📰 文档更新
```
"显示最新的 WWDC 更新"
"SwiftUI 有什么新功能？"
"获取 iOS 的技术更新"
"显示 Xcode 的发布说明"
"查找最新更新中的 beta 功能"
```

### 🎯 技术概览
```
"显示应用设计和 UI 的技术概览"
"获取游戏开发的综合指南"
"探索 AI 和机器学习概览"
"显示 iOS 特定的技术指南"
"获取数据管理技术概览"
```

### 💻 示例代码库
```
"显示 SwiftUI 示例代码项目"
"查找机器学习示例代码"
"获取 UIKit 示例项目"
"显示精选 WWDC 示例代码"
"查找 Core Data 示例实现"
"仅显示测试版示例代码项目"
```

### 🎥 WWDC 视频搜索
```
"搜索关于 SwiftUI 的 WWDC 视频"
"查找机器学习的 WWDC 会议"
"显示 WWDC 2024 视频"
"搜索 async/await WWDC 演讲"
"查找关于 Swift 并发的 WWDC 视频"
"显示无障碍主题的 WWDC 会议"
```

### 📺 WWDC 视频详情
```
"获取 WWDC 会议 10176 的详情"
"显示 WWDC23 SwiftData 会议的文字记录"
"获取 WWDC 视频 10019 的代码示例"
"显示 Vision Pro WWDC 会议的资源"
"获取 'Meet async/await in Swift' 会议的文字记录"
```

### 📋 WWDC 主题和年份
```
"列出所有 WWDC 主题"
"显示 Swift 主题的 WWDC 视频"
"获取关于开发者工具的 WWDC 视频"
"列出 2023 年的 WWDC 视频"
"显示所有 SwiftUI 和 UI 框架会议"
"获取机器学习 WWDC 内容"
```

### 🛠️ 高级用法
```
"查找 @State 相关 API 及平台分析"
"解析 SwiftUI 文档中的所有引用"
"获取 Vision 框架的平台兼容性分析"
"深度搜索与 UIViewController 类似的 API"
```

## 🛠️ 可用工具

| 工具 | 描述 | 主要功能 |
|------|------|----------|
| `search_apple_docs` | 搜索 Apple 开发者文档 | 官方搜索 API，增强格式化，平台过滤 |
| `get_apple_doc_content` | 获取详细文档内容 | JSON API 访问，可选增强分析（相关/类似 API，平台兼容性） |
| `list_technologies` | 浏览所有 Apple 技术 | 类别过滤，语言支持，beta 状态 |
| `get_documentation_updates` | 跟踪 Apple 文档更新 | WWDC 公告，技术更新，发布说明，beta 过滤 |
| `get_technology_overviews` | 获取技术概览和指南 | 综合指南，分层导航，平台过滤 |
| `get_sample_code` | 浏览 Apple 示例代码项目 | 框架过滤，测试版状态，搜索，精选示例 |
| `search_wwdc_videos` | 搜索 WWDC 视频会议 | 关键词搜索，主题/年份过滤，会议元数据 |
| `get_wwdc_video_details` | 获取 WWDC 视频详情和文字记录 | 完整文字记录，代码示例，资源，平台信息 |
| `list_wwdc_topics` | 列出所有可用的 WWDC 主题 | 19 个主题类别，从 Swift 到空间计算 |
| `list_wwdc_years` | 列出所有可用的 WWDC 年份 | 会议年份及视频数量 |
| `get_framework_index` | 框架 API 结构树 | 分层浏览，深度控制，类型过滤 |
| `get_related_apis` | 查找相关 API | 继承、遵循、"参见"关系 |
| `resolve_references_batch` | 批量解析 API 引用 | 从文档中提取和解析所有引用 |
| `get_platform_compatibility` | 平台兼容性分析 | 版本支持，beta 状态，弃用信息 |
| `find_similar_apis` | 发现类似 API | Apple 官方推荐，主题分组 |


## 🏗️ 技术架构

```
apple-docs-mcp/
├── 🔧 src/
│   ├── index.ts                      # MCP 服务器入口点，包含所有工具
│   ├── tools/                        # MCP 工具实现
│   │   ├── search-parser.ts          # HTML 搜索结果解析
│   │   ├── doc-fetcher.ts            # JSON API 文档获取
│   │   ├── list-technologies.ts      # 技术目录处理
│   │   ├── get-documentation-updates.ts # 文档更新跟踪
│   │   ├── get-technology-overviews.ts # 技术概览和指南
│   │   ├── get-sample-code.ts        # 示例代码库浏览器
│   │   ├── get-framework-index.ts    # 框架结构索引
│   │   ├── get-related-apis.ts       # 相关 API 发现
│   │   ├── resolve-references-batch.ts # 批量引用解析
│   │   ├── get-platform-compatibility.ts # 平台分析
│   │   ├── find-similar-apis.ts      # 类似 API 推荐
│   │   └── wwdc/                     # WWDC 视频工具
│   │       ├── wwdc-handlers.ts      # WWDC 工具处理程序
│   │       ├── content-extractor.ts  # 视频内容提取
│   │       ├── topics-extractor.ts   # 主题列表
│   │       └── video-list-extractor.ts # 视频列表解析
│   └── utils/                        # 工具函数和辅助程序
│       ├── cache.ts                  # 带 TTL 支持的内存缓存
│       ├── constants.ts              # 应用程序常量和 URL
│       ├── error-handler.ts          # 错误处理和验证
│       ├── http-client.ts            # 带性能跟踪的 HTTP 客户端
│       └── url-converter.ts          # URL 转换工具
├── 📦 dist/                          # 编译后的 JavaScript
├── 📄 package.json                   # 包配置
└── 📖 README.md                      # 此文件
```

### 🚀 性能特性

- **基于内存的缓存**: 自定义缓存实现，具有自动清理和 TTL 支持
- **智能搜索**: 官方 Apple 搜索 API，具有增强的结果格式化
- **增强分析**: 可选的相关 API、平台兼容性和相似性分析
- **错误恢复**: 优雅降级，全面的错误处理
- **类型安全**: 完整的 TypeScript，使用 Zod v4.0.5 进行运行时验证
- **最新依赖**: MCP SDK v1.15.1，优化的包占用空间

### 💾 缓存策略

| 内容类型 | 缓存时长 | 缓存大小 | 原因 |
|----------|----------|----------|------|
| API 文档 | 30 分钟 | 500 项 | 频繁访问，适度更新 |
| 搜索结果 | 10 分钟 | 200 项 | 动态内容，用户特定 |
| 框架索引 | 1 小时 | 100 项 | 稳定结构，变化较少 |
| 技术列表 | 2 小时 | 50 项 | 很少变化，内容较大 |
| 文档更新 | 30 分钟 | 100 项 | 定期更新，WWDC 公告 |
| WWDC 视频数据 | 2 小时 | 无限制 | 稳定内容，本地 JSON 文件 |

## 🧪 开发

### 常用命令

```bash
# 开发模式（自动重载）
pnpm run dev    # 或: npm run dev

# 生产构建
pnpm run build  # 或: npm run build

# 类型检查
pnpm exec tsc --noEmit  # 或: npx tsc --noEmit

# 清理构建产物
pnpm run clean  # 或: npm run clean
```

### 本地测试

```bash
# 直接测试 MCP 服务器
node dist/index.js

# 使用示例查询测试
npx @kimsungwhee/apple-docs-mcp --test
```

## 🤝 贡献

欢迎贡献！以下是开始的方法：

1. **Fork** 仓库
2. **创建** 功能分支: `git checkout -b feature/amazing-feature`
3. **提交** 更改: `git commit -m 'Add amazing feature'`
4. **推送** 到分支: `git push origin feature/amazing-feature`
5. **打开** Pull Request

## 📄 许可证

MIT 许可证 - 详见 [LICENSE](LICENSE)。

## ⚠️ 免责声明

此项目与 Apple Inc. 无关联或认可。它使用公开可用的 Apple 开发者文档 API 用于教育和开发目的。

---

<div align="center">

**为 Apple 开发者社区用 ❤️ 制作**

搜索 Apple 开发者文档 | iOS 开发 | macOS 开发 | Swift 编程 | SwiftUI | UIKit | Xcode | WWDC 视频 | 模型上下文协议 | MCP 服务器

[报告问题](https://github.com/kimsungwhee/apple-docs-mcp/issues) • [请求功能](https://github.com/kimsungwhee/apple-docs-mcp/issues/new) • [文档](https://github.com/kimsungwhee/apple-docs-mcp)

</div>