/ ディレクトリ / プレイグラウンド / cupertino
● コミュニティ mihaelamj ⚡ 即起動

cupertino

作者 mihaelamj · mihaelamj/cupertino

Appleドキュメントをエージェントの手元に — 30万2千ページ以上、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のHuman Interface Guidelinesに基づいてデザインをレビューする

👤 iOSデザイナー、PM ⏱ ~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と組み合わせて10倍の力を

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
呼び出しあたりのトークン
ドキュメントページ:各500〜5000トークン
金額
無料
ヒント
複数ページをまとめて取得するのではなく、search_docs + read_documentで上位1件のみを読み取ってください

セキュリティ

権限、シークレット、影響範囲

認証情報の保管: なし
データ送信先: 実行時の外部通信なし。cupertino setupで初回のみdeveloper.apple.comからデータを取得

トラブルシューティング

よくあるエラーと対処法

インストール後に検索結果が返らない

cupertino setupが完了していません — 再実行してネットワークエラーがないか確認してください

確認: データベースファイルのサイズが約2.4GBであること
OS新バージョンリリース後にドキュメントが古い

cupertino setupを再実行してクロールを更新してください

インデックスDBがマシンに対して大きすぎる

フレームワーク指定のセットアップで必要なものだけをインデックスしてください(例:SwiftUIのみ)

代替案

cupertino 他との比較

代替案代わりに使う場面トレードオフ
DuckDuckGo / web search MCPハルシネーションのリスクを許容でき、最新情報が必要な場合権威あるソースではない。サードパーティのブログが返る可能性あり
Apple Developer website directly人が直接ドキュメントを読む場合エージェントによる自動化不可

その他

リソース

📖 GitHub の公式 README を読む

🐙 オープンな issue を見る

🔍 400以上のMCPサーバーとSkillsを見る