/ 目錄 / 演練場 / cupertino
● 社群 mihaelamj ⚡ 即開即用

cupertino

作者 mihaelamj · mihaelamj/cupertino

讓你的 AI 助理隨時存取本機 Apple 文件 — 超過 302,000 頁、HIG、範例程式碼,全部以 SQLite FTS5 建立索引,搜尋速度不到 100ms。

cupertino(mihaelamj)會爬取 Apple 開發者文件,並透過本機 SQLite FTS5 索引提供給 MCP 客戶端。有效防止 Claude 憑空捏造 UIKit/SwiftUI API。完整語料庫約 2.4GB,涵蓋 307 個框架、HIG、範例專案及 Swift Evolution。

為什麼要用

核心特性

即時演示

實際使用效果

cupertino.replay ▶ 就緒
0/0

安裝

選擇你的客戶端

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "cupertino": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/mihaelamj/cupertino"
      ],
      "_inferred": true
    }
  }
}

開啟 Claude Desktop → Settings → Developer → Edit Config。儲存後重啟應用。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "cupertino": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/mihaelamj/cupertino"
      ],
      "_inferred": true
    }
  }
}

Cursor 使用與 Claude Desktop 相同的 mcpServers 格式。專案級設定優先於全域。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "cupertino": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/mihaelamj/cupertino"
      ],
      "_inferred": true
    }
  }
}

點擊 Cline 側欄中的 MCP Servers 圖示,然後選 "Edit Configuration"。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "cupertino": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/mihaelamj/cupertino"
      ],
      "_inferred": true
    }
  }
}

格式與 Claude Desktop 相同。重啟 Windsurf 生效。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "cupertino",
      "command": "TODO",
      "args": [
        "See README: https://github.com/mihaelamj/cupertino"
      ]
    }
  ]
}

Continue 使用伺服器物件陣列,而非映射。

~/.config/zed/settings.json
{
  "context_servers": {
    "cupertino": {
      "command": {
        "path": "TODO",
        "args": [
          "See README: https://github.com/mihaelamj/cupertino"
        ]
      }
    }
  }
}

加入 context_servers。Zed 儲存後熱重載。

claude mcp add cupertino -- TODO 'See README: https://github.com/mihaelamj/cupertino'

一行命令搞定。用 claude mcp list 驗證,claude mcp remove 移除。

使用場景

實戰用法: cupertino

使用 cupertino 查詢 Apple 文件,杜絕 API 幻覺

👤 iOS / macOS / visionOS 開發者 ⏱ ~10 min beginner

何時使用: Claude 一直捏造 API 簽名時,你希望它以真實文件為依據。

前置條件
  • 已安裝 cupertino — 下載 Swift 6.2+ 執行檔;執行 cupertino setup 以下載索引
步驟
  1. 建立索引
    執行 cupertino setup 後再執行 cupertino serve,確認 MCP 伺服器正在監聽。✓ 已複製
    → 伺服器上線
  2. 要求助理引用來源
    在撰寫任何 SwiftUI 程式碼之前,請先在 cupertino 文件中搜尋確切的 API,並引用其簽名。✓ 已複製
    → 已附帶 URI 的已驗證 API
  3. 實際使用
    現在只使用你所引用的 API 來撰寫程式碼。✓ 已複製
    → 一次編譯成功

結果: 大幅減少 API 幻覺情況。

對照 Apple 人機介面指南審查設計

👤 iOS 設計師、產品經理 ⏱ ~20 min intermediate

何時使用: 在上線前,你希望對照 HIG 檢查使用流程是否符合規範。

步驟
  1. 描述畫面
    我正在建立一個設定畫面,其中有一個破壞性操作「刪除帳號」的按鈕。請使用 search_hig 搜尋 iOS 的相關指引。✓ 已複製
    → 關於破壞性操作的 HIG 段落
  2. 套用指引
    根據這些指引,審查我的設計稿(貼上內容)。哪些地方違反了 HIG?✓ 已複製
    → 具體違規項目及修正建議

結果: 無需親自閱讀整份文件,即可產出符合 HIG 的 UI。

搭配使用: claude-talk-to-figma

透過 cupertino 學習 Apple 範例專案

👤 學習新框架的開發者 ⏱ ~15 min beginner

何時使用: 你想了解「Apple 實際上是如何使用這個 API 的」。

步驟
  1. 尋找相關範例
    search_samples 搜尋「SwiftData relationships」,列出符合的專案。✓ 已複製
    → 專案名稱及說明
  2. 閱讀原始碼
    在專案 X 中,讀取 ContentView.swift 並說明關聯設定的方式。✓ 已複製
    → 附帶註解的程式碼解說

結果: 取得真正由 Apple 認可的模式,而非論壇上的猜測。

組合

與其他 MCP 搭配,撬動十倍槓桿

在 Figma 中設計,並透過 cupertino 對照 HIG 進行驗證

針對所選的 Figma 畫面,搜尋 HIG 的相關規則並標示不符之處。✓ 已複製
cupertino + filesystem

將你的 SwiftUI 程式碼與 Apple 相同模式的範例進行比對

讀取我的 ./Sources/ContentView.swift,並與 Apple 的 SwiftData 範例結構進行差異比對。✓ 已複製

工具

此 MCP 暴露的能力

工具輸入參數何時呼叫成本
search_docs query, framework? 查詢參考 API 0
search_hig query, platform? 查詢設計指引 0
list_frameworks 瀏覽已建立索引的內容 0
read_document uri 展開搜尋結果的完整內容 0
search_samples query 搜尋範例程式碼 0
list_samples 瀏覽範例列表 0
read_sample_file sample, path 讀取特定原始碼檔案 0

成本與限制

運行它的成本

API 配額
無 — 本機 FTS5
每次呼叫 Token 數
Doc pages: 500-5000 each
費用
免費
提示
只對排名最高的結果使用 search_docs + read_document,避免一次載入多個頁面

安全

權限、密鑰、影響範圍

憑證儲存:
資料出站: 執行時不對外傳輸資料;cupertino setup 僅在建立索引時向 developer.apple.com 發出一次請求

故障排查

常見錯誤與修復

Search returns nothing after install

cupertino setup 未完整執行 — 重新執行並注意是否有網路錯誤

驗證: Database file size should be ~2.4GB
Stale docs after an OS release

重新執行 cupertino setup 以更新爬取的文件

Index DB too large for machine

使用框架範圍設定,只對需要的部分建立索引(例如僅限 SwiftUI)

替代方案

cupertino 對比其他方案

替代方案何時用它替代權衡
DuckDuckGo / web search MCP你不在意幻覺風險,且需要取得最新資訊非權威來源;可能回傳第三方部落格內容
Apple Developer website directly由人工自行閱讀文件無法自動化給 AI 助理使用

更多

資源

📖 閱讀 GitHub 上的官方 README

🐙 查看未解決的 issue

🔍 瀏覽全部 400+ MCP 伺服器和 Skills