Silbercueswift について
SilbercueSwiftは、コーディングエージェントやXcodeシミュレーターを使う開発者向けのネイティブSwift製MCPサーバーです。単一バイナリでビルド、シミュレーター操作、構造化された`.xcresult`診断、UI自動化を提供します。
主な機能
- 01iOSシミュレーターでアプリをビルド・実行
- 02構造化されたテスト失敗情報とカバレッジを返却
- 03UI操作と画面遷移を自動化
- 04シミュレーターのUI階層と要素を調査
- 05アプリログを取得・フィルタリング
活用シーン
- 01シミュレーターでiOSアプリをビルド・テスト
- 02失敗したテストのソース行とスクリーンショットを特定
- 03ダイアログやUIコントロールを含むアプリ操作を自動化
- 04不具合の調査中にアプリログを確認
MCP 対応
SilbercueSwiftはMCPサーバーとしてstdio経由で、iOSのビルド、テスト、シミュレーター、診断、UI自動化ツールを互換性のあるMCPクライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
SilbercueSwift
iOS 開発向けの、最速かつ最も包括的な MCP サーバーです。Swift バイナリ 1 つで、58 個のツールを依存関係なしに利用できます。SilbercueSwift は、あらゆる代替製品の中で最も充実したツールセットを備えています。
Claude Code、Cursor、および MCP 対応のあらゆる AI エージェント向けに構築されています。
既存の iOS MCP サーバーに代わるものをお探しですか? SilbercueSwift は、XcodeBuildMCP、Appium-MCP、iosef の全機能を 1 つのバイナリでカバーし、さらに xcresult の解析、UI オートメーション、コードカバレッジ、最大 75 倍高速なスクリーンショットを提供します。以下の比較をご覧ください。
SilbercueSwift を選ぶ理由
すべての iOS MCP サーバーには、同じ問題があります。生の xcodebuild 出力は AI エージェントにとって役に立ちません。 500 行のビルドログ、エラーと誤認される stderr のノイズ、構造化されていないテスト結果。人間なら数秒で確認できる内容の解析に、エージェントは何分も費やします。
SilbercueSwift はこの問題を解決します。.xcresult バンドルを解析します。これは Xcode が内部で使用するのと同じ構造化データで、エージェントに必要な情報だけを返します。成功/失敗の件数、ファイル名と行番号を含む失敗メッセージ、ファイルごとのコードカバレッジ、失敗時のスクリーンショットです。
| 得られる機能 | XcodeBuildMCP | Appium-MCP | iosef | SilbercueSwift |
|---|---|---|---|---|
| スクリーンショットの遅延 | ~1127ms | ~77ms | ~83ms | ~316ms ( |
| ビュー階層 | ~259ms | ~938ms | ~44ms | ~31ms ( |
| 要素の検索 | — | 76ms | 50ms | 31ms ( |
| タップ(座標) | 235ms | 470ms | 48ms | 16ms ( |
| スワイプ | 1284ms | 2685ms | 262ms | ~250ms |
| シミュレーター向けビルド | 対応 | — | — | 対応 |
| 1 回の呼び出しでビルド + 実行 | 対応(逐次) | — | — | 対応(並列、約 9 秒高速化) |
| 構造化されたテスト結果 | 部分的 | — | — | 完全な xcresult JSON |
| xcresult から失敗時のスクリーンショットを取得 | — | — | — | 自動エクスポート |
| ファイルごとのコードカバレッジ | 基本 | — | — | 並べ替え・フィルター可能 |
| ビルドエラーの診断 | stderr の解析 | — | — | ファイル名と行番号を含む xcresult JSON |
| ナビゲーション(検索 + タップ + 確認) | — | — | — | 1 回の呼び出し(約 380ms) |
| ダブルタップ | — | — | — | 約 60ms |
| ドラッグ & ドロップ | — | 座標のみ(3 回の呼び出し) | — | 要素間(1 回の呼び出し) |
| 要素までスクロール | — | 手動のスワイプループ | — | SmartScroll(1 回の呼び出し) |
| アラート処理 | — | 単一のアラート | — | 3 段階検索 + accept_all の一括処理 |
| iOS 18 ContactsUI ダイアログ | — | — | — | 対応 |
| UI オートメーションの一括処理 | — | — | — | run_plan:適応型の判断を伴う複数ステップの計画 |
| ログのフィルタリング | サブシステムのみ | — | 部分的 | トピックでフィルター:トークンを 90% 削減 |
| 失敗したテストごとのコンソールログ | — | — | — | 任意 |
| ログパターンを待機 | — | — | — | 正規表現 + タイムアウト |
| ビジュアルリグレッション | — | — | — | ベースライン + ピクセル差分 |
| 複数デバイスでの確認 | — | — | — | ダークモード、横向き、iPad |
| クロスプラットフォーム(Android) | — | 対応 | — | — |
| ツール | 77(Rust) | 61(Node.js + Appium) | 15(Swift) | 58(ネイティブ Swift、8.5MB) |
| コールドスタート | ~400ms | ~1000ms | ~100ms | ~50ms |
SilbercueSwift が真価を発揮する場面
スクリーンショットが最大 75 倍高速 — 約 316ms(
約 15ms)
無料プランのスクリーンショット(約 316ms)は、XcodeBuildMCP(約 1127ms)やほとんどの代替手段より高速です。Pro では遅延が約 15ms になり、Appium より 5 倍、XcodeBuildMCP より 75 倍高速になります。どちらのプランでも、エージェントはペナルティを気にせず自由にスクリーンショットを撮影できます。
xcresult バンドルから構造化されたテスト結果を取得 — 失敗時の推測は不要 テストが失敗すると、エージェントにはエラーメッセージ、正確なファイル名と行番号、失敗時のスクリーンショット、必要に応じてコンソール出力が渡されます。これらはすべて、Apple の
.xcresult形式から解析されます。500 行に及ぶ xcodebuild の標準エラー出力から推測する必要はありません。「エージェントが何が壊れたのかを把握する」のと「エージェントが何が壊れたのかを推測する」の違いです。
単一バイナリ、依存関係ゼロ — 58 個のツールを 10 秒でインストール
brew install silbercue/silbercue/silbercueswift — これだけです。8.5MB のネイティブ Swift バイナリです。Node.js、npm、Appium サーバー、Python、Java、Rust ツールチェーンは不要です。コールドスタートは約 50ms。iOS MCP サーバーを最速で起動できます。
エージェントに必要な情報だけを読み取らせる — トークンを 90% 削減し、無駄な呼び出しをゼロに(トピックフィルタリング
)
無料プランでは、すでにノイズを除去します。既知のノイズプロセス 15 件を取得時に除外し、重複行をまとめることで、I/O を 79% 削減します。Pro ではトピックフィルタリングが追加されます。read_logs は行を 8 つのトピックに分類し、デフォルトではアプリとクラッシュのみを表示し、network(87) lifecycle(12) springboard(8) のようなメニューを提示します。エージェントは推測や試行を繰り返すことなく、1 回の呼び出しで特定のトピックを開けます。
すべての権限ダイアログを 1 回で閉じる — 1 回のラウンドトリップで 3 つのアラートを処理
すべてのアプリで、初回起動時に 2~3 個の権限ダイアログが表示されます。他のサーバーでは、ダイアログごとにエージェントがスクリーンショットを撮り、ボタンを探してクリックする必要があります。handle_alert(action: "accept_all") は SpringBoard、ContactsUI、アクティブなアプリを横断して検索し、すべてのダイアログを 1 回の呼び出しで閉じます。無料プランでは、accept / dismiss を使ってアラートを個別に処理します。
要素 ID でドラッグ&ドロップ — 3 回ではなく 1 回の呼び出し
「アイテム A をアイテム B の上にドラッグ」は、drag_and_drop(source_element: "el-0", target_element: "el-1") で 1 回呼び出すだけです。競合製品が対応するのは生の座標のみです。そのため、エージェントは両方の要素を探し、フレームを取得して、W3C Actions シーケンスを組み立てる必要があり、最低でも 3 回の呼び出しが必要です。
画面外の要素まで自動スクロール — 手動でスワイプを繰り返す必要はありません
find_element(using: "accessibility id", value: "Save", scroll: true) は、要素が表示されるまで自動的にスクロールします。SmartScroll は UIKit、SwiftUI、遅延読み込みリストに対応し、スクロール方向を推測する必要はありません。
約 31ms(Free)/約 5ms(Pro)でビュー階層を取得 — 要素の検査を最大 188 倍高速化
get_source は UI ツリー全体を約 31ms(Free)または約 5ms(Pro)で返します。最速の競合製品でも 44ms、ほとんどは 250ms 以上かかります。これにより、エージェントは実質的にコストをかけずに要素を検査できます。
1 回の呼び出しで画面遷移 — 要素検索+タップ+画面安定待ち+スクリーンショットを約 380ms で実行
navigate(to: "Settings") は要素を検索してタップし、画面が安定するまで待機して、確認用スクリーンショットを返します。すべて 1 回の呼び出しで完了します。これに対応する競合製品はありません。エージェントは画面遷移のたびに 3~4 回のツール呼び出しを削減できます。
UI 自動化の一括実行 — run_plan が複数ステップの計画を適応的な判断で実行します
run_planはUIステップのシーケンスを受け取り、サーバー側で実行します。ステップで判断が必要な場合(予期しないダイアログ、要素が見つからない場合)は、MCPサンプリングから一時停止と再開まで、4段階のフォールバックを行います。「タップごとにツールを1回呼び出す」オーバーヘッドはもうありません。
クイックスタート
Homebrew でインストール
brew tap silbercue/silbercue
brew install silbercueswift
またはソースからビルド
git clone https://github.com/silbercue/SilbercueSwift.git
cd SilbercueSwift
swift build -c release
cp .build/release/SilbercueSwift /usr/local/bin/
Claude Code で設定
コマンド1つで、すべてのプロジェクトにグローバルインストールできます。
claude mcp add --scope user SilbercueSwift /opt/homebrew/bin/SilbercueSwift
注: フルパス(
/opt/homebrew/bin/SilbercueSwift)を使用してください。Claude Code はフルシェル PATH を使わずに MCP サーバーを起動するため、コマンド名だけでは見つかりません。
Cursor で設定
~/.cursor/mcp.jsonに追加します。
{
"mcpServers": {
"SilbercueSwift": {
"command": "/opt/homebrew/bin/SilbercueSwift"
}
}
}
その他の MCP クライアント(Cline、Continue など)で設定
stdio MCP サーバーに対応するクライアントなら、引数なしで/opt/homebrew/bin/SilbercueSwiftを指定してください。
アンインストール
claude mcp remove --scope user SilbercueSwift
brew uninstall silbercueswift
brew untap silbercue/silbercue
無料版と Pro
SilbercueSwift では、ビルド、テスト、シミュレーション、UI の自動化、ログの取得、スクリーンショットの撮影に使える49個のツールを無料で利用できます。時間制限や登録はありません。
Pro では、すべてを把握する必要があるチームやパワーユーザー向けに、9個のツールが追加され、内部処理も高速化されます。
| 無料版 | Pro | |
|---|---|---|
| ビルド、テスト、シミュレーター管理 | 49個のツール | 58個のツール |
| スクリーンショット | ~316ms | ~15ms(75倍高速) |
| 構造化されたテスト結果(xcresult) | はい | はい |
| 要素の検索 | 31ms | <1ms |
| ビュー階層 | 31ms | ~5ms |
| タップ(座標) | 16ms | 4ms |
| クリック/入力/スワイプ/ダブルタップ/長押し/ドラッグ&ドロップ | はい | はい |
| ナビゲーション(検索 + タップ + 検証) | はい | はい |
| UI の一括自動化(run_plan) | はい | はい |
| アラート処理 | 個別に承認/却下 | + accept_all / dismiss_all による一括処理 |
| ログ取得 | スマート + 詳細 | + アプリモード、トピックフィルタリング |
| コンソール取得、git ツール | はい | はい |
| 要素までスクロール | — | SmartScroll |
| ビジュアルリグレッション | — | ベースライン + ピクセル差分 |
| 複数デバイスの確認 | — | ダークモード、横向き、iPad |
| アクセシビリティの確認 | — | Dynamic Type のレンダリング |
| ローカライズの確認 | — | 多言語 + RTL |
| ピンチ/ズーム | — | はい |
Pro は月額12 EURです。Polar.sh でライセンスを取得してから、次を実行してください。
silbercueswift activate <YOUR-LICENSE-KEY>
14カテゴリにわたる58個のツール
ビルド(5個のツール)
| ツール | 説明 |
|---|---|
build_sim | iOS Simulator 向けにビルドします — 構造化されたエラーを返し、バンドル ID とアプリのパスをキャッシュします |
build_run_sim | 1回の呼び出しでビルド + 起動 + インストール + 実行します — 並列2フェーズのパイプラインにより、順次実行より約9秒高速です |
clean | ビルド成果物をクリーンアップします |
discover_projects | .xcodeproj/.xcworkspace ファイルを検索します |
list_schemes | 利用可能なスキームを一覧表示します |
テストと診断(4個のツール)
| ツール | 説明 |
|---|---|
test_sim | テストを実行し、構造化された xcresult の概要(成功/失敗/所要時間)を表示します |
test_failures | エラーメッセージ、ファイル:行番号、失敗時のスクリーンショットとともに、失敗したテストを表示します |
test_coverage | ファイルごとのコードカバレッジを表示します。並べ替えとフィルタリングが可能です |
build_and_diagnose | ビルドし、xcresult から構造化されたエラー/警告を表示します |
シミュレーター(12個のツール)
| ツール | 説明 |
|---|---|
list_sims | 利用可能なシミュレーターを一覧表示します |
boot_sim | シミュレーターを起動します |
shutdown_sim | シミュレーターをシャットダウンします |
install_app | .app バンドルをインストールします |
launch_app | バンドル ID でアプリを起動します |
terminate_app | 実行中のアプリを終了します |
clone_sim | 既存のシミュレーターを複製します |
erase_sim | シミュレーターのコンテンツと設定を消去します |
delete_sim | シミュレーターを削除します |
set_orientation | WDA 経由でデバイスの向きを変更します(PORTRAIT、LANDSCAPE_LEFT、LANDSCAPE_RIGHT) |
sim_status | シミュレーターの状態(起動中/シャットダウン、デバイスの種類、ランタイム)を表示します |
sim_inspect | シミュレーターの詳細情報(データパス、ログパス、UDID)を表示します |
UI オートメーション(16 個のツール)
ジェスチャーにはネイティブ入力を、要素のクエリとアラートには WDA を使用します。Appium、Node.js、Python は不要です。
| ツール | 説明 | レイテンシ |
|---|---|---|
handle_alert | システムおよびアプリ内のアラートを承認、却下、または一括処理します | 約200ms |
find_element / find_elements | アクセシビリティ ID、述語、クラスチェーンで要素を検索します。scroll: true にすると、要素が表示されるまで自動スクロールします(SmartScroll — 3 つのフォールバック戦略) | 31ms ( |
click_element | UI 要素をタップします | 約75ms |
tap_coordinates | 座標を指定してタップします | 約16ms ( |
double_tap / long_press | 座標をダブルタップまたは長押しします | 約60ms / 約1000ms |
swipe | 指定した方向にスワイプします | 約250ms |
pinch | 拡大/縮小します | 約400ms |
drag_and_drop | ドラッグ元からドロップ先へドラッグします — 要素間、座標指定、またはその組み合わせに対応します。並べ替え可能なリスト、カンバンボード、スライダー向けのスマートなデフォルト設定を備えています | 約1.3秒 |
navigate | 検索+タップ+画面安定待ち+スクリーンショットを 1 回の呼び出しで実行します — 3〜4 回のラウンドトリップを削減します | 約380ms |
type_text / get_text | 要素にテキストを入力、または要素からテキストを読み取ります | 約100〜300ms |
get_source | ビュー階層全体(JSON/XML)を取得します | 約31ms ( |
wda_status / wda_create_session | WDA のヘルスチェックとセッション管理を行います | 約50〜100ms |
handle_alert — 最もスマートなアラートハンドラー
# Accept a single alert with smart defaults
handle_alert(action: "accept")
# Dismiss with a specific button label
handle_alert(action: "dismiss", button_label: "Not Now")
# Batch-accept ALL alerts after app launch (unique to SilbercueSwift)
handle_alert(action: "accept_all")
3 段階のアラート検索 — 次の場所からアラートを検索します。
- Springboard — システムの権限ダイアログ(位置情報、カメラ、トラッキング)
- ContactsUI — iOS 18 以降の連絡先の「限定アクセス」ダイアログ(別プロセス)
- アクティブなアプリ — アプリ内の
UIAlertControllerダイアログ
スマートなデフォルト設定 — タップするボタンを判断します。
- 承認:「許可」→「アプリの使用中は許可」→「OK」→「続ける」→ 最後のボタン
- 却下:「許可しない」(Unicode U+2019 に対応)→「キャンセル」→「今はしない」→ 最初のボタン
一括モード — accept_all / dismiss_all を使うと、サーバー側で連続する複数のアラートを順に処理します。N 回ではなく、HTTP ラウンドトリップ 1 回で済みます。処理したすべてのアラートの詳細を返します。
これらの機能は、現在ほかの iOS MCP サーバーが提供している範囲を超えています。
スクリーンショット(1 個のツール)
| ツール | レイテンシ |
|---|---|
screenshot | Free:約316ms / Pro:約15ms |
ログ(4 個のツール)
| ツール | 説明 |
|---|---|
start_log_capture | スマートフィルター付き os_log ストリーム — 3 つのモードがあります。smart(デフォルト。トピックフィルタリングが有効)、app(ストリームを絞り込み、自動検出)、verbose(フィルターなし)。繰り返しの行は重複排除されます。 |
stop_log_capture | キャプチャを停止します |
read_logs | トピックでフィルタリングして読み取ります — デフォルトではアプリとクラッシュのみが対象です。レスポンスには行数付きのトピックメニューが含まれます。include パラメーターでトピックを追加できます。 |
wait_for_log | タイムアウトを設定して正規表現パターンを待ちます — sleep() によるハックを不要にします |
スマートログフィルタリング — 4 層、設定不要
# Start capture (default: smart mode — broad stream, topic filtering enabled)
start_log_capture()
# Read logs — default shows only app logs + crashes + topic menu
read_logs()
# → --- 230 buffered, 42 shown [app, crashes] ---
# → Topics: app(35) crashes(2) | network(87) lifecycle(12) springboard(8) widgets(0) background(3) system(83)
# → Hint: include=["network"] to add SSL/TLS + background transfer logs
# → ---
# → [42 filtered lines]
# Agent sees network(87) and wants SSL details — one call:
read_logs(include: ["network"])
# Narrow stream for production monitoring:
start_log_capture(mode: "app")
# Bypass mode logic with explicit predicate:
start_log_capture(subsystem: "com.apple.SwiftUI")
4 つのフィルタリング層:
- ストリーム側のノイズ除外 — 既知のノイズプロセス 15 件とサブシステム/カテゴリの除外対象を、バッファリング前に削除します。
logdでのサーバー側フィルタリングにより、I/O を 79% 削減します。 - 3 つのキャプチャモード —
smart(デフォルト。トピックフィルタリング用に広範囲のストリームを取得)、app(絞り込み。バンドル ID とプロセス名を自動検出)、verbose(フィルタリングなし)。 - 読み取り時のトピックフィルタリング —
read_logsはバッファリングされた各行を 8 つのトピック(app、crashes、network、lifecycle、springboard、widgets、background、system)に分類します。デフォルトでは app と crashes のみを表示します。エージェントは必要に応じてトピックを追加します。呼び出しごとに状態は保持されません。 - バッファ内の重複排除 — 同一のハートビート行 60 件を、行そのものと
... repeated 59xの 2 件にまとめます。
LLM に最適化されたメニューを備えた 8 つのトピック:
| トピック | 対象 | 使用例 |
|---|---|---|
app(常時有効) | subsystem == bundleId または process == appName | アプリ:os_log、print()、NSLog() |
crashes(常時有効) | fault レベルのログ | あらゆるプロセスのクラッシュ |
network | trustd、nsurlsessiond | SSL/TLS 証明書、バックグラウンド転送 |
lifecycle | runningboardd、com.apple.runningboard.* | Jetsam、メモリプレッシャー、アプリの強制終了 |
springboard | SpringBoard | プッシュ通知、アプリの状態 |
widgets | chronod | WidgetKit のタイムライン、更新予算 |
background | com.apple.xpc.activity.* | BGTaskScheduler、バックグラウンドフェッチ |
system | 上記以外すべて | 警告:大量のログ |
コンソール(3 つのツール)
| ツール | 説明 |
|---|---|
launch_app_console | stdout/stderr をキャプチャしながらアプリを起動 |
read_app_console | コンソール出力を読み取る |
stop_app_console | コンソールのキャプチャを停止 |
Git(5 つのツール)
| ツール | 説明 |
|---|---|
git_status / git_diff / git_log | 読み取り操作 |
git_commit / git_branch | 書き込み操作 |
ビジュアルリグレッション(2 つのツール)
| ツール | 説明 |
|---|---|
save_visual_baseline | スクリーンショットを名前付きのベースラインとして保存 |
compare_visual | 現在の画面をベースラインと比較 — ピクセル差分と一致スコア |
マルチデバイス(1 つのツール)
| ツール | 説明 |
|---|---|
multi_device_check | 複数のシミュレーターでビジュアルチェックを実行(ダークモード、横向き、iPad)— レイアウトスコアを返します |
アクセシビリティ(1 つのツール) 
| ツール | 説明 |
|---|---|
accessibility_check | Dynamic Type のコンテンツサイズカテゴリごとに画面をレンダリング — テキストの切り詰めとレイアウトの問題を検出 |
ローカライズ(1 つのツール) 
| ツール | 説明 |
|---|---|
localization_check | RTL(アラビア語、ヘブライ語)を含む各言語で画面をレンダリング — レイアウトの崩れを検出 |
自動化(2 つのツール)
| ツール | 説明 |
|---|---|
run_plan | サーバー側で複数ステップの UI 自動化プランを実行 — 4 段階のフォールバックによる適応的な判断 |
run_plan_decide | 判断を指定して一時停止中のプランを再開 — MCP サンプリングに対応していないクライアント向け |
セッション(1 つのツール)
| ツール | 説明 |
|---|---|
set_defaults | プロジェクト、スキーム、シミュレーターのデフォルト値を設定 — パラメーターの繰り返し指定を回避 |
xcresult の解析 — 画期的な機能
問題
すべての Xcode MCP サーバーは、生の xcodebuild 出力を返します。テスト実行では、ノイズが 500 行以上に及びます。AI エージェントは、どのテストが失敗したのか、またその理由を確実に抽出できません。
解決策
SilbercueSwift は xcresulttool を使用して .xcresult バンドルを解析します。これは、Xcode のテストナビゲーターが使用するものと同じ構造化データです。
# One call, structured result
test_sim(project: "MyApp.xcodeproj", scheme: "MyApp")
→ Tests FAILED in 15.2s
12 total, 10 passed, 2 FAILED
FAIL: Login shows error message
LoginTests.swift:47: XCTAssertTrue failed
FAIL: Profile image loads
ProfileTests.swift:112: Expected non-nil value
Failure screenshots (2):
/tmp/ss-attachments/LoginTests_failure.png
/tmp/ss-attachments/ProfileTests_failure.png
Device: iPhone 16 Pro (18.2)
xcresult: /tmp/ss-test-1774607917.xcresult
エージェントが取得できる情報:
- 合格/失敗数 — すぐに全体像を把握できます
- ファイル名と行番号付きの失敗メッセージ — すぐに対処できます
- 失敗時のスクリーンショット — 視覚的なコンテキスト(Claude はマルチモーダルです)
- xcresult のパス —
test_failuresまたはtest_coverageで再利用できます
失敗の詳細分析
test_failures(xcresult_path: "/tmp/ss-test-*.xcresult", include_console: true)
→ FAIL: Login shows error message [LoginTests/testErrorMessage()]
LoginTests.swift:47: XCTAssertTrue failed
Screenshot: /tmp/ss-attachments/LoginTests_failure.png
Console:
[LoginService] Network timeout after 5.0s
[LoginService] Retrying with fallback URL...
✘ Test "Login shows error message" failed after 6.2s
コードカバレッジ
test_coverage(project: "MyApp.xcodeproj", scheme: "MyApp", min_coverage: 80)
→ Overall coverage: 72.3%
Target: MyApp.app (74.1%)
0.0% AnalyticsService.swift
45.2% LoginViewModel.swift
67.8% ProfileManager.swift
Target: MyAppTests.xctest (62.0%)
...
ベンチマーク
M3 MacBook Pro、iOS 26.4 シミュレーターで計測しました。すべての値は、ウォームアップを2回行った後の5回の実行の中央値です。
| アクション | iosef | XcodeBuildMCP | Appium-MCP | SS Free | SS Pro |
|---|---|---|---|---|---|
| スクリーンショット | 83ms | 1127ms | 77ms | 316ms | 15ms |
| 要素の検索 | 50ms | N/A | 76ms | 31ms | <1ms |
| タップ(座標指定) | 48ms | 235ms | 470ms | 16ms | 4ms |
| スワイプ | 262ms | 1284ms | 2685ms | ~250ms | ~250ms |
| ビュー階層 | 44ms | 259ms | 938ms | 31ms | 5ms |
| ナビゲーション(1回の呼び出し) | — | — | — | ~380ms | ~380ms |
| ダブルタップ | — | — | — | ~84ms | ~60ms |
| ドラッグ&ドロップ | — | 座標指定のみ | — | ~1.3s | ~1.3s |
| アラートの処理 | — | — | 118ms | ~200ms | ~200ms |
| 3つのアラートを処理(バッチ) | — | — | 3回の呼び出し | ~800ms(1回の呼び出し) | ~800ms(1回の呼び出し) |
| 要素までスクロール | — | — | スワイプのループ | — | 自動 |
| ビルド(クリーン) | — | 2501ms | — | 3188ms | 1800ms |
| シミュレーター一覧 | 12ms | 567ms | — | 15ms | 15ms |
| コールドスタート | ~100ms | ~400ms | ~1000ms | ~50ms | ~50ms |
| バイナリサイズ | ~5MB | ~4MB | ~200MB | 8.5MB | 8.5MB |
他の MCP サーバーとの比較
XcodeBuildMCP、Appium-MCP、iosefとの詳細な比較については、上記の機能比較表をご覧ください。この3つはいずれも、iOS MCP ツールの先駆けとなった優れたプロジェクトです。SilbercueSwift は、これらすべての機能を組み合わせ、単一のネイティブバイナリにさらに深く統合しています。唯一のトレードオフは、SilbercueSwift が iOS 専用であることです(Android、watchOS、tvOS、visionOS には対応していません)。
アーキテクチャ
SilbercueSwift (8.5MB Swift binary)
├── MCP SDK (modelcontextprotocol/swift-sdk)
├── StdioTransport (JSON-RPC)
└── 58 Tools in 14 Categories
Build · Test · Simulator · Screenshot · UI Automation
Logs · Console · Visual Regression · Multi-Device
Accessibility · Localization · Automation · Git · Session
Node.js も Python も Appium サーバーも Selenium も不要です。バイナリは1つだけです。
必要条件
- macOS 13+
- Xcode 15+(
xcresulttoolとsimctl用) - Swift 6.0+(ソースからビルドする場合)
- シミュレーターに WebDriverAgent がインストールされていること(UI 自動化ツール用)
ライセンス
コアバイナリと49個すべての無料ツールはMIT ライセンスです。詳しくはLICENSEをご覧ください。商用利用を含め、用途を問わず使用できます。
Pro ツール(追加の9個のツールと、より高速な内部処理)には有料ライセンスが必要です。ライセンス検証コード(LicenseManager.swift)は透明性を確保するためソースに含まれており、何をいつチェックするのかを正確に確認できます。
コントリビューション
Issue とプルリクエストを歓迎します。ガイドラインについてはCONTRIBUTING.mdをご覧ください。
プライバシー
SilbercueSwift はすべての処理をお使いの Mac 上で実行し、ユーザーデータを収集しません。詳しくはPRIVACY.mdをご覧ください。
ブラウザーの自動化もお考えですか?Public Browserは、Chrome 向けの同じアイデアです。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。