apple-docs-2.0-mcp 2.0.3 → 2.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,10 +1,33 @@
1
- ![Apple Docs 2.0 MCP: doc search optimized for agents, a complete index of 336,629 pages, and Sample Code with WWDC included](https://cdn.jsdelivr.net/gh/mishafyi/Apple-Docs-2.0-MCP@main/assets/banner.png)
1
+ <div align="center">
2
2
 
3
- # Apple Docs 2.0 MCP - Apple Developer Documentation Model Context Protocol Server
3
+ **English** · [日本語](README-ja.md) · [한국어](README-ko.md) · [简体中文](README-zh-CN.md)
4
4
 
5
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow)](https://opensource.org/licenses/MIT)
6
- [![npm](https://img.shields.io/npm/v/apple-docs-2.0-mcp)](https://www.npmjs.com/package/apple-docs-2.0-mcp)
7
- [![Fork of Apple Docs MCP](https://img.shields.io/badge/fork%20of-kimsungwhee%2Fapple--docs--mcp-blue)](https://github.com/kimsungwhee/apple-docs-mcp)
5
+ # Apple Docs 2.0 MCP
6
+
7
+ ### One MCP for Apple's developer documentation, design guidelines and WWDC sessions.
8
+
9
+ **Building your next iOS app with an agent? Let it read Apple's own docs first: fewer rewrites, fewer interruptions.**
10
+
11
+ [![npm version](https://img.shields.io/npm/v/apple-docs-2.0-mcp?style=flat-square&color=cb3837)](https://www.npmjs.com/package/apple-docs-2.0-mcp)
12
+ [![MCP tools](https://img.shields.io/badge/MCP-19_tools-5c4ee5?style=flat-square)](#️-available-tools)
13
+ [![Node.js](https://img.shields.io/node/v/apple-docs-2.0-mcp?style=flat-square&logo=nodedotjs&logoColor=white&label=Node.js&color=339933)](https://nodejs.org/en/download)
14
+ [![npm downloads](https://img.shields.io/npm/dm/apple-docs-2.0-mcp?style=flat-square&color=cb3837)](https://www.npmjs.com/package/apple-docs-2.0-mcp)
15
+ [![MCP Registry](https://img.shields.io/badge/MCP_Registry-listed-0d1117?style=flat-square)](https://registry.modelcontextprotocol.io/v0.1/servers?search=io.github.mishafyi/apple-docs-2.0-mcp)
16
+ [![skills.sh](https://skills.sh/b/mishafyi/Apple-Docs-2.0-MCP?style=flat-square)](https://skills.sh/mishafyi/Apple-Docs-2.0-MCP)
17
+ [![MIT license](https://img.shields.io/badge/license-MIT-f4c430?style=flat-square)](LICENSE)
18
+ [![Fork of Apple Docs MCP](https://img.shields.io/badge/fork_of-kimsungwhee%2Fapple--docs--mcp-blue?style=flat-square)](https://github.com/kimsungwhee/apple-docs-mcp)
19
+
20
+ [Quick Start](#-quick-start) · [What's New](#-whats-new-in-20) · [Installation](#-installation) · [Usage](#-usage-examples) · [Tools](#️-available-tools) · [Architecture](#️-architecture) · [Development](#-development)
21
+
22
+ <code>npx -y apple-docs-2.0-mcp</code>
23
+
24
+ <br />
25
+
26
+ <img src="https://cdn.jsdelivr.net/gh/mishafyi/Apple-Docs-2.0-MCP@main/assets/banner.png" alt="Apple Docs 2.0 MCP: doc search optimized for agents, a complete index of 336,629 pages, and Sample Code with WWDC included" width="1200" />
27
+
28
+ </div>
29
+
30
+ ---
8
31
 
9
32
  Apple Developer Documentation for AI assistants, through the Model Context Protocol: API reference, articles, sample
10
33
  code, tutorials, the Human Interface Guidelines, App Store Connect Help, the web-service APIs (App Store Connect API, App
@@ -14,7 +37,44 @@ MCP client.
14
37
  Apple Docs 2.0 MCP is a fork of [Apple Docs MCP](https://github.com/kimsungwhee/apple-docs-mcp) by
15
38
  [kimsungwhee](https://github.com/kimsungwhee), improved with additions, fixes and a new tool.
16
39
 
17
- **English** | [日本語](README.ja.md) | [한국어](README.ko.md) | [简体中文](README.zh-CN.md)
40
+ ## 🚀 Quick Start
41
+
42
+ ### Claude Desktop (Recommended)
43
+
44
+ Add this to your Claude Desktop configuration:
45
+
46
+ **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
47
+ **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
48
+
49
+ ```json
50
+ {
51
+ "mcpServers": {
52
+ "apple-docs": {
53
+ "command": "npx",
54
+ "args": ["-y", "apple-docs-2.0-mcp"]
55
+ }
56
+ }
57
+ }
58
+ ```
59
+
60
+ > **Note**: If you encounter issues with an old version being used, add `@latest` to force the latest version:
61
+ > ```json
62
+ > "args": ["-y", "apple-docs-2.0-mcp@latest"]
63
+ > ```
64
+
65
+ Restart Claude Desktop and start asking about Apple APIs!
66
+
67
+ ### Claude Code
68
+
69
+ ```bash
70
+ claude mcp add apple-docs -- npx -y apple-docs-2.0-mcp
71
+ ```
72
+
73
+ ### Ask your agent
74
+
75
+ ```text
76
+ Look up NavigationStack in Apple's docs, then show me the WWDC code that uses it.
77
+ ```
18
78
 
19
79
  ## 🆕 What's New in 2.0
20
80
 
@@ -95,39 +155,6 @@ Nothing to set up: no API key or account.
95
155
  - 🎥 **WWDC library**: 1,700 sessions from 2014 to 2026 with transcripts, timed code examples, resources and related
96
156
  sessions, offline
97
157
 
98
- ## 🚀 Quick Start
99
-
100
- ### Claude Desktop (Recommended)
101
-
102
- Add this to your Claude Desktop configuration:
103
-
104
- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
105
- **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
106
-
107
- ```json
108
- {
109
- "mcpServers": {
110
- "apple-docs": {
111
- "command": "npx",
112
- "args": ["-y", "apple-docs-2.0-mcp"]
113
- }
114
- }
115
- }
116
- ```
117
-
118
- > **Note**: If you encounter issues with an old version being used, add `@latest` to force the latest version:
119
- > ```json
120
- > "args": ["-y", "apple-docs-2.0-mcp@latest"]
121
- > ```
122
-
123
- Restart Claude Desktop and start asking about Apple APIs!
124
-
125
- ### Claude Code
126
-
127
- ```bash
128
- claude mcp add apple-docs -- npx -y apple-docs-2.0-mcp
129
- ```
130
-
131
158
  ## 📦 Installation
132
159
 
133
160
  <details>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "apple-docs-2.0-mcp",
3
- "version": "2.0.3",
3
+ "version": "2.0.5",
4
4
  "description": "MCP server for Apple Developer Documentation: API reference, Human Interface Guidelines, App Store Connect Help, sample code and 1,700 WWDC sessions with transcripts and code. A fork of Apple Docs MCP.",
5
5
  "keywords": [
6
6
  "mcp",
package/README.ja.md DELETED
@@ -1,381 +0,0 @@
1
- ![Apple Docs 2.0 MCP: doc search optimized for agents, a complete index of 336,629 pages, and Sample Code with WWDC included](https://cdn.jsdelivr.net/gh/mishafyi/Apple-Docs-2.0-MCP@main/assets/banner.png)
2
-
3
- # Apple Docs 2.0 MCP - Apple 開発者ドキュメント Model Context Protocol サーバー
4
-
5
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow)](https://opensource.org/licenses/MIT)
6
- [![npm](https://img.shields.io/npm/v/apple-docs-2.0-mcp)](https://www.npmjs.com/package/apple-docs-2.0-mcp)
7
- [![Fork of Apple Docs MCP](https://img.shields.io/badge/fork%20of-kimsungwhee%2Fapple--docs--mcp-blue)](https://github.com/kimsungwhee/apple-docs-mcp)
8
-
9
- Model Context Protocol を通じて AI アシスタントに提供される Apple Developer Documentation: Claude、Cursor、VS Code、またはその他の MCP クライアント内で、API リファレンス、記事、サンプルコード、チュートリアル、Human Interface Guidelines、App Store Connect ヘルプ、Web サービス API(App Store Connect API、App Store Server API など)、そしてトランスクリプトやコードを含む 1,700 件の WWDC セッションを利用できます。
10
-
11
- Apple Docs 2.0 MCP は、[kimsungwhee](https://github.com/kimsungwhee) 氏による [Apple Docs MCP](https://github.com/kimsungwhee/apple-docs-mcp) のフォークであり、機能追加、不具合修正、および新しいツールの導入によって改善されています。
12
-
13
- [English](README.md) | **日本語** | [한국어](README.ko.md) | [简体中文](README.zh-CN.md)
14
-
15
- ## 🆕 2.0 の新機能
16
-
17
- Apple Docs 2.0 MCP は、Apple Docs MCP 1.0.26 のすべてのツールを維持しつつ、機能しなくなっていた部分や不完全な応答となっていた箇所を修正しました。これにより、アシスタントは推測ではなく Apple 公式のドキュメントに基づいて回答します。
18
-
19
- ### 🔍 結果をしっかり返す検索機能
20
-
21
- `search_apple_docs` が修正されました。Apple の Web サイトで使用されているものと同じ検索サービスを利用するようになったため、アシスタントは developer.apple.com で確認できる検索結果(API リファレンス、記事、サンプルコード、デザインガイドライン、App Store Connect ヘルプ、WWDC ビデオ)を取得できます。オリジナル版では、Apple 側の検索ページ変更に伴い検索結果が空になっていました。
22
-
23
- API、デザインガイドライン、App Store のプロセスについて質問すると、アシスタントはまず検索を実行し、見つかったページを読み込みます。
24
-
25
- ### 🗺️ 名前からあらゆるページを検索
26
-
27
- 新ツール `search_docs_map` は、名前またはその一部から 336,629 ページをオフラインで検索します:
28
-
29
- - API シンボル: 型、メソッド、プロパティ、enum ケース、マクロ
30
- - 記事、チュートリアル、サンプルコード
31
- - Info.plist およびエンタイトルメントのキー
32
- - Web サービスのエンドポイント(App Store Connect API など)
33
- - Human Interface Guidelines および App Store Connect ヘルプのページ
34
-
35
- コードやエラーメッセージから名前がすでに分かっている場合に、そのページを直接開くために使用します。
36
-
37
- ### 📄 完全なドキュメントページ
38
-
39
- ページは Apple のサイトと同様に完全な形で取得されます: すべてのメソッドとプロパティ(単なる `view` ではなく `var view: UIView!` のような完全なシグネチャ付き)、型の継承元や準拠プロトコル、関連 API、およびサポートされている OS バージョンが含まれます。2.0 では、Human Interface Guidelines、チュートリアル、App Store Connect ヘルプ、パラメータやレスポンスを含む App Store Connect API エンドポイントも読み込むことができます。
40
-
41
- API、ガイドライン、App Store Connect のトピックについて質問すると、アシスタントは回答やコード生成を行う前にページ全体を読み込みます。
42
-
43
- ### 🎥 コード付き WWDC 2014–2026
44
-
45
- WWDC26 を含む 1,700 のセッションが組み込まれており、オフラインで動作します。1,416 件にトランスクリプト、715 件にコードサンプル(動画内の登場時間付き)が含まれています。セッションは Apple の Web サイトと同じトピック分類で整理されています。
46
-
47
- 新しい API の動作について質問すると、アシスタントはその API が導入された WWDC セッションをコード付きで引用できます。
48
-
49
- ### 📋 完全なフレームワーク一覧
50
-
51
- オリジナル版のテクノロジーリストは 200 件で途切れており、一部のカテゴリ全体(Graphics and Games、Media、System、Web)が表示されず、シンボル検索では壊れたリンクを含む見出しが混ざっていました。2.0 ではすべてを網羅し、ベータ版フレームワークを明示し、分野別にフレームワークを検索できます(「Machine learning」で検索すると Core ML、Create ML、Foundation Models、Vision などが返されます)。
52
-
53
- 機械学習やオーディオなど、特定のタスクに適したフレームワークを質問すると、アシスタントは完全なリストを比較検討します。
54
-
55
- ### 🛠️ 安定稼働のための設計
56
-
57
- 最新の依存関係、通常のブラウザのように動作しリクエスト間隔を空ける仕組み(Apple はリクエストが速すぎると空の検索結果を返します)、リクエスト失敗時の自動リトライ、および 255 件の自動テストを備えています。オリジナル版の README にある 63 件の使用例はすべてエラーなく実行されます。
58
-
59
- 追加設定は不要です。API キーやアカウントも必要ありません。
60
-
61
- ## ✨ 特徴
62
-
63
- - 🔍 **検索**: Apple ドキュメント、デザインガイドライン、サンプルコード、App Store Connect ヘルプ、WWDC セッションを一括検索、または個別に検索
64
- - 🗺️ **ドキュメントマップ**: ネットワークリクエストなしで、タイトル(メソッド名やプロパティ名を含む)から任意のページを検索
65
- - 📚 **ドキュメントページ**: Swift および Objective-C API、記事、チュートリアル、Web サービスリファレンスを Markdown 形式で取得
66
- - 🎨 **Human Interface Guidelines**: すべての HIG ページを検索・閲覧可能
67
- - 🏪 **App Store Connect ヘルプ**: プロダクトページの項目、審査、TestFlight、価格設定など
68
- - 🔧 **フレームワークシンボル**: ワイルドカードを使用してフレームワークのクラス、構造体、プロトコル、メンバーを探索
69
- - 🔗 **API リレーションシップ**: 関連 API、類似 API、参照されている API、および非推奨となった API の移行先
70
- - 📊 **プラットフォーム互換性**: 各プラットフォームで API が導入されたバージョンおよび非推奨となったバージョン
71
- - 📋 **テクノロジーカタログ**: カテゴリ別のすべての Apple フレームワークおよびテクノロジー(ベータ版は明示)
72
- - 📰 **ドキュメントの更新情報**: リリースノート、フレームワークのアップデート情報、WWDC の「What's new」ページ
73
- - 🎯 **テクノロジー概要**: アプリ設計、ゲーム、AI・機械学習、データなどに関する Apple の公式ガイド
74
- - 💻 **サンプルコード**: 概要とダウンロードリンクを含む Apple のサンプルプロジェクト
75
- - 🎥 **WWDC ライブラリ**: トランスクリプト、タイムスタンプ付きコード例、リソース、関連セッションを含む 2014 年から 2026 年までの 1,700 セッション(オフライン対応)
76
-
77
- ## 🚀 クイックスタート
78
-
79
- ### Claude Desktop(推奨)
80
-
81
- Claude Desktop 設定ファイルに以下を追加してください:
82
-
83
- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
84
- **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
85
-
86
- ```json
87
- {
88
- "mcpServers": {
89
- "apple-docs": {
90
- "command": "npx",
91
- "args": ["-y", "apple-docs-2.0-mcp"]
92
- }
93
- }
94
- }
95
- ```
96
-
97
- > **注意**: 古いバージョンが使用される問題が発生した場合、`@latest` を追加して最新バージョンを強制します:
98
- > ```json
99
- > "args": ["-y", "apple-docs-2.0-mcp@latest"]
100
- > ```
101
-
102
- Claude Desktop を再起動して Apple API について質問を始めましょう!
103
-
104
- ### Claude Code
105
-
106
- ```bash
107
- claude mcp add apple-docs -- npx -y apple-docs-2.0-mcp
108
- ```
109
-
110
- ## 📦 インストール
111
-
112
- <details>
113
- <summary><strong>📱 Claude Code</strong></summary>
114
-
115
- ```bash
116
- claude mcp add apple-docs -- npx -y apple-docs-2.0-mcp
117
- ```
118
-
119
- [📖 Claude Code MCP ドキュメント](https://docs.anthropic.com/en/docs/claude-code/mcp)
120
-
121
- </details>
122
-
123
- <details>
124
- <summary><strong>🖱️ Cursor</strong></summary>
125
-
126
- `~/.cursor/mcp.json` に追加します:
127
-
128
- ```json
129
- {
130
- "mcpServers": {
131
- "apple-docs": {
132
- "command": "npx",
133
- "args": ["-y", "apple-docs-2.0-mcp"]
134
- }
135
- }
136
- }
137
- ```
138
-
139
- [📖 Cursor MCP ドキュメント](https://docs.cursor.com/context/mcp)
140
-
141
- </details>
142
-
143
- <details>
144
- <summary><strong>🔷 VS Code</strong></summary>
145
-
146
- ワークスペースのルートにある `.mcp.json`(VS Code のポータブル形式)に追加します:
147
-
148
- ```json
149
- {
150
- "mcpServers": {
151
- "apple-docs": {
152
- "command": "npx",
153
- "args": ["-y", "apple-docs-2.0-mcp"]
154
- }
155
- }
156
- }
157
- ```
158
-
159
- [📖 VS Code MCP ドキュメント](https://code.visualstudio.com/docs/copilot/chat/mcp-servers)
160
-
161
- </details>
162
-
163
- <details>
164
- <summary><strong>⚡ Zed</strong></summary>
165
-
166
- Zed の `settings.json` に追加します:
167
-
168
- ```json
169
- {
170
- "context_servers": {
171
- "apple-docs": {
172
- "command": "npx",
173
- "args": ["-y", "apple-docs-2.0-mcp"],
174
- "env": {}
175
- }
176
- }
177
- }
178
- ```
179
-
180
- [📖 Zed MCP ドキュメント](https://zed.dev/docs/ai/mcp)
181
-
182
- </details>
183
-
184
- ## 💬 使用例
185
-
186
- ### 🔍 検索
187
- ```
188
- "SwiftUIのアニメーションを検索して"
189
- "withAnimation APIのドキュメントを探して"
190
- "Human Interface Guidelinesでタブバーについて検索して"
191
- "App Store ConnectヘルプでTestFlightの外部テスターについて検索して"
192
- "Core Dataのサンプルコードを探して"
193
- ```
194
-
195
- ### 🗺️ ドキュメントマップ
196
- ```
197
- "accessibilityInputLabelsのページを探して"
198
- "タイトルにgaugeが含まれるSwiftUIのページはどれ?"
199
- "自動更新サブスクリプションを作成するためのApp Store Connect APIエンドポイントを探して"
200
- ```
201
-
202
- ### 📚 ドキュメントへのアクセス
203
- ```
204
- "SwiftUIフレームワークに関する詳細情報を取得して"
205
- "withAnimation APIと関連APIを表示して"
206
- "NSManagedObjectContextのドキュメントを表示して"
207
- "タブバーに関するHuman Interface Guidelinesのページを読んで"
208
- "SwiftUIチュートリアルの手順を表示して"
209
- ```
210
-
211
- ### 🔧 フレームワークの探索
212
- ```
213
- "SwiftUIのViewを表示して"
214
- "すべてのUIKitデリゲートプロトコルを一覧表示して"
215
- "WeatherKit APIの階層を取得して"
216
- "Core MLのモデル読み込みAPIを探索して"
217
- ```
218
-
219
- ### 🔗 APIの発見
220
- ```
221
- "UIViewControllerに関連するAPIを探して"
222
- "UIAlertViewの代替手段を見つけて"
223
- "SwiftDataのドキュメントからすべての参照を取得して"
224
- "SwiftDataのプラットフォーム互換性を取得して"
225
- ```
226
-
227
- ### 📋 テクノロジー、更新情報、および概要
228
- ```
229
- "利用可能な機械学習フレームワークには何がある?"
230
- "どのテクノロジーがベータ版ですか?"
231
- "SwiftUIの新機能は何?"
232
- "Xcodeのリリースノートを表示して"
233
- "データ管理テクノロジーの概要を取得して"
234
- ```
235
-
236
- ### 💻 サンプルコード
237
- ```
238
- "SwiftUIのサンプルコードプロジェクトを表示して"
239
- "機械学習のサンプルコードを探して"
240
- "Food Truckのサンプルを取得して"
241
- ```
242
-
243
- ### 🎥 WWDC
244
- ```
245
- "SwiftUIに関するWWDCビデオを検索して"
246
- "機械学習に関するWWDCセッションを探して"
247
- "WWDC 2026のビデオを見せて"
248
- "WWDCのトランスクリプトでasync/awaitを検索して"
249
- "WWDC23のMeet SwiftDataのトランスクリプトを表示して"
250
- "SwiftDataを使用しているWWDCセッションのコード例を取得して"
251
- "WWDC23のMeet SwiftDataに関連するセッションを探して"
252
- "すべてのWWDCトピックを一覧表示して"
253
- ```
254
-
255
- ## 🛠️ 利用可能なツール
256
-
257
- | ツール | 返り値 |
258
- |------|---------|
259
- | `search_apple_docs` | タイトル、フレームワーク、種類、1行の要約を含むリンク形式の Apple 検索結果(ドキュメント、デザイン、サンプルコード、App Store Connect ヘルプ、WWDC セッションに分類) |
260
- | `search_docs_map` 🆕 | 大文字・小文字を問わずタイトルに指定の文字列を含むページ(最短タイトル順、オプションで指定テクノロジー内への絞り込み可能)。種類、テクノロジー、リンクを含みます |
261
- | `get_apple_doc_content` | JSON からレンダリングされた Markdown 形式のドキュメントページ(要約、宣言、概要、コード、各メンバーの宣言と要約を含む Topics、Relationships、See Also、提供状況)。URL、パラメータ、ボディ、レスポンスを含む Web サービスエンドポイント。各ステップのコードとプロジェクトファイルを含むチュートリアル。サンプルのダウンロードリンク。App Store Connect ヘルプ記事 |
262
- | `search_framework_symbols` | ワイルドカードに一致する名前を持つ、指定したフレームワークのシンボル(種類およびリンクを含む) |
263
- | `get_related_apis` | 指定した API の継承元および準拠プロトコルに加え、See Also および各 Topics グループの先頭 API(それぞれ要約付き) |
264
- | `find_similar_apis` | 指定した API の代替手段(非推奨 API の場合は非推奨ノートに記載された代替先を優先し、次に See Also および Topics を表示) |
265
- | `resolve_references_batch` | ドキュメントページがリンクしているページ一覧(タイトル、種類、要約、シンボルの場合はその宣言を含む) |
266
- | `get_platform_compatibility` | 各プラットフォームで指定した API が導入および非推奨となった OS バージョン(Apple の非推奨ノート付き) |
267
- | `list_technologies` | カテゴリ別のすべての Apple フレームワークおよびテクノロジーのリンク(ベータ版は明示) |
268
- | `get_documentation_updates` | Apple のリリースノート、フレームワーク更新情報ページ、WWDC の「What's new」ページへのリンク(それぞれ要約付き) |
269
- | `get_technology_overviews` | コレクションごとにグループ化された Apple の Technology Overviews ガイドへのリンク(各コレクションの要約付き) |
270
- | `get_sample_code` | フレームワークごとにグループ化された Apple のサンプルコードプロジェクト(リンクおよび1行の要約付き) |
271
- | `list_wwdc_videos` | 指定した年、トピック、またはタイトル単語に該当する WWDC セッション(リンク、トピック、トランスクリプトおよびコードの有無を含む) |
272
- | `search_wwdc_content` | トランスクリプトまたはコードに指定した単語が含まれる WWDC セッション(一致箇所を最大3件含む) |
273
- | `get_wwdc_video` | リンクとダウンロード、完全なトランスクリプト、タイムスタンプ付きコード例、関連セッションを含む単一の WWDC セッション |
274
- | `get_wwdc_code_examples` | コード内で特定の型やフレームワークに言及している WWDC コード例(セッション名および登場時間付き) |
275
- | `browse_wwdc_topics` | セッション数を含む WWDC トピック一覧、または指定したトピックのセッション一覧 |
276
- | `find_related_wwdc_videos` | 指定した WWDC セッションに関連するセッション(Apple のおすすめを優先し、次いでトピックを共有するセッション) |
277
- | `list_wwdc_years` | 各年のセッション数を含む WWDC の開催年一覧 |
278
-
279
- ドキュメント関連ツールは developer.apple.com を取得します。WWDC ツールはバンドルされたデータを読み込み、`search_docs_map` はドキュメントマップを読み込みます(どちらもネットワークリクエストは行いません)。
280
-
281
- ## 🏗️ アーキテクチャ
282
-
283
- ```
284
- Apple-Docs-2.0-MCP/
285
- ├── src/
286
- │ ├── index.ts # MCP server and its search guide
287
- │ ├── tools/
288
- │ │ ├── handlers.ts # Tool registration
289
- │ │ ├── search-api.ts # Apple's search API
290
- │ │ ├── search-docs-map.ts # Docs map search
291
- │ │ ├── doc-fetcher.ts # Pages from Swift-DocC JSON
292
- │ │ ├── doc-formatter.ts # Markdown rendering
293
- │ │ ├── help-pages.ts # App Store Connect Help (jsdom, turndown)
294
- │ │ ├── list-technologies.ts # Technology catalog
295
- │ │ ├── search-framework-symbols.ts
296
- │ │ ├── get-related-apis.ts, find-similar-apis.ts, resolve-references-batch.ts, get-platform-compatibility.ts
297
- │ │ ├── get-documentation-updates.ts, get-technology-overviews.ts, get-sample-code.ts
298
- │ │ └── wwdc/ # WWDC tools and the session, topic and year extractors
299
- │ ├── types/ # Generated from Swift-DocC's specs and captured responses
300
- │ └── utils/ # HTTP client, caches, constants, URL conversion
301
- ├── scripts/
302
- │ ├── add-wwdc-year.ts # Adds or refreshes a WWDC year in data/wwdc
303
- │ ├── build-docs-map.ts # Builds api-map/apple-docs-map.tsv
304
- │ └── capture-responses.ts # Captures responses to type them
305
- ├── data/wwdc/ # The bundled WWDC sessions
306
- ├── api-map/ # The docs map, Apple's search API (OpenAPI) and captured responses
307
- └── tests/ # Vitest
308
- ```
309
-
310
- ### 🌐 リクエストとキャッシュ
311
-
312
- すべてのリクエストは単一の HTTP クライアントを経由します: Safari のヘッダーを付与した `fetch` を使用し、最大で毎分 100 リクエストに制限され、検索は 15 秒間隔で 1 つずつ実行されます(Apple は頻度が高すぎるリクエストに対して結果なしを返すため)。各試行のタイムアウトは 2 分で、ネットワークエラー、タイムアウト、5xx レスポンスに対して最大 3 回のバックオフ付き再試行を行います。
313
-
314
- | コンテンツ | キャッシュ期間 |
315
- |---------|------------|
316
- | ドキュメントページ | 30 分 |
317
- | フレームワークインデックス | 1 時間 |
318
- | テクノロジー、サンプルコード、テクノロジー概要 | 2 時間 |
319
- | ドキュメント更新情報 | 30 分 |
320
- | 検索結果 | キャッシュなし |
321
-
322
- ## 📦 WWDC データ
323
-
324
- WWDC セッションは `data/wwdc/` にバンドルされているため、WWDC ツールはオフラインかつレート制限なしで動作します:
325
-
326
- - 📹 2014 年から 2026 年までの **1,700 セッション**(1,416 件にトランスクリプト、715 件にコード例付き)
327
- - 🏷️ Apple のトピックページから抽出された **19 のトピック**
328
- - 💾 **41 MB** の JSON
329
-
330
- `npx tsx scripts/add-wwdc-year.ts <year>` を実行すると、Apple のページから年次データを追加または更新できます。Apple が掲載を取り下げたセッションの保存データも保持されます。
331
-
332
- ## 🗺️ ドキュメントマップ
333
-
334
- `api-map/apple-docs-map.tsv` には、Apple のナビゲーターインデックス、Human Interface Guidelines、および App Store Connect ヘルプのナビゲーションから取得した 336,629 ページ(URL、タイトル、種類、テクノロジー、グループ、ツリー)が記載されています。`search_docs_map` は呼び出しのたびにこれを読み込みます。`npx tsx scripts/build-docs-map.ts api-map/apple-docs-map.tsv` を実行すると、約 10 分で再構築できます。
335
-
336
- ## 🧪 開発
337
-
338
- ```bash
339
- git clone https://github.com/mishafyi/Apple-Docs-2.0-MCP.git
340
- cd Apple-Docs-2.0-MCP
341
- npx pnpm@10 install
342
- npx pnpm@10 run build # tsc into dist/, then the WWDC data into dist/data/
343
-
344
- # Run your build in Claude Code in place of the npm package
345
- claude mcp add apple-docs -- node "$PWD/dist/index.js"
346
-
347
- # Checks: types (server and scripts), lint and tests
348
- npx tsc --noEmit && npx tsc -p scripts && npx eslint src scripts && npx vitest run
349
-
350
- # Call the built server without an MCP client
351
- npx -y @modelcontextprotocol/inspector --cli node dist/index.js --method tools/call \
352
- --tool-name search_apple_docs --tool-args-json '{"query":"tab bars","type":"design"}'
353
-
354
- # Regenerate the types of Apple's JSON
355
- npm run types:docc # from Swift-DocC's RenderNode and RenderIndex specs
356
- npm run types:captured # from captured responses (quicktype)
357
- ```
358
-
359
- ビルド後、MCP クライアントでサーバーを再起動または再接続してください。
360
-
361
- ## 🙏 クレジット
362
-
363
- Apple Docs 2.0 MCP は、[kimsungwhee](https://github.com/kimsungwhee) 氏による [Apple Docs MCP](https://github.com/kimsungwhee/apple-docs-mcp) をベースにしており、同プロジェクトのツール、WWDC データ、および構造から発展しました。
364
-
365
- ## 🤝 コントリビューション
366
-
367
- コントリビューションを歓迎します:
368
-
369
- 1. リポジトリを **フォーク (Fork)** する
370
- 2. フィーチャーブランチを **作成 (Create)** する: `git checkout -b feature/amazing-feature`
371
- 3. 変更を **コミット (Commit)** する: `git commit -m 'Add amazing feature'`
372
- 4. ブランチに **プッシュ (Push)** する: `git push origin feature/amazing-feature`
373
- 5. プルリクエストを **作成 (Open)** する
374
-
375
- ## 📄 ライセンス
376
-
377
- オリジナルプロジェクトと同様に MIT ライセンスが適用されます: [LICENSE](LICENSE) を参照してください。
378
-
379
- ## ⚠️ 免責事項
380
-
381
- 本プロジェクトは Apple Inc. と提携しておらず、また同社による承認を受けたものでもありません。教育および開発目的のために、公開されている Apple の開発者向けドキュメントを読み込んでいます。
package/README.ko.md DELETED
@@ -1,381 +0,0 @@
1
- ![Apple Docs 2.0 MCP: doc search optimized for agents, a complete index of 336,629 pages, and Sample Code with WWDC included](https://cdn.jsdelivr.net/gh/mishafyi/Apple-Docs-2.0-MCP@main/assets/banner.png)
2
-
3
- # Apple Docs 2.0 MCP - Apple 개발자 문서 Model Context Protocol 서버
4
-
5
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow)](https://opensource.org/licenses/MIT)
6
- [![npm](https://img.shields.io/npm/v/apple-docs-2.0-mcp)](https://www.npmjs.com/package/apple-docs-2.0-mcp)
7
- [![Fork of Apple Docs MCP](https://img.shields.io/badge/fork%20of-kimsungwhee%2Fapple--docs--mcp-blue)](https://github.com/kimsungwhee/apple-docs-mcp)
8
-
9
- Model Context Protocol을 통해 AI 어시스턴트에게 Apple 개발자 문서를 제공합니다: Claude, Cursor, VS Code 또는 모든 MCP 클라이언트에서 API 레퍼런스, 아티클, 샘플 코드, 튜토리얼, Human Interface Guidelines, App Store Connect 도움말, 웹 서비스 API(App Store Connect API, App Store Server API 등), 그리고 자막과 코드가 포함된 1,700개의 WWDC 세션을 활용할 수 있습니다.
10
-
11
- Apple Docs 2.0 MCP는 [kimsungwhee](https://github.com/kimsungwhee)의 [Apple Docs MCP](https://github.com/kimsungwhee/apple-docs-mcp)를 포크한 프로젝트로, 기능 추가, 버그 수정 및 새로운 도구를 통해 개선되었습니다.
12
-
13
- [English](README.md) | [日本語](README.ja.md) | **한국어** | [简体中文](README.zh-CN.md)
14
-
15
- ## 🆕 2.0의 새로운 기능
16
-
17
- Apple Docs 2.0 MCP는 Apple Docs MCP 1.0.26의 모든 도구를 유지하면서 동작이 중단되었거나 불완전한 결과를 반환하던 문제를 해결하여, 어시스턴트가 추측 대신 Apple의 공식 문서를 바탕으로 답변하도록 합니다.
18
-
19
- ### 🔍 제대로 된 결과를 반환하는 검색
20
-
21
- `search_apple_docs`가 수정되었습니다: 이제 Apple 웹사이트와 동일한 검색 서비스를 사용하여, 개발자가 developer.apple.com에서 보는 것과 같은 결과(API 레퍼런스, 아티클, 샘플 코드, 디자인 가이드라인, App Store Connect 도움말, WWDC 비디오)를 어시스턴트가 가져옵니다. 원본에서는 Apple이 검색 페이지를 변경한 이후 검색 결과가 비어 있었습니다.
22
-
23
- API, 디자인 가이드라인 또는 App Store 절차에 대해 질문하면 어시스턴트가 먼저 검색한 후 찾은 페이지를 읽습니다.
24
-
25
- ### 🗺️ 이름으로 모든 페이지 조회
26
-
27
- 새로운 도구인 `search_docs_map`은 336,629개 페이지 중 원하는 페이지를 전체 이름 또는 일부 이름으로 오프라인에서 찾아줍니다:
28
-
29
- - API 심볼: 타입, 메서드, 프로퍼티, enum case, 매크로
30
- - 아티클, 튜토리얼 및 샘플 코드
31
- - Info.plist 및 entitlement 키
32
- - App Store Connect API와 같은 웹 서비스 엔드포인트
33
- - Human Interface Guidelines 및 App Store Connect 도움말 페이지
34
-
35
- 코드나 에러 메시지를 통해 이미 이름을 알고 있을 때, 해당 페이지를 직접 열어보는 데 사용하세요.
36
-
37
- ### 📄 완전한 문서 페이지
38
-
39
- Apple 사이트와 마찬가지로 페이지가 온전하게 제공됩니다: 단순한 `view`가 아닌 전체 시그니처(`var view: UIView!`)가 포함된 모든 메서드 및 프로퍼티, 해당 타입이 상속받거나 준수하는 대상, 관련 API, 지원 OS 버전이 모두 포함됩니다. 또한 2.0은 Human Interface Guidelines, 튜토리얼, App Store Connect 도움말, 그리고 파라미터 및 응답이 포함된 App Store Connect API 엔드포인트도 읽어옵니다.
40
-
41
- 어떠한 API, 가이드라인 또는 App Store Connect 주제에 대해 질문하더라도 어시스턴트가 전체 페이지를 먼저 읽은 후 답변하거나 코드를 작성합니다.
42
-
43
- ### 🎥 코드가 포함된 WWDC 2014–2026
44
-
45
- WWDC26을 포함한 1,700개 세션이 내장되어 있어 오프라인에서 작동합니다: 1,416개 세션의 자막과 715개 세션의 코드 샘플이 제공되며, 각 샘플에는 영상에 나타나는 시점이 표시되어 있습니다. 세션들은 Apple 웹사이트와 동일한 주제별로 분류되어 있습니다.
46
-
47
- 새로운 API의 동작 방식을 물어보면, 어시스턴트가 해당 API를 소개한 WWDC 세션과 코드를 함께 인용할 수 있습니다.
48
-
49
- ### 📋 완전한 프레임워크 목록
50
-
51
- 원본에서는 기술 목록이 200개 항목 이후 끊겨 전체 카테고리(Graphics and Games, Media, System, Web)가 표시되지 않았으며, 심볼 검색 시 깨진 링크의 제목들이 뒤섞여 있었습니다. 2.0은 모든 항목을 나열하고 베타 상태인 프레임워크를 표시하며 주제별 프레임워크 검색을 지원합니다: "Machine learning"을 검색하면 Core ML, Create ML, Foundation Models, Vision 등이 반환됩니다.
52
-
53
- 머신러닝이나 오디오 같은 특정 작업에 적합한 프레임워크를 물어보면 어시스턴트가 전체 목록을 비교해 줍니다.
54
-
55
- ### 🛠️ 지속적인 동작을 위한 설계
56
-
57
- 최신 의존성 유지, 일반 브라우저처럼 보이면서 순서를 기다리는 요청 방식(Apple은 요청이 너무 빠르면 빈 검색 결과를 반환함), 요청 실패 시 자동 재시도, 그리고 255개의 자동화된 테스트를 갖추고 있습니다. 원본 README의 63개 사용 예시가 모두 오류 없이 실행됩니다.
58
-
59
- 추가로 설정할 사항이 없습니다: API 키나 계정이 필요하지 않습니다.
60
-
61
- ## ✨ 기능
62
-
63
- - 🔍 **검색**: Apple 문서, 디자인 가이드라인, 샘플 코드, App Store Connect 도움말, WWDC 세션을 한 번에 검색하거나 개별 항목만 검색
64
- - 🗺️ **문서 맵**: 네트워크 요청 없이 제목(메서드나 프로퍼티 이름 포함)으로 모든 페이지 검색
65
- - 📚 **문서 페이지**: Swift 및 Objective-C API, 아티클, 튜토리얼, 웹 서비스 레퍼런스를 Markdown으로 제공
66
- - 🎨 **Human Interface Guidelines**: 모든 HIG 페이지 검색 및 열람 가능
67
- - 🏪 **App Store Connect 도움말**: 제품 페이지 필드, 심사, TestFlight, 가격 정책
68
- - 🔧 **프레임워크 심볼**: 와일드카드를 사용해 프레임워크의 클래스, 구조체, 프로토콜 및 멤버 탐색
69
- - 🔗 **API 관계**: 관련, 유사, 참조된 API 및 deprecated된 항목의 대체 API 확인
70
- - 📊 **플랫폼 호환성**: 각 플랫폼에서 API가 도입 및 deprecated된 버전 확인
71
- - 📋 **기술 카탈로그**: 카테고리별 모든 Apple 프레임워크 및 기술 목록 제공, 베타 버전 표시
72
- - 📰 **문서 업데이트**: 릴리스 노트, 프레임워크 업데이트 및 WWDC "새로운 기능" 페이지
73
- - 🎯 **기술 개요**: 앱 디자인, 게임, AI 및 머신러닝, 데이터 등에 관한 Apple의 가이드
74
- - 💻 **샘플 코드**: 요약 및 다운로드 링크가 포함된 Apple의 샘플 프로젝트
75
- - 🎥 **WWDC 라이브러리**: 자막, 시간 표시가 포함된 코드 예제, 리소스 및 관련 세션이 포함된 2014년부터 2026년까지의 1,700개 세션을 오프라인으로 제공
76
-
77
- ## 🚀 빠른 시작
78
-
79
- ### Claude Desktop (권장)
80
-
81
- Claude Desktop 구성 파일에 다음을 추가하세요:
82
-
83
- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
84
- **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
85
-
86
- ```json
87
- {
88
- "mcpServers": {
89
- "apple-docs": {
90
- "command": "npx",
91
- "args": ["-y", "apple-docs-2.0-mcp"]
92
- }
93
- }
94
- }
95
- ```
96
-
97
- > **참고**: 이전 버전이 사용되는 문제가 발생하면 `@latest`를 추가하여 최신 버전을 강제합니다:
98
- > ```json
99
- > "args": ["-y", "apple-docs-2.0-mcp@latest"]
100
- > ```
101
-
102
- Claude Desktop을 재시작하고 Apple API에 대해 질문해보세요!
103
-
104
- ### Claude Code
105
-
106
- ```bash
107
- claude mcp add apple-docs -- npx -y apple-docs-2.0-mcp
108
- ```
109
-
110
- ## 📦 설치
111
-
112
- <details>
113
- <summary><strong>📱 Claude Code</strong></summary>
114
-
115
- ```bash
116
- claude mcp add apple-docs -- npx -y apple-docs-2.0-mcp
117
- ```
118
-
119
- [📖 Claude Code MCP docs](https://docs.anthropic.com/en/docs/claude-code/mcp)
120
-
121
- </details>
122
-
123
- <details>
124
- <summary><strong>🖱️ Cursor</strong></summary>
125
-
126
- `~/.cursor/mcp.json`에 추가하세요:
127
-
128
- ```json
129
- {
130
- "mcpServers": {
131
- "apple-docs": {
132
- "command": "npx",
133
- "args": ["-y", "apple-docs-2.0-mcp"]
134
- }
135
- }
136
- }
137
- ```
138
-
139
- [📖 Cursor MCP docs](https://docs.cursor.com/context/mcp)
140
-
141
- </details>
142
-
143
- <details>
144
- <summary><strong>🔷 VS Code</strong></summary>
145
-
146
- VS Code의 이식 가능한 형식인 워크스페이스 루트의 `.mcp.json`에 추가하세요:
147
-
148
- ```json
149
- {
150
- "mcpServers": {
151
- "apple-docs": {
152
- "command": "npx",
153
- "args": ["-y", "apple-docs-2.0-mcp"]
154
- }
155
- }
156
- }
157
- ```
158
-
159
- [📖 VS Code MCP docs](https://code.visualstudio.com/docs/copilot/chat/mcp-servers)
160
-
161
- </details>
162
-
163
- <details>
164
- <summary><strong>⚡ Zed</strong></summary>
165
-
166
- Zed의 `settings.json`에 추가하세요:
167
-
168
- ```json
169
- {
170
- "context_servers": {
171
- "apple-docs": {
172
- "command": "npx",
173
- "args": ["-y", "apple-docs-2.0-mcp"],
174
- "env": {}
175
- }
176
- }
177
- }
178
- ```
179
-
180
- [📖 Zed MCP docs](https://zed.dev/docs/ai/mcp)
181
-
182
- </details>
183
-
184
- ## 💬 사용 예시
185
-
186
- ### 🔍 검색
187
- ```
188
- "SwiftUI 애니메이션 검색해 줘"
189
- "withAnimation API 문서 찾아줘"
190
- "Human Interface Guidelines에서 탭 바 검색해 줘"
191
- "App Store Connect 도움말에서 TestFlight 외부 테스터 검색해 줘"
192
- "Core Data 샘플 코드 찾아줘"
193
- ```
194
-
195
- ### 🗺️ 문서 맵
196
- ```
197
- "accessibilityInputLabels 페이지 찾아줘"
198
- "제목에 gauge가 포함된 SwiftUI 페이지는 어떤 게 있어?"
199
- "자동 갱신 구독을 생성하는 App Store Connect API 엔드포인트 찾아줘"
200
- ```
201
-
202
- ### 📚 문서 확인
203
- ```
204
- "SwiftUI 프레임워크에 대한 자세한 정보 알려줘"
205
- "withAnimation API와 관련 API들을 보여줘"
206
- "NSManagedObjectContext 문서 보여줘"
207
- "탭 바에 대한 Human Interface Guidelines 페이지 읽어줘"
208
- "SwiftUI 튜토리얼 진행 단계 보여줘"
209
- ```
210
-
211
- ### 🔧 프레임워크 탐색
212
- ```
213
- "SwiftUI 뷰들 보여줘"
214
- "모든 UIKit 델리게이트 프로토콜 나열해 줘"
215
- "WeatherKit API 계층 구조 가져와 줘"
216
- "Core ML 모델 로딩 API 살펴봐 줘"
217
- ```
218
-
219
- ### 🔗 API 탐색
220
- ```
221
- "UIViewController 관련 API 찾아줘"
222
- "UIAlertView를 대체할 수 있는 API 찾아줘"
223
- "SwiftData 문서의 모든 참조 가져와 줘"
224
- "SwiftData의 플랫폼 호환성 정보 가져와 줘"
225
- ```
226
-
227
- ### 📋 기술, 업데이트 및 개요
228
- ```
229
- "사용 가능한 머신러닝 프레임워크는 뭐가 있어?"
230
- "어떤 기술들이 베타 상태야?"
231
- "SwiftUI의 새로운 기능은 뭐야?"
232
- "Xcode 릴리스 노트 보여줘"
233
- "데이터 관리 기술 개요 가져와 줘"
234
- ```
235
-
236
- ### 💻 샘플 코드
237
- ```
238
- "SwiftUI 샘플 코드 프로젝트 보여줘"
239
- "머신러닝 샘플 코드 찾아줘"
240
- "Food Truck 샘플 가져와 줘"
241
- ```
242
-
243
- ### 🎥 WWDC
244
- ```
245
- "SwiftUI 관련 WWDC 비디오 검색해 줘"
246
- "머신러닝 관련 WWDC 세션 찾아줘"
247
- "WWDC 2026 비디오 보여줘"
248
- "WWDC 자막에서 async/await 검색해 줘"
249
- "WWDC23 Meet SwiftData 세션 자막 보여줘"
250
- "SwiftData를 사용하는 WWDC 세션의 코드 예제 가져와 줘"
251
- "WWDC23 Meet SwiftData 관련 세션 찾아줘"
252
- "모든 WWDC 주제 나열해 줘"
253
- ```
254
-
255
- ## 🛠️ 사용 가능한 도구
256
-
257
- | 도구 | 반환 내용 |
258
- |------|---------|
259
- | `search_apple_docs` | 제목, 프레임워크, 타입, 한 줄 요약이 포함된 Apple 검색 결과 링크(문서, 디자인, 샘플 코드, App Store Connect 도움말, WWDC 세션으로 분류) |
260
- | `search_docs_map` 🆕 | 대소문자 구분 없이 텍스트를 제목에 포함하는 페이지(제목이 짧은 순서대로 정렬되며, 특정 기술 내로 한정 가능, 각각의 종류, 기술 및 링크 포함) |
261
- | `get_apple_doc_content` | JSON에서 Markdown으로 렌더링된 단일 문서 페이지: 요약, 선언, 개요, 코드, 각 멤버의 선언 및 요약이 포함된 Topics, Relationships, See Also 및 사용 가능 여부; URL, 파라미터, 바디, 응답이 포함된 웹 서비스 엔드포인트; 각 단계의 코드 및 프로젝트 파일이 포함된 튜토리얼; 샘플의 다운로드; App Store Connect 도움말 아티클 |
262
- | `search_framework_symbols` | 와일드카드와 일치하는 단일 프레임워크의 심볼(각각의 종류 및 링크 포함) |
263
- | `get_related_apis` | 단일 API가 상속받고 준수하는 항목, See Also 및 각 Topics 그룹의 첫 번째 API(각각 요약 포함) |
264
- | `find_similar_apis` | 단일 API의 대안(deprecated된 API의 경우 지원 중단 안내에 명시된 대체 항목이 우선하며, 이후 See Also 및 Topics 제공) |
265
- | `resolve_references_batch` | 단일 문서 페이지가 링크하는 대상 페이지들(각각 제목, 종류, 요약 및 심볼의 경우 선언부 포함) |
266
- | `get_platform_compatibility` | 각 플랫폼에서 단일 API가 도입 및 지원 중단된 OS 버전(Apple의 deprecation 안내 문구 포함) |
267
- | `list_technologies` | 카테고리별 모든 Apple 프레임워크 및 기술 링크(베타 항목 표시) |
268
- | `get_documentation_updates` | Apple 릴리스 노트 링크, 프레임워크 업데이트 페이지, WWDC "새로운 기능" 페이지(각각 요약 포함) |
269
- | `get_technology_overviews` | 컬렉션별로 그룹화된 Apple의 기술 개요 가이드 링크(각 컬렉션의 요약 포함) |
270
- | `get_sample_code` | 프레임워크별로 그룹화된 Apple의 샘플 코드 프로젝트(각각 링크 및 한 줄 요약 포함) |
271
- | `list_wwdc_videos` | 특정 연도, 주제 또는 제목 키워드에 해당하는 WWDC 세션(각각 링크, 주제, 자막 및 코드 유무 포함) |
272
- | `search_wwdc_content` | 자막이나 코드에 해당 단어가 포함된 WWDC 세션(일치하는 구절 최대 3개 포함) |
273
- | `get_wwdc_video` | 단일 WWDC 세션(링크, 다운로드, 전체 자막, 시간 표시 코드 예제 및 관련 세션 포함) |
274
- | `get_wwdc_code_examples` | 코드 내에서 특정 타입이나 프레임워크를 언급하는 WWDC 코드 예제(해당 세션 및 영상 내 등장 시점 포함) |
275
- | `browse_wwdc_topics` | 세션 수가 포함된 WWDC 주제 목록, 또는 특정 주제의 세션들 |
276
- | `find_related_wwdc_videos` | 단일 WWDC 세션과 관련된 세션들(Apple 추천 세션 우선, 이후 동일한 주제를 공유하는 세션) |
277
- | `list_wwdc_years` | 세션 수가 포함된 WWDC 연도 목록 |
278
-
279
- 문서 도구는 developer.apple.com을 조회하며, WWDC 도구는 번들된 데이터를, `search_docs_map`은 문서 맵을 조회하므로 둘 다 네트워크 요청 없이 동작합니다.
280
-
281
- ## 🏗️ 아키텍처
282
-
283
- ```
284
- Apple-Docs-2.0-MCP/
285
- ├── src/
286
- │ ├── index.ts # MCP server and its search guide
287
- │ ├── tools/
288
- │ │ ├── handlers.ts # Tool registration
289
- │ │ ├── search-api.ts # Apple's search API
290
- │ │ ├── search-docs-map.ts # Docs map search
291
- │ │ ├── doc-fetcher.ts # Pages from Swift-DocC JSON
292
- │ │ ├── doc-formatter.ts # Markdown rendering
293
- │ │ ├── help-pages.ts # App Store Connect Help (jsdom, turndown)
294
- │ │ ├── list-technologies.ts # Technology catalog
295
- │ │ ├── search-framework-symbols.ts
296
- │ │ ├── get-related-apis.ts, find-similar-apis.ts, resolve-references-batch.ts, get-platform-compatibility.ts
297
- │ │ ├── get-documentation-updates.ts, get-technology-overviews.ts, get-sample-code.ts
298
- │ │ └── wwdc/ # WWDC tools and the session, topic and year extractors
299
- │ ├── types/ # Generated from Swift-DocC's specs and captured responses
300
- │ └── utils/ # HTTP client, caches, constants, URL conversion
301
- ├── scripts/
302
- │ ├── add-wwdc-year.ts # Adds or refreshes a WWDC year in data/wwdc
303
- │ ├── build-docs-map.ts # Builds api-map/apple-docs-map.tsv
304
- │ └── capture-responses.ts # Captures responses to type them
305
- ├── data/wwdc/ # The bundled WWDC sessions
306
- ├── api-map/ # The docs map, Apple's search API (OpenAPI) and captured responses
307
- └── tests/ # Vitest
308
- ```
309
-
310
- ### 🌐 요청 및 캐싱
311
-
312
- 모든 요청은 단일 HTTP 클라이언트를 거칩니다: Safari 헤더를 사용하는 `fetch`로 분당 최대 100개의 요청을 처리하며, Apple이 너무 빠른 연속 검색에 빈 결과를 반환하므로 검색 요청은 15초 간격으로 하나씩 수행됩니다. 각 시도는 2분의 타임아웃을 가지며, 네트워크 오류, 타임아웃, 5xx 응답 시 최대 3회의 재시도 및 지연 시간을 적용합니다.
313
-
314
- | 콘텐츠 | 캐시 유지 시간 |
315
- |---------|------------|
316
- | 문서 페이지 | 30분 |
317
- | 프레임워크 인덱스 | 1시간 |
318
- | 기술, 샘플 코드, 기술 개요 | 2시간 |
319
- | 문서 업데이트 | 30분 |
320
- | 검색 결과 | 캐시되지 않음 |
321
-
322
- ## 📦 WWDC 데이터
323
-
324
- WWDC 세션은 `data/wwdc/`에 번들로 포함되어 있어, WWDC 도구가 오프라인에서 속도 제한 없이 작동합니다:
325
-
326
- - 📹 **1,700개 세션** (2014년부터 2026년까지, 자막 포함 1,416개 및 코드 예제 포함 715개)
327
- - 🏷️ **19개 주제** (Apple의 주제 페이지 기준)
328
- - 💾 **41 MB** JSON 데이터
329
-
330
- `npx tsx scripts/add-wwdc-year.ts <year>` 명령어로 Apple 페이지에서 특정 연도를 추가하거나 갱신할 수 있습니다. Apple에서 더 이상 제공하지 않는 세션도 기존에 저장된 데이터는 유지됩니다.
331
-
332
- ## 🗺️ 문서 맵
333
-
334
- `api-map/apple-docs-map.tsv`는 Apple의 내비게이터 인덱스, Human Interface Guidelines 및 App Store Connect 도움말의 탐색 구조에서 추출한 336,629개 페이지(URL, 제목, 종류, 기술, 그룹 및 트리)를 나열합니다. `search_docs_map`은 호출될 때마다 이 파일을 읽습니다. `npx tsx scripts/build-docs-map.ts api-map/apple-docs-map.tsv`를 실행하면 약 10분 만에 다시 빌드됩니다.
335
-
336
- ## 🧪 개발
337
-
338
- ```bash
339
- git clone https://github.com/mishafyi/Apple-Docs-2.0-MCP.git
340
- cd Apple-Docs-2.0-MCP
341
- npx pnpm@10 install
342
- npx pnpm@10 run build # tsc into dist/, then the WWDC data into dist/data/
343
-
344
- # Run your build in Claude Code in place of the npm package
345
- claude mcp add apple-docs -- node "$PWD/dist/index.js"
346
-
347
- # Checks: types (server and scripts), lint and tests
348
- npx tsc --noEmit && npx tsc -p scripts && npx eslint src scripts && npx vitest run
349
-
350
- # Call the built server without an MCP client
351
- npx -y @modelcontextprotocol/inspector --cli node dist/index.js --method tools/call \
352
- --tool-name search_apple_docs --tool-args-json '{"query":"tab bars","type":"design"}'
353
-
354
- # Regenerate the types of Apple's JSON
355
- npm run types:docc # from Swift-DocC's RenderNode and RenderIndex specs
356
- npm run types:captured # from captured responses (quicktype)
357
- ```
358
-
359
- 빌드 후에는 MCP 클라이언트에서 서버를 재시작하거나 다시 연결하세요.
360
-
361
- ## 🙏 크레딧
362
-
363
- Apple Docs 2.0 MCP는 [kimsungwhee](https://github.com/kimsungwhee)의 [Apple Docs MCP](https://github.com/kimsungwhee/apple-docs-mcp)를 기반으로 제작되었으며, 도구, WWDC 데이터 및 기본 구조를 이 프로젝트에서 가져왔습니다.
364
-
365
- ## 🤝 기여하기
366
-
367
- 기여는 언제나 환영합니다:
368
-
369
- 1. 저장소를 **Fork**합니다
370
- 2. 기능 브랜치를 **생성**합니다: `git checkout -b feature/amazing-feature`
371
- 3. 변경 사항을 **커밋**합니다: `git commit -m 'Add amazing feature'`
372
- 4. 브랜치에 **푸시**합니다: `git push origin feature/amazing-feature`
373
- 5. Pull Request를 **생성**합니다
374
-
375
- ## 📄 라이선스
376
-
377
- 원본 프로젝트와 마찬가지로 MIT 라이선스가 적용됩니다: [LICENSE](LICENSE)를 참조하세요.
378
-
379
- ## ⚠️ 고지 사항
380
-
381
- 이 프로젝트는 Apple Inc.와 제휴하거나 공식 지원을 받지 않습니다. 교육 및 개발 목적으로 Apple이 공개한 개발자 문서를 읽어옵니다.
package/README.zh-CN.md DELETED
@@ -1,381 +0,0 @@
1
- ![Apple Docs 2.0 MCP: doc search optimized for agents, a complete index of 336,629 pages, and Sample Code with WWDC included](https://cdn.jsdelivr.net/gh/mishafyi/Apple-Docs-2.0-MCP@main/assets/banner.png)
2
-
3
- # Apple Docs 2.0 MCP - Apple 开发者文档 Model Context Protocol 服务器
4
-
5
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow)](https://opensource.org/licenses/MIT)
6
- [![npm](https://img.shields.io/npm/v/apple-docs-2.0-mcp)](https://www.npmjs.com/package/apple-docs-2.0-mcp)
7
- [![Fork of Apple Docs MCP](https://img.shields.io/badge/fork%20of-kimsungwhee%2Fapple--docs--mcp-blue)](https://github.com/kimsungwhee/apple-docs-mcp)
8
-
9
- 通过 Model Context Protocol 为 AI 助手提供 Apple 开发者文档:API 参考、技术文章、示例代码、教程、《人机界面指南》(Human Interface Guidelines)、App Store Connect 帮助、Web 服务 API(App Store Connect API、App Store Server API 等),以及包含文字转写与代码的 1,700 场 WWDC 演讲视频,支持 Claude、Cursor、VS Code 或任何 MCP 客户端。
10
-
11
- Apple Docs 2.0 MCP 是 [kimsungwhee](https://github.com/kimsungwhee) 开发的 [Apple Docs MCP](https://github.com/kimsungwhee/apple-docs-mcp) 的分支项目,通过新增功能、缺陷修复和全新工具进行了全面改进。
12
-
13
- [English](README.md) | [日本語](README.ja.md) | [한국어](README.ko.md) | **简体中文**
14
-
15
- ## 🆕 2.0 版本新特性
16
-
17
- Apple Docs 2.0 MCP 保留了 Apple Docs MCP 1.0.26 的所有工具,并修复了失效或返回不完整内容的问题,让你的助手能够依据 Apple 官方文档进行回答,而非凭空猜测。
18
-
19
- ### 🔍 真正能返回结果的搜索
20
-
21
- `search_apple_docs` 已修复:它现在使用 Apple 官网相同的搜索服务,因此你的助手可以获得与 developer.apple.com 上一致的结果:API 参考、文章、示例代码、设计指南、App Store Connect 帮助以及 WWDC 视频。而在原版中,由于 Apple 改版了搜索页面,搜索结果全部为空。
22
-
23
- 询问有关 API、设计准则或 App Store 流程的问题,助手会先进行搜索,然后阅读检索到的页面。
24
-
25
- ### 🗺️ 按名称查找任意页面
26
-
27
- 全新工具 `search_docs_map` 可在离线状态下按完整名称或部分名称查找 336,629 个页面中的任意页面:
28
-
29
- - API 符号:类型、方法、属性、枚举用例、宏
30
- - 文章、教程和示例代码
31
- - Info.plist 和 entitlement 键
32
- - Web 服务端点,例如 App Store Connect API 的端点
33
- - 《人机界面指南》和 App Store Connect 帮助页面
34
-
35
- 当你在代码或错误信息中已知名称时,可使用它直接打开对应页面。
36
-
37
- ### 📄 完整的文档页面
38
-
39
- 页面完整呈现,效果与 Apple 官网一致:每个方法和属性均附带完整签名(如 `var view: UIView!`,而不仅仅是 `view`)、类型的继承与遵循关系、相关 API,以及支持它的 OS 版本。2.0 还支持阅读《人机界面指南》、教程、App Store Connect 帮助,以及带有参数和响应的 App Store Connect API 端点。
40
-
41
- 询问任何 API、指南或 App Store Connect 主题,助手都会在回答或编写代码前阅读完整页面。
42
-
43
- ### 🎥 WWDC 2014–2026,附带代码
44
-
45
- 内置 1,700 场演讲,包含 WWDC26,且完全支持离线使用:其中 1,416 场配有逐字文本记录,715 场配有代码示例,每个示例均标注了在视频中出现的时间。演讲分类与 Apple 官网保持一致。
46
-
47
- 询问新 API 如何工作,助手可以引用介绍它的 WWDC 演讲内容及代码。
48
-
49
- ### 📋 完整的框架列表
50
-
51
- 原版的技术列表在 200 个条目后便戛然而止,导致整个分类(图形与游戏、媒体、系统、Web)从未显示,且其符号搜索混杂了失效链接的标题。2.0 列出了所有内容,标出处于测试阶段(Beta)的框架,并支持按主题查找框架:搜索“Machine learning”可返回 Core ML、Create ML、Foundation Models、Vision 等。
52
-
53
- 询问哪些框架适合某项任务(如机器学习或音频),助手可对比完整列表。
54
-
55
- ### 🛠️ 为持续稳定运行而构建
56
-
57
- 采用最新的依赖库,请求模拟正常浏览器行为并排队等待(Apple 在请求过快时会返回空搜索结果),请求失败时自动重试,并包含 255 个自动化测试。原版 README 中的全部 63 个使用示例均可无报错运行。
58
-
59
- 无需任何额外配置:无需 API 密钥或账户。
60
-
61
- ## ✨ 功能特性
62
-
63
- - 🔍 **搜索**:一次搜索即可涵盖 Apple 文档、设计指南、示例代码、App Store Connect 帮助和 WWDC 演讲,亦可单独搜索其中一项
64
- - 🗺️ **文档索引图谱**:无需网络请求,即可按标题(甚至方法或属性名)查找任意页面
65
- - 📚 **文档页面**:将 Swift 和 Objective-C API、文章、教程和 Web 服务参考渲染为 Markdown
66
- - 🎨 **人机界面指南**:每一页 HIG 内容均可搜索与阅读
67
- - 🏪 **App Store Connect 帮助**:产品页面字段、审核、TestFlight、定价
68
- - 🔧 **框架符号**:通过通配符浏览框架的类、结构体、协议和成员
69
- - 🔗 **API 关联关系**:相关、相似及被引用的 API,以及已废弃 API 的替代方案
70
- - 📊 **平台兼容性**:各平台上引入和废弃某 API 的系统版本
71
- - 📋 **技术目录**:按类别列出所有 Apple 框架和技术,标注处于 Beta 状态的项目
72
- - 📰 **文档更新**:发行说明、框架更新和 WWDC “新特性”页面
73
- - 🎯 **技术概述**:Apple 关于应用设计、游戏、AI 与机器学习、数据等方面的指南
74
- - 💻 **示例代码**:Apple 示例项目及其摘要和下载链接
75
- - 🎥 **WWDC 资料库**:2014 至 2026 年的 1,700 场演讲,支持离线查看文本记录、时间轴代码示例、相关资源和关联演讲
76
-
77
- ## 🚀 快速入门
78
-
79
- ### Claude Desktop(推荐)
80
-
81
- 将此配置添加到你的 Claude Desktop 配置文件中:
82
-
83
- **macOS**:`~/Library/Application Support/Claude/claude_desktop_config.json`
84
- **Windows**:`%APPDATA%\Claude\claude_desktop_config.json`
85
-
86
- ```json
87
- {
88
- "mcpServers": {
89
- "apple-docs": {
90
- "command": "npx",
91
- "args": ["-y", "apple-docs-2.0-mcp"]
92
- }
93
- }
94
- }
95
- ```
96
-
97
- > **注意**:如果遇到使用旧版本的问题,添加 `@latest` 以强制使用最新版本:
98
- > ```json
99
- > "args": ["-y", "apple-docs-2.0-mcp@latest"]
100
- > ```
101
-
102
- 重启 Claude Desktop 并开始询问 Apple API!
103
-
104
- ### Claude Code
105
-
106
- ```bash
107
- claude mcp add apple-docs -- npx -y apple-docs-2.0-mcp
108
- ```
109
-
110
- ## 📦 安装说明
111
-
112
- <details>
113
- <summary><strong>📱 Claude Code</strong></summary>
114
-
115
- ```bash
116
- claude mcp add apple-docs -- npx -y apple-docs-2.0-mcp
117
- ```
118
-
119
- [📖 Claude Code MCP 文档](https://docs.anthropic.com/en/docs/claude-code/mcp)
120
-
121
- </details>
122
-
123
- <details>
124
- <summary><strong>🖱️ Cursor</strong></summary>
125
-
126
- 添加到 `~/.cursor/mcp.json`:
127
-
128
- ```json
129
- {
130
- "mcpServers": {
131
- "apple-docs": {
132
- "command": "npx",
133
- "args": ["-y", "apple-docs-2.0-mcp"]
134
- }
135
- }
136
- }
137
- ```
138
-
139
- [📖 Cursor MCP 文档](https://docs.cursor.com/context/mcp)
140
-
141
- </details>
142
-
143
- <details>
144
- <summary><strong>🔷 VS Code</strong></summary>
145
-
146
- 添加到工作区根目录下的 `.mcp.json`(VS Code 的便携配置格式):
147
-
148
- ```json
149
- {
150
- "mcpServers": {
151
- "apple-docs": {
152
- "command": "npx",
153
- "args": ["-y", "apple-docs-2.0-mcp"]
154
- }
155
- }
156
- }
157
- ```
158
-
159
- [📖 VS Code MCP 文档](https://code.visualstudio.com/docs/copilot/chat/mcp-servers)
160
-
161
- </details>
162
-
163
- <details>
164
- <summary><strong>⚡ Zed</strong></summary>
165
-
166
- 添加到你的 Zed `settings.json`:
167
-
168
- ```json
169
- {
170
- "context_servers": {
171
- "apple-docs": {
172
- "command": "npx",
173
- "args": ["-y", "apple-docs-2.0-mcp"],
174
- "env": {}
175
- }
176
- }
177
- }
178
- ```
179
-
180
- [📖 Zed MCP 文档](https://zed.dev/docs/ai/mcp)
181
-
182
- </details>
183
-
184
- ## 💬 使用示例
185
-
186
- ### 🔍 搜索
187
- ```
188
- "搜索 SwiftUI 动画"
189
- "查找 withAnimation API 文档"
190
- "在《人机界面指南》中搜索标签栏(tab bars)"
191
- "在 App Store Connect 帮助中搜索 TestFlight 外部测试员"
192
- "查找 Core Data 的示例代码"
193
- ```
194
-
195
- ### 🗺️ 文档索引图谱
196
- ```
197
- "查找 accessibilityInputLabels 的页面"
198
- "哪些 SwiftUI 页面的标题中包含 gauge?"
199
- "查找用于创建自动续期订阅的 App Store Connect API 端点"
200
- ```
201
-
202
- ### 📚 访问文档
203
- ```
204
- "获取关于 SwiftUI 框架的详细信息"
205
- "向我展示 withAnimation API 及其相关 API"
206
- "向我展示 NSManagedObjectContext 文档"
207
- "阅读《人机界面指南》中关于标签栏的页面"
208
- "展示 SwiftUI 教程的步骤"
209
- ```
210
-
211
- ### 🔧 探索框架
212
- ```
213
- "向我展示 SwiftUI 视图"
214
- "列出所有 UIKit 委托(delegate)协议"
215
- "获取 WeatherKit API 层级结构"
216
- "探索 Core ML 模型加载 API"
217
- ```
218
-
219
- ### 🔗 API 发现
220
- ```
221
- "查找与 UIViewController 相关的 API"
222
- "发现 UIAlertView 的替代方案"
223
- "获取 SwiftData 文档中的所有参考引用"
224
- "获取 SwiftData 的平台兼容性信息"
225
- ```
226
-
227
- ### 📋 技术、更新与概述
228
- ```
229
- "有哪些可用的机器学习框架?"
230
- "哪些技术目前处于 beta 阶段?"
231
- "SwiftUI 有哪些新特性?"
232
- "向我展示 Xcode 的发行说明"
233
- "获取数据管理技术概述"
234
- ```
235
-
236
- ### 💻 示例代码
237
- ```
238
- "展示 SwiftUI 示例代码项目"
239
- "查找机器学习的示例代码"
240
- "获取 Food Truck 示例"
241
- ```
242
-
243
- ### 🎥 WWDC
244
- ```
245
- "搜索关于 SwiftUI 的 WWDC 视频"
246
- "查找关于机器学习的 WWDC 演讲"
247
- "向我展示 WWDC 2026 视频"
248
- "在 WWDC 文本记录中搜索 async/await"
249
- "向我展示 WWDC23 Meet SwiftData 的文本记录"
250
- "从使用 SwiftData 的 WWDC 演讲中获取代码示例"
251
- "查找与 WWDC23 Meet SwiftData 相关的演讲"
252
- "列出所有 WWDC 主题"
253
- ```
254
-
255
- ## 🛠️ 可用工具
256
-
257
- | 工具 | 返回内容 |
258
- |------|---------|
259
- | `search_apple_docs` | Apple 搜索结果链接,均附带标题、框架、类型和单行摘要,并分组为文档、设计、示例代码、App Store Connect 帮助以及 WWDC 演讲 |
260
- | `search_docs_map` 🆕 | 标题包含指定文本的页面(不区分大小写,短标题优先,可限定在指定技术范围内),均附带其类别、技术和链接 |
261
- | `get_apple_doc_content` | 将单一文档页面从其 JSON 渲染为 Markdown:包含摘要、声明、概述、代码、附带各成员声明及摘要的主题(Topics)、关联关系(Relationships)、参见(See Also)和可用性;或包含 URL、参数、请求体和响应的 Web 服务端点;或包含各步骤代码及项目文件的教程;或示例的下载链接;或 App Store Connect 帮助文章 |
262
- | `search_framework_symbols` | 某个框架中名称与通配符匹配的符号,附带类别和链接 |
263
- | `get_related_apis` | 某个 API 的继承与遵循关系,外加其 See Also 和各个 Topics 组的首批 API,均附带摘要 |
264
- | `find_similar_apis` | 某个 API 的替代方案,对于已废弃的 API,优先列出其废弃声明中提及的替代项,随后列出其 See Also 和 Topics |
265
- | `resolve_references_batch` | 某个文档页面所链接到的页面,附带标题、类别、摘要,若为符号则附带其声明 |
266
- | `get_platform_compatibility` | 某个 API 在各平台上引入及废弃的 OS 版本,包含 Apple 的废弃说明 |
267
- | `list_technologies` | 按类别列出所有 Apple 框架和技术及其链接,标注处于 Beta 状态的项目 |
268
- | `get_documentation_updates` | 指向 Apple 发行说明、框架更新页面及 WWDC “新特性”页面的链接,附带摘要 |
269
- | `get_technology_overviews` | 指向 Apple 技术概述(Technology Overviews)指南的链接,按合集分组并附带每个合集的摘要 |
270
- | `get_sample_code` | Apple 的示例代码项目,按框架分组,附带链接和单行摘要 |
271
- | `list_wwdc_videos` | 按年份、主题或标题关键词筛选的 WWDC 演讲,附带链接、主题以及是否包含文本记录和代码 |
272
- | `search_wwdc_content` | 文本记录或代码中包含指定词语的 WWDC 演讲,每个演讲附带最多三个匹配片段 |
273
- | `get_wwdc_video` | 单场 WWDC 演讲,附带链接与下载资源、完整文本记录、带时间轴的代码示例以及相关演讲 |
274
- | `get_wwdc_code_examples` | 代码中提及某类型或框架的 WWDC 代码示例,附带所属演讲和在视频中出现的时间 |
275
- | `browse_wwdc_topics` | WWDC 主题及其演讲数量,或某个主题下的所有演讲 |
276
- | `find_related_wwdc_videos` | 与某场 WWDC 演讲相关的演讲,优先呈现 Apple 官方精选,其次为具有相同主题的演讲 |
277
- | `list_wwdc_years` | WWDC 各年份及其演讲数量 |
278
-
279
- 文档工具从 developer.apple.com 获取数据;WWDC 工具读取内置数据,`search_docs_map` 读取文档索引图谱,两者均无需发起网络请求。
280
-
281
- ## 🏗️ 架构
282
-
283
- ```
284
- Apple-Docs-2.0-MCP/
285
- ├── src/
286
- │ ├── index.ts # MCP server and its search guide
287
- │ ├── tools/
288
- │ │ ├── handlers.ts # Tool registration
289
- │ │ ├── search-api.ts # Apple's search API
290
- │ │ ├── search-docs-map.ts # Docs map search
291
- │ │ ├── doc-fetcher.ts # Pages from Swift-DocC JSON
292
- │ │ ├── doc-formatter.ts # Markdown rendering
293
- │ │ ├── help-pages.ts # App Store Connect Help (jsdom, turndown)
294
- │ │ ├── list-technologies.ts # Technology catalog
295
- │ │ ├── search-framework-symbols.ts
296
- │ │ ├── get-related-apis.ts, find-similar-apis.ts, resolve-references-batch.ts, get-platform-compatibility.ts
297
- │ │ ├── get-documentation-updates.ts, get-technology-overviews.ts, get-sample-code.ts
298
- │ │ └── wwdc/ # WWDC tools and the session, topic and year extractors
299
- │ ├── types/ # Generated from Swift-DocC's specs and captured responses
300
- │ └── utils/ # HTTP client, caches, constants, URL conversion
301
- ├── scripts/
302
- │ ├── add-wwdc-year.ts # Adds or refreshes a WWDC year in data/wwdc
303
- │ ├── build-docs-map.ts # Builds api-map/apple-docs-map.tsv
304
- │ └── capture-responses.ts # Captures responses to type them
305
- ├── data/wwdc/ # The bundled WWDC sessions
306
- ├── api-map/ # The docs map, Apple's search API (OpenAPI) and captured responses
307
- └── tests/ # Vitest
308
- ```
309
-
310
- ### 🌐 请求与缓存
311
-
312
- 所有请求均通过统一的 HTTP 客户端发出:采用带有 Safari 请求头的 `fetch`,限制每分钟最多 100 次请求;搜索请求逐个执行,间隔 15 秒,以防因 Apple 对过快请求返回空结果。每次尝试设置 2 分钟超时,遇网络错误、超时或 5xx 响应时最多重试 3 次并执行退避重试。
313
-
314
- | 内容 | 缓存时间 |
315
- |------|------------|
316
- | 文档页面 | 30 分钟 |
317
- | 框架索引 | 1 小时 |
318
- | 技术、示例代码、技术概述 | 2 小时 |
319
- | 文档更新 | 30 分钟 |
320
- | 搜索 | 不缓存 |
321
-
322
- ## 📦 WWDC 数据
323
-
324
- WWDC 演讲数据打包在 `data/wwdc/` 目录下,因此 WWDC 工具可离线工作且不受速率限制:
325
-
326
- - 📹 **1,700 场演讲**,涵盖 2014 至 2026 年,其中 1,416 场配有文本记录,715 场配有代码示例
327
- - 🏷️ **19 个主题**,提取自 Apple 主题页面
328
- - 💾 **41 MB** JSON 数据
329
-
330
- 运行 `npx tsx scripts/add-wwdc-year.ts <year>` 可从 Apple 页面添加或刷新某一年份的数据;Apple 不再列出的演讲仍会保留其已存储的数据。
331
-
332
- ## 🗺️ 文档索引图谱
333
-
334
- `api-map/apple-docs-map.tsv` 收录了来自 Apple 导航索引、《人机界面指南》以及 App Store Connect 帮助导航的 336,629 个页面(包含 URL、标题、类别、技术、分组和目录树)。`search_docs_map` 在每次调用时读取该文件。运行 `npx tsx scripts/build-docs-map.ts api-map/apple-docs-map.tsv` 可重新构建该文件,耗时约 10 分钟。
335
-
336
- ## 🧪 开发
337
-
338
- ```bash
339
- git clone https://github.com/mishafyi/Apple-Docs-2.0-MCP.git
340
- cd Apple-Docs-2.0-MCP
341
- npx pnpm@10 install
342
- npx pnpm@10 run build # tsc into dist/, then the WWDC data into dist/data/
343
-
344
- # Run your build in Claude Code in place of the npm package
345
- claude mcp add apple-docs -- node "$PWD/dist/index.js"
346
-
347
- # Checks: types (server and scripts), lint and tests
348
- npx tsc --noEmit && npx tsc -p scripts && npx eslint src scripts && npx vitest run
349
-
350
- # Call the built server without an MCP client
351
- npx -y @modelcontextprotocol/inspector --cli node dist/index.js --method tools/call \
352
- --tool-name search_apple_docs --tool-args-json '{"query":"tab bars","type":"design"}'
353
-
354
- # Regenerate the types of Apple's JSON
355
- npm run types:docc # from Swift-DocC's RenderNode and RenderIndex specs
356
- npm run types:captured # from captured responses (quicktype)
357
- ```
358
-
359
- 构建完成后,请在你的 MCP 客户端中重启或重新连接服务器。
360
-
361
- ## 🙏 致谢
362
-
363
- Apple Docs 2.0 MCP 基于 [kimsungwhee](https://github.com/kimsungwhee) 的 [Apple Docs MCP](https://github.com/kimsungwhee/apple-docs-mcp) 构建,沿用了其最初的工具、WWDC 数据及架构设计。
364
-
365
- ## 🤝 贡献
366
-
367
- 欢迎参与贡献:
368
-
369
- 1. **Fork** 本代码仓库
370
- 2. **创建** 特性分支:`git checkout -b feature/amazing-feature`
371
- 3. **提交** 你的更改:`git commit -m 'Add amazing feature'`
372
- 4. **推送** 到该分支:`git push origin feature/amazing-feature`
373
- 5. **发起** Pull Request
374
-
375
- ## 📄 许可证
376
-
377
- 采用 MIT 许可证,与原项目保持一致:详见 [LICENSE](LICENSE)。
378
-
379
- ## ⚠️ 免责声明
380
-
381
- 本项目与 Apple Inc. 无关联,亦未获得其认可。本项目仅出于教育与开发目的读取 Apple 公开发布的开发者文档。