インストール
コンテンツ詳細
代替品
インストール
{
"mcpServers": {
"ios-dev": {
"command": "node",
"args": ["/absolute/path/to/ios-dev-mcp-server/build/index.js"],
"metadata": {
"name": "iOS Development MCP Server",
"description": "Comprehensive iOS simulator control and Swift/Xcode development tools",
"version": "0.4.0"
}
}
}
}
{
"mcpServers": {
"ios-dev": {
"command": "node",
"args": ["/absolute/path/to/ios-dev-mcp-server/build/index.js"]
}
}
}🚀 iOS開発MCPサーバー
このソフトウェアは、Claude AIにiOSシミュレーターの制御とSwift/Xcode開発ツールを提供する包括的なモデルコンテキストプロトコル(MCP)サーバーです。Claude AIは、自然言語コマンドを通じて、iOSシミュレーターを自律的に制御し、アプリケーションのテスト、デバッグ、動作分析を行うことができます。
⚠️ 重要な注意
このプロジェクトは現在積極的に開発中であり、アルファ品質と見なされます。
- バグと問題:バグ、不完全な機能、および破壊的な変更が予想されます。
- APIの安定性:ツールのインターフェイスはバージョン間で予告なく変更される可能性があります。
- 本番環境での使用:本番環境での使用は推奨されません。
- テスト:常に開発環境で十分にテストしてください。
- コントリビューション:機能要求とバグレポートは歓迎されますが、実装のタイムラインは単独の開発者の利用可能時間に依存します。
自己責任で使用してください。これは実験的なソフトウェアであり、保証なしで提供されます。
🚀 クイックスタート
このツールを使用することで、Claude AIは自然言語コマンドを通じてiOSシミュレーターを自律的に制御し、アプリケーションのテスト、デバッグ、動作分析を行うことができます。Claudeはコードを記述し、プロジェクトをビルドし、シミュレーターで実行し、UIテストを実行し、クラッシュログを読み取り、修正を繰り返し、すべてが正常に動作することを検証することができます。これにより、手動でのデバッグ作業が不要になります。
このリポジトリは、次の2つの相補的な機能を提供します。
- MCPツール(23個のツール) - 直接的なiOSシミュレーターの制御とXcodeの統合
- デバイス管理(起動、シャットダウン、デバイス情報)
- UIインタラクション(タップ、スワイプ、スクリーンショット、UI検査)
- アプリのライフサイクル(インストール、起動、終了、アンインストール)
- デバッグ(クラッシュログ、リアルタイムログストリーミング、テキスト入力)
- 環境制御(ステータスバー、外観、パーミッション、プッシュ通知)
- ビルドとテスト(エラー解析とテスト結果を伴うxcodebuildの統合)
- Claudeコードスキル(11個のワークフロー) - ツールを調整するための開発パターン
- Swiftとコンカレンシー(2個):Swift 6.2以上のコンカレンシー修正、async/awaitの専門知識
- iOS開発(3個):デバッガーエージェント、App Storeのリリースノート、GitHubの問題解決
- SwiftUI(4個):UIパターン、ビューのリファクタリング、パフォーマンス監査、Liquid Glass(iOS 26)
- macOSパッケージング(1個):Xcodeを使用せずにSwiftPMベースのアプリを配布
- その他:Xcode 26からの21個の公式Appleドキュメントファイルがスキルに統合されています。
スキルはツールと連携して動作します。たとえば、ios-debugger-agentスキルは、simulator_boot、simulator_install_app、simulator_launch_app、simulator_screenshot、simulator_tap、simulator_get_logsを統合して、完全なデバッグワークフローを実現します。これにより、専門的なiOS開発に必要な機能(ツール)と規律(スキル)の両方が得られます。
✨ 主な機能
利用可能な機能
✅ シミュレーターデバイス管理(4つのツール)
simulator_list_devices- 利用可能なすべてのiOSシミュレーターをリスト表示します。simulator_boot- シミュレーターデバイスを起動します。simulator_shutdown- 実行中のシミュレーターをシャットダウンします。simulator_get_info- 特定のシミュレーターデバイスの詳細情報を取得します。
✅ シミュレーターUIインタラクション(4つのツール)
simulator_screenshot- 自動圧縮を伴うiOSシミュレーターのスクリーンショットをキャプチャします。simulator_tap- シミュレーター画面の特定の座標をタップします。simulator_swipe- あるポイントから別のポイントへのスワイプジェスチャーを実行します。simulator_long_press- 特定の座標で長押し(タップして保持)を行います。
✅ シミュレーターUI検査(2つのツール) - fb-idbが必要です
simulator_describe_ui- 現在のシミュレーター画面の完全なアクセシビリティツリー(UI階層)を取得します。simulator_describe_point- 特定の座標にあるUI要素のアクセシビリティ情報を取得します。
✅ シミュレーターアプリ管理(6つのツール)
simulator_launch_app- シミュレーター上でアプリのバンドル識別子を指定してiOSアプリを起動します。simulator_terminate_app- シミュレーター上で実行中のアプリを強制終了します。simulator_install_app- シミュレーターにiOSアプリ(.appバンドル)をインストールします。simulator_uninstall_app- シミュレーターからアプリをアンインストールし、アプリとそのすべてのデータを削除します。simulator_open_url- シミュレーター上でURLを開きます。Web URL(Safari)、ディープリンク、およびユニバーサルリンクをサポートします。simulator_get_logs- シミュレーターから最近のログエントリを取得し、必要に応じてフィルタリングします。
✅ シミュレーター入力シミュレーション(3つのツール)
simulator_type_text- シミュレーター上の現在フォーカスされているテキストフィールドにテキストを入力します。simulator_press_home- ホームボタンを押してホーム画面に戻ります。simulator_send_keys- ハードウェアキーボードの入力とショートカットをシミュレーターに送信します。
✅ シミュレーターデバッグと自動化(6つのツール) - fb-idbが必要です
simulator_list_crashes- iOSシミュレーターからクラッシュレポートをリスト表示し、必要に応じてフィルタリングします。simulator_get_crash- 特定のクラッシュレポートを完全なスタックトレースとクラッシュ詳細とともに取得します。simulator_delete_crashes- シミュレーターからクラッシュレポートを削除して古いクラッシュをクリーンアップします。simulator_stream_logs- iOSシミュレーターからリアルタイムログをストリーミングし、必要に応じてフィルタリングします。simulator_input_text- シミュレーター上の現在フォーカスされているテキストフィールドにテキストを入力します。simulator_press_button- iOSシミュレーター上でハードウェアボタンの押下をシミュレートします。
✅ ビルドとテストツール(4つのツール)
xcodebuild_build- xcodebuildを使用してシミュレーター用のiOSアプリをビルドし、エラー解析を行います(ビルド時間を自動的に追跡します)。xcodebuild_clean- Xcodeプロジェクトのビルドアーティファクトと派生データをクリーンアップします。xcodebuild_test- xcodebuildを使用してユニットテストとUIテストを実行し、構造化された結果を取得します。xcodebuild_build_stats- 追跡されたビルドからビルド時間の統計、トレンド、およびパフォーマンスの洞察を取得します。
✅ 環境制御(12個のツール)
simulator_status_bar_override- デモ用のスクリーンショットやテストのために、シミュレーターのステータスバーの外観をオーバーライドします。simulator_status_bar_list- シミュレーターデバイス上の現在のステータスバーのオーバーライドをリスト表示します。simulator_status_bar_clear- すべてのステータスバーのオーバーライドをクリアし、シミュレーターを通常の状態に戻します。simulator_set_appearance- シミュレーターの外観モードをライトモードまたはダークモードに設定します。simulator_get_appearance- 現在のシミュレーターの外観モードを取得します。simulator_set_content_size- ダイナミックタイプのテストのために、推奨されるコンテンツサイズカテゴリを設定します。simulator_get_content_size- 現在の推奨コンテンツサイズカテゴリを取得します。simulator_set_increase_contrast- アクセシビリティテストのために、高コントラストモードを有効または無効にします。simulator_grant_permission- プロンプトを表示せずにアプリにプライバシーパーミッションを付与します。simulator_revoke_permission- アプリからプライバシーパーミッションを取り消します。simulator_reset_permissions- プライバシーパーミッションをデフォルトの状態にリセットし、次回の使用時にプロンプトを表示します。simulator_send_push_notification- アプリにシミュレートされたプッシュ通知を送信します。
✅ 位置シミュレーション(4つのツール)
simulator_set_location- シミュレーターに特定のGPS位置を設定します。simulator_simulate_route- ウェイポイントで定義されたルートに沿った移動をシミュレートします。simulator_list_location_scenarios- 利用可能な事前定義された位置シナリオをリスト表示します。simulator_clear_location- 位置シミュレーションを停止し、設定された位置をクリアします。
✅ メディア管理(3つのツール)
simulator_start_video_recording- シミュレーターの画面をビデオファイルに録画を開始します。simulator_stop_video_recording- 現在のビデオ録画を停止し、ファイルを保存します。simulator_add_media- シミュレーターに写真、ビデオ、または連絡先を追加します。
✅ 開発者ユーティリティ(8つのツール)
simulator_get_app_container_path- アプリのコンテナのファイルシステムパスを取得します。simulator_clipboard_copy- シミュレーターのクリップボードにテキストをコピーします。simulator_clipboard_paste- シミュレーターのクリップボードから現在のテキストを取得します。simulator_clipboard_sync- あるシミュレーターから別のシミュレーターにクリップボードを同期します。simulator_add_root_certificate- シミュレーターのキーチェーンに信頼できるルート証明書を追加します。simulator_add_certificate- シミュレーターのキーチェーンに証明書を追加します。simulator_reset_keychain- シミュレーターのキーチェーンをリセットし、すべての証明書と資格情報を削除します。simulator_trigger_icloud_sync- シミュレーターでiCloud同期をトリガーします。
近日公開予定
🚧 追加のビルドツール
- 配布用のアーカイブとエクスポート
- Instrumentsを使用したパフォーマンスプロファイリング
📦 インストール
前提条件
- macOS(iOSシミュレーターはmacOSでのみ利用可能です)
- Xcode 15以上でコマンドラインツールがインストールされていること
- Node.js 18以上
クイックセットアップ
# リポジトリをクローンする
git clone https://github.com/yourusername/ios-dev-mcp-server.git
cd ios-dev-mcp-server
# 依存関係をインストールする
npm install
# プロジェクトをビルドする
npm run build
fb-idbのインストール(高度な機能に必要)
23個のシミュレーターツールのうち11個は、fb-idb(iOS Development Bridge)がインストールされている必要があります。これには、すべてのUIインタラクションツール(タップ、スワイプ、長押し)、UI検査ツール(describe_ui、describe_point)、およびすべてのデバッグ/自動化ツール(クラッシュログ、ログストリーミング、テキスト入力、ボタン押下)が含まれます。
インストール手順:
# 1. Homebrewを使用してidb_companionをインストールする
brew tap facebook/fb
brew install idb-companion
# 2. Python pipを使用してidbクライアントを仮想環境にインストールする
python3 -m venv ~/.idb-venv
source ~/.idb-venv/bin/activate
pip install fb-idb
# 3. グローバルアクセス用のシンボリックリンクを作成する
mkdir -p ~/bin
ln -sf ~/.idb-venv/bin/idb ~/bin/idb
# 4. インストールを確認する
~/bin/idb list-targets
インストールされるもの:
idb_companion- シミュレーター/デバイスと通信するサーバープロセス(Homebrew経由)idb- クライアントCLIツール(仮想環境のPython pip経由)~/bin/idbのシンボリックリンク - MCPサーバーがidb実行ファイルを見つけることができるようにします。
インストールのテスト:
# シミュレーターを起動する(すでに起動していない場合)
xcrun simctl boot "iPhone 17"
# idbをシミュレーターに接続する
~/bin/idb connect <DEVICE_UDID>
# UI検査をテストする
~/bin/idb ui describe-all --udid <DEVICE_UDID>
idbが必要なツール:
simulator_tap,simulator_swipe,simulator_long_press- UIインタラクションsimulator_describe_ui,simulator_describe_point- UI検査simulator_list_crashes,simulator_get_crash,simulator_delete_crashes- クラッシュ管理simulator_stream_logs- リアルタイムログ監視simulator_input_text- テキストフィールド入力simulator_press_button- ハードウェアボタンシミュレーション
idbなしで動作するツール:
- すべてのデバイス管理ツール(起動、シャットダウン、デバイス情報)
- すべてのアプリライフサイクルツール(起動、終了、インストール、アンインストール)
- スクリーンショットツール
- ビルドとテストツール
💻 使用例
Claudeコード統合(推奨)🚀
手動インストール:
- プロジェクトをビルドする:
npm install
npm run build
~/.config/claude-code/settings.jsonにClaudeコードを設定する:
{
"mcpServers": {
"ios-dev": {
"command": "node",
"args": ["/absolute/path/to/ios-dev-mcp-server/build/index.js"],
"metadata": {
"name": "iOS Development MCP Server",
"description": "Comprehensive iOS simulator control and Swift/Xcode development tools",
"version": "0.4.0"
}
}
}
}
- スキルをインストールする:
cp -r skills/* ~/.claude/skills/public/
注意: /absolute/path/to/ios-dev-mcp-serverを実際のプロジェクトパスに置き換えてください。
例のプロンプト: インストール後、Claudeに次のような質問を試してみてください。
- "利用可能なすべてのiOSシミュレーターをリスト表示して"
- "iPhone 15 Proシミュレーターを起動して"
- "起動したシミュレーターのスクリーンショットを撮って"
- "./build/MyApp.appにあるアプリをインストールして起動して"
- "アプリのログインフローをテストし、問題をデバッグして"
- "シミュレーターからアプリでフィルタリングされた最後の100件のログを取得して"
- "ナビゲーション中のアプリのパフォーマンスをプロファイリングして"
Claudeデスクトップ統合
Claudeデスクトップの設定ファイルに追加します。
~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"ios-dev": {
"command": "node",
"args": ["/absolute/path/to/ios-dev-mcp-server/build/index.js"]
}
}
}
重要: ビルドディレクトリの絶対パスを使用してください。
インストールのテスト
インタラクティブなテストのためにMCPインスペクターを起動します。
npm run inspector
http://localhost:6274でWeb UIが開き、利用可能なすべてのツールをテストすることができます。
📚 詳細ドキュメント
Claudeコードスキルの使用
このリポジトリは、MCPツール(23個のiOSシミュレーターツール)とカスタマイズされたスキル(11個のiOS/Swift開発ワークフロー)の両方を提供し、シームレスに連携します。
含まれるもの
- MCPツール:iOSシミュレーターの制御に必要な23個のツール(デバイス管理、UIインタラクション、アプリ管理、デバッグなど)
- スキル:iOS開発用の11個の専用ワークフロー(
/skillsディレクトリ内) - Claudeコードスキル:
/test-driven-development、/systematic-debuggingなどの組み込みスキル - 連携:Claudeは規律あるワークフロー(スキル)を使用して、これらのiOSツールを効果的に調整します。
含まれるスキル(合計11個)
このリポジトリには、コミュニティからのカスタマイズされたスキルが含まれています。
Swiftとコンカレンシー(2つのスキル)
swift-concurrency-expert- Swift 6.2以上のコンカレンシー修正とアクター分離swift-concurrency-avdlee- 包括的なasync/await、アクター、および移行ガイダンス
iOS開発(3つのスキル)
ios-debugger-agent- このMCPサーバーのツールを使用してiOSアプリをビルド、実行、およびデバッグします⭐app-store-changelog- Git履歴からユーザー向けのリリースノートを生成します。gh-issue-fix-flow- GitHubの問題をエンドツーエンドで解決するワークフロー
SwiftUI(4つのスキル)
swiftui-ui-patterns- 状態管理とコンポジションのベストプラクティスswiftui-view-refactor- ビュー構造と依存関係を標準化します。swiftui-performance-audit- パフォーマンスのボトルネックを特定して修正します。swiftui-liquid-glass- iOS 26以上のLiquid Glass APIの実装
macOSパッケージング(1つのスキル)
macos-spm-app-packaging- Xcodeを使用せずにSwiftPMアプリをパッケージ化します。
詳細なドキュメントについては、skills/README.mdを参照してください。
推奨されるワークフローの組み合わせ
iOSアプリのデバッグ:
スキル: ios-debugger-agent(このリポジトリに含まれています!)
ツール: simulator_boot, simulator_install_app, simulator_launch_app,
simulator_screenshot, simulator_get_logs, simulator_tap
フロー: 起動 → インストール → 起動 → スクリーンショット → インタラクション → ログ分析
テスト駆動型のiOS開発:
スキル: /test-driven-development(Claudeコードの組み込み)
ツール: simulator_install_app, simulator_launch_app, simulator_get_logs
フロー: テストを書く → ビルド → インストール → 実行 → ログを検証 → 繰り返す
GitHubの問題の修正:
スキル: gh-issue-fix-flow(このリポジトリに含まれています!)
ツール: テスト用のシミュレーターツール、コミット用のgit
フロー: 問題を取得 → コードを見つける → 修正 → シミュレーターでテスト → コミット → 報告
Swiftコンカレンシーのレビュー:
スキル: swift-concurrency-expert(このリポジトリに含まれています!)
ツール: コード分析とリファクタリング
フロー: エラーをトリアージする → アクター分離を適用する → Sendableの問題を修正する → 検証する
スキルのインストール
スキルをインストールするには:
# スキルをClaudeコードにコピーする
cp -r skills/* ~/.claude/skills/public/
# または、更新を維持するためにシンボリックリンクを作成する
ln -s $(pwd)/skills/* ~/.claude/skills/public/
詳細情報
- 含まれるスキル:すべての11個のスキルの詳細なドキュメントについては、skills/README.mdを参照してください。
- Claudeコードの組み込みスキル:Claudeコードで
/using-superpowersを使用してください。 - Swiftコンカレンシー:fuckingapproachableswiftconcurrency.com
Claudeでのスキルの使用方法
スキルとは何か?
スキルは、Claudeが特定のタイプのタスクにアプローチする方法をガイドする専用のワークフローです。専門的なプレイブックのようなものです。
- MCPツール(このサーバー) = Claudeができること(23個のシミュレーターツール)
- スキル(このリポジトリ) = Claudeがすべきこと(11個のワークフロー)
インストール
スキルをClaudeコードのスキルディレクトリにコピーすることでインストールします。
# すべてのスキルをClaudeコードにコピーする
cp -r skills/* ~/.claude/skills/public/
# または、このリポジトリとの更新を維持するためにシンボリックリンクを作成する
ln -s $(pwd)/skills/app-store-changelog ~/.claude/skills/public/
ln -s $(pwd)/skills/ios-debugger-agent ~/.claude/skills/public/
# ... すべてのスキルに対して繰り返す
これにより、すべての11個のスキルが~/.claude/skills/public/にコピーされ、Claudeコードがアクセスできるようになります。
インストールの確認
インストール後、Claudeコードを再起動し、スキルが利用可能であることを確認します。
ユーザー: "利用可能なiOS開発スキルは何ですか?"
Claude: [インストールされたすべてのスキルをリスト表示]
スキルの呼び出し方法
スキルは、あなたが記述するタスクがスキルの目的に一致する場合、Claudeによって自動的に呼び出されます。また、明示的にスキルを要求することもできます。
自動呼び出し
あなたの要求がスキルの目的に一致する場合、Claudeは自動的にスキルを使用します。
あなた: "アプリのログインフローをデバッグして"
→ Claudeは自動的にios-debugger-agentスキルを使用します。
あなた: "これらのSwiftコンカレンシーの警告を修正して"
→ Claudeは自動的にswift-concurrency-expertスキルを使用します。
あなた: "このボタンにLiquid Glassエフェクトを追加して"
→ Claudeは自動的にswiftui-liquid-glassスキルを使用します。
明示的な呼び出し
スキル名を明示的に要求することができます(通常は必要ありません)。
あなた: "ios-debugger-agentスキルを使用してアプリをテストして"
→ Claudeはios-debugger-agentワークフローを読み込んで実行します。
あなた: "このファイルにswift-concurrency-expertスキルを適用して"
→ Claudeはコンカレンシーレビューをファイルに適用します。
スキルの使用例
例1: iOSアプリのデバッグ
あなた: "ログインボタンをタップするとアプリがクラッシュします。デバッグしてくれますか?"
Claudeのワークフロー(ios-debugger-agentスキルを使用):
1. ✓ シミュレーターをリスト表示する (simulator_list_devices)
2. ✓ iPhone 15 Proを起動する (simulator_boot)
3. ✓ あなたのアプリをビルドする (xcodebuild_build)
4. ✓ アプリをインストールする (simulator_install_app)
5. ✓ アプリを起動する (simulator_launch_app)
6. ✓ スクリーンショットを撮る (simulator_screenshot)
7. ✓ ログインボタンをタップする (simulator_tap)
8. ✓ クラッシュログをキャプチャする (simulator_get_logs)
9. ✓ 問題を分析し、修正案を提案する
例2: Swiftコンカレンシーの問題の修正
あなた: "Swift 6でデータ競合の警告が出ています。修正してくれますか?"
Claudeのワークフロー(swift-concurrency-expertスキルを使用):
1. ✓ コンパイラの診断情報をキャプチャする
2. ✓ プロジェクトのSwiftバージョンとコンカレンシー設定を確認する
3. ✓ Swift-Concurrency-Updates.md(Appleドキュメント)を参照する
4. ✓ 分離境界を特定する
5. ✓ 最小限の修正を適用する(@MainActor、アクター分離を追加する)
6. ✓ Sendableの準拠を検証する
7. ✓ 再ビルドし、警告が修正されたことを確認する
例3: 最新のSwiftUI機能の実装
あなた: "SwiftUIのカードビューにLiquid Glassマテリアルを追加して"
Claudeのワークフロー(swiftui-liquid-glassスキルを使用):
1. ✓ SwiftUI-Implementing-Liquid-Glass-Design.mdを参照する
2. ✓ iOS 26の可用性を確認する
3. ✓ .glassEffect()モディファイアを適用する
4. ✓ 複数の要素にGlassEffectContainerを追加する
5. ✓ iOS < 26用のフォールバックを実装する
6. ✓ モディファイアの順序とインタラクティビティを検証する
例4: App Storeのリリースノートの作成
あなた: "バージョン2.0のリリースノートを生成して"
Claudeのワークフロー(app-store-changelogスキルを使用):
1. ✓ 前回のバージョン以降のコミットを取得するためにgit logを実行する
2. ✓ ユーザーに見える変更をフィルタリングする
3. ✓ 機能/改善点/バグ修正に整理する
4. ✓ メリットを強調した箇条書きを作成する
5. ✓ App Storeの文字数制限内に収める
利用可能なスキルの確認
インストールされている利用可能なスキルを確認するには:
あなた: "利用可能なすべてのiOS開発スキルをリスト表示して"
または
あなた: "SwiftUIに役立つスキルは何ですか?"
または
あなた: "どのコンカレンシースキルがありますか?"
Claudeは関連するスキルと説明をリスト表示します。
スキルとMCPツールの連携
実際の力は、スキルがMCPツールを調整することにあります。
| タスク | 使用するスキル | 使用するMCPツール |
|---|---|---|
| アプリのクラッシュをデバッグする | ios-debugger-agent |
simulator_boot, simulator_install_app, simulator_launch_app, simulator_screenshot, simulator_tap, simulator_get_logs |
| 機能をテストする | 組み込みのTDD | xcodebuild_test, simulator_install_app, simulator_launch_app, simulator_get_logs |
| コンカレンシーを修正する | swift-concurrency-expert |
コード分析ツール |
| パフォーマンスをレビューする | swiftui-performance-audit |
コード分析 + 視覚的な検証のためのsimulator_screenshot |
最適な結果を得るためのヒント
- 目標を明確にする:
- ✅ "ログインクラッシュをデバッグして" → ios-debugger-agentがアクティブになります。
- ❌ "アプリの助けを求める" → あいまいすぎます。
- 関連する技術を明示する:
- ✅ "Swiftコンカレンシーのエラーを修正して" → swift-concurrency-expert
- ✅ "ボタンにLiquid Glassを追加して" → swiftui-liquid-glass
- Claudeにスキルを選択させる:
- スキルはあなたの要求に基づいて自動的にアクティブになります。
- Claudeが適切なスキルを使用していない場合のみ、スキル名を指定してください。
- ワークフローを信頼する:
- スキルは専門の開発者による実績のあるパターンに従います。
- エラーハンドリングと検証ステップが含まれています。
スキルの説明の参照
迅速な参照のために、各スキルの機能を以下に示します。
| スキル | 使用する状況 |
|---|---|
| ios-debugger-agent | シミュレーターを使用してiOSアプリをビルド、実行、およびデバッグする場合 |
| swift-concurrency-expert | Swift 6.2以上のコンカレンシーの警告とデータ競合の問題を修正する場合 |
| swift-concurrency-avdlee | async/awaitパターンを学習するか、Swift 6に移行する場合 |
| swiftui-liquid-glass | iOS 26以上のLiquid Glassマテリアルエフェクトを実装する場合 |
| swiftui-ui-patterns | SwiftUIの状態、コンポジション、およびナビゲーションのベストプラクティスに従う場合 |
| swiftui-view-refactor | SwiftUIのビュー構造と組織を標準化する場合 |
| swiftui-performance-audit | SwiftUIのパフォーマンスの問題を診断して修正する場合 |
| app-store-changelog | Gitコミットからユーザー向けのリリースノートを生成する場合 |
| gh-issue-fix-flow | GitHubの問題をテストとドキュメント化して解決する場合 |
| macos-spm-app-packaging | Swift Package Managerを使用してmacOSアプリをパッケージ化する場合 |
詳細なスキルドキュメント
各スキルの包括的なドキュメント、参照資料、および例については、📖 スキルガイドを読む を参照してください。 これには、以下の内容が含まれています。
- すべての11個のスキルの詳細な説明
- インストール手順
- スキルのカテゴリの内訳
- MCPツールとの統合
- 公式Appleドキュメントの参照
- トラブルシューティングのヒント
🔧 技術詳細
利用可能なツール
シミュレーターデバイス管理
simulator_list_devices
利用可能なすべてのiOSシミュレーターデバイスを現在の状態とともにリスト表示します。
パラメーター: なし
応答例:
{
"summary": "5つのデバイスが見つかりました (1つが起動中)",
"devices": [
{
"udid": "ABC-123-DEF",
"name": "iPhone 15 Pro",
"state": "起動中",
"runtime": "iOS 17.2",
"deviceType": "iPhone15,2"
}
]
}
simulator_boot
UDIDで指定されたiOSシミュレーターデバイスを起動します。
パラメーター:
device(文字列、必須): 起動するデバイスのUDID
使用方法: "iPhone 15 Proシミュレーターを起動して"
simulator_shutdown
実行中のiOSシミュレーターデバイスをシャットダウンします。
パラメーター:
device(文字列、必須): シャットダウンするデバイスのUDID
使用方法: "起動中のシミュレーターをシャットダウンして"
simulator_get_info
特定のシミュレーターデバイスの詳細情報を取得します。
パラメーター:
device(文字列、オプション): デバイスのUDIDまたは "起動中" (デフォルト: "起動中")
使用方法: "起動中のシミュレーターの情報を取得して"
シミュレーターUIインタラクション
simulator_screenshot
自動圧縮を伴うiOSシミュレーターのスクリーンショットをキャプチャします。
パラメーター:
device(文字列、オプション): デバイスのUDIDまたは "起動中" (デフォルト: "起動中")quality(数値、オプション): JPEG品質 (1-100) (デフォルト: 80)maxWidth(数値、オプション): 最大幅 (ピクセル) (デフォルト: 800)maxHeight(数値、オプション): 最大高さ (ピクセル) (デフォルト: 1400)
返り値:
- Base64エンコードされたJPEG画像
- 圧縮メタデータ (元のサイズ、圧縮後のサイズ、比率)
使用方法: "シミュレーターのスクリーンショットを撮って"
高度なUIインタラクションツール - fb-idbが必要です
注意: 以下のインタラクションツールは、fb-idbがインストールされている必要があります。
brew install idb-companion
brew services start idb_companion
Homebrewによるインストールが失敗した場合は、ソースからビルドしてください。https://github.com/facebook/idb
simulator_tap
シミュレーター画面の特定のx,y座標をタップします。
パラメーター:
device(文字列、オプション): デバイスのUDIDまたは "起動中"x(数値、必須): ピクセル単位のX座標y(数値、必須): ピクセル単位のY座標
使用方法: "シミュレーター上の座標200, 400をタップして"
simulator_swipe
あるポイントから別のポイントへのスワイプジェスチャーを実行します。
パラメーター:
device(文字列、オプション): デバイスのUDIDまたは "起動中"x1(数値、必須): 開始X座標y1(数値、必須): 開始Y座標x2(数値、必須): 終了X座標y2(数値、必須): 終了Y座標duration(数値、オプション): スワイプの持続時間 (秒) (デフォルト: 0.3)
返り値:
- スワイプの方向 (左、右、上、下)
- ピクセル単位の距離
使用方法: "シミュレーター上で200,800から200,200にスワイプして"
simulator_long_press
特定の座標で長押し(タップして保持)を行います。
パラメーター:
device(文字列、オプション): デバイスのUDIDまたは "起動中"x(数値、必須): ピクセル単位のX座標y(数値、必須): ピクセル単位のY座標duration(数値、オプション): 押下の持続時間 (秒) (デフォルト: 1.0)
使用方法: "座標300, 500で2秒間長押しして"
シミュレーターUI検査
注意: これらのツールは、fb-idbがインストールされている必要があります。
brew install idb-companion
simulator_describe_ui
現在のシミュレーター画面の完全なアクセシビリティツリー(UI階層)を取得します。
パラメーター:
device(文字列、オプション): デバイスのUDIDまたは "起動中" (デフォルト: "起動中")format(文字列、オプション): 出力形式 - "コンパクト" (人間が読みやすい要約) または "json" (完全な詳細) (デフォルト: "コンパクト")
返り値:
- すべてのUI要素のリストで、以下の情報が含まれます。
- AXLabel (アクセシビリティラベル)
- AXRole (要素のタイプ: ボタン、テキストフィールド、静的テキストなど)
- AXFrame (位置とサイズ: [X,Y WxH])
- AXEnabled (要素がインタラクティブかどうか)
- AXTraits (追加の要素特性)
- カスタムアクション (ある場合)
コンパクト形式の例:
1. ボタン: "ログイン" [150,650 120x44]
2. テキストフィールド: "メールアドレス" [50,550 300x40]
3. 静的テキスト: "ようこそ" [100,200 200x30]
使用方法:
"画面上のすべてのUI要素を説明して"
"JSON形式でアクセシビリティツリーを取得して"
"シミュレーター上で表示されているUI要素は何ですか?"
一般的な使用例:
- タップする前にラベルで要素を見つける
- UI要素の位置を検証する
- アクセシビリティの実装をデバッグする
- 自動化されたUIテスト
- 画面コンポーネントのドキュメント化
simulator_describe_point
特定の座標にあるUI要素のアクセシビリティ情報を取得します。
パラメーター:
device(文字列、オプション): デバイスのUDIDまたは "起動中"x(数値、必須): ピクセル単位のX座標y(数値、必須): ピクセル単位のY座標
返り値:
- 指定されたポイントの要素の詳細で、以下の情報が含まれます。
- label (アクセシビリティラベルまたは値)
- role (要素のタイプ)
- frame (位置とサイズ)
- enabled (インタラクション状態)
- traits (アクセシビリティ特性)
- fullDetails (完全なアクセシビリティデータ)
使用方法:
"座標200, 400にあるUI要素は何ですか?"
"ポイント150, 600の要素を説明して"
"300, 800のUI要素を検査して"
一般的な使用例:
- タップする前に存在する要素を検証する
- タップターゲットの問題(小さすぎる、間違った要素)をデバッグする
- 特定の位置の要素のプロパティを検査する
- UIレイアウトをプログラム的に検証する
シミュレーターデバッグと自動化(6つのツール) - fb-idbが必要です
注意: これらのツールは、fb-idbがインストールされている必要があります。
brew install idb-companion
brew services start idb_companion
simulator_list_crashes
iOSシミュレーターからクラッシュレポートをリスト表示し、必要に応じてフィルタリングします。
パラメーター:
device(文字列、オプション): デバイスのUDIDまたは "起動中" (デフォルト: "起動中")bundleId(文字列、オプション): アプリのバンドル識別子でクラッシュをフィルタリングする (例: "com.example.MyApp")before(文字列、オプション): この日付より前のクラッシュをフィルタリングする (ISO 8601形式: "2024-01-15T10:30:00Z")since(文字列、オプション): この日付以降のクラッシュをフィルタリングする (ISO 8601形式: "2024-01-15T10:30:00Z")
返り値:
- クラッシュレポートのリストで、以下の情報が含まれます。
- クラッシュ名/識別子
- バンドルID
- クラッシュのタイムスタンプ
出力例:
2つのクラッシュレポートが見つかりました:
1. MyApp-2024-01-15-123456.crash
バンドル: com.example.MyApp
日付: 2024-01-15T12:34:56Z
2. MyApp-2024-01-14-098765.crash
バンドル: com.example.MyApp
日付: 2024-01-14T09:87:65Z
使用方法: "com.example.MyAppのすべてのクラッシュをリスト表示して"、"過去24時間以内の最近のクラッシュを表示して"
simulator_get_crash
特定のクラッシュレポートを完全なスタックトレースとクラッシュ詳細とともに取得します。
パラメーター:
device(文字列、オプション): デバイスのUDIDまたは "起動中" (デフォルト: "起動中")crashName(文字列、必須):simulator_list_crashesからのクラッシュレポートの名前/識別子
返り値:
- 完全なクラッシュレポートで、以下の情報が含まれます。
- 例外のタイプと理由
- 完全なスタックトレース
- スレッド情報
- バイナリイメージ
- ハードウェア/OS情報
使用方法: "MyApp-2024-01-15-123456.crashのクラッシュレポートを取得して"、"最近のクラッシュの詳細を表示して"
simulator_delete_crashes
シミュレーターからクラッシュレポートを削除して古いクラッシュをクリーンアップします。
パラメーター:
device(文字列、オプション): デバイスのUDIDまたは "起動中" (デフォルト: "起動中")crashName(文字列、オプション): 削除する特定のクラッシュ名before(文字列、オプション): この日付より前のクラッシュを削除する (ISO 8601形式)since(文字列、オプション): この日付以降のクラッシュを削除する (ISO 8601形式)all(ブール値、オプション): すべてのクラッシュを削除する (注意して使用、デフォルト: false)
使用方法: "すべてのクラッシュレポートを削除して"、"1週間以上前のクラッシュを削除して"
simulator_stream_logs
iOSシミュレーターからリアルタイムログをストリーミングし、必要に応じてフィルタリングします。
パラメーター:
device(文字列、オプション): デバイスのUDIDまたは "起動中" (
代替品











