SilbercueSwift

io.github.silbercue由 GitHub 帳號 silbercue 發布v0.2.0更新於 Oct 24, 2026

Fastest iOS MCP server. 40 tools: xcresult parsing, WDA automation, 0.3s screenshots.

已驗證STDIO僅桌面瀏覽器自動化開發者工具

概覽

AI 產生的概覽

本機 macOS MCP 伺服器,讓 AI 助理建置、測試並操作 iOS 模擬器應用程式,提供結構化 xcresult 結果與 UI 自動化。

可以做什麼
  • 建置與執行:為模擬器建置、一次呼叫完成建置並執行、清理、尋找專案檔、列出 scheme。
  • 測試與診斷:執行測試、取得含檔案行號與截圖的失敗資訊、查看依檔案統計的覆蓋率、診斷建置錯誤。
  • 模擬器管理:列出、開機、關機、複製、清除、刪除模擬器,安裝、啟動、終止應用程式,旋轉螢幕,查看狀態。
  • UI 自動化:尋找元素、點擊、輸入、滑動、縮放、拖放、導覽、處理提示對話框、讀取檢視階層、執行多步驟計畫。
  • 擷取與排查:截圖、具主題篩選與正規表達式等待的 os_log 日誌擷取、應用程式主控台輸出。
  • 品質檢查與 Git:視覺基準比對、多裝置檢查、無障礙與在地化檢查,以及 Git 狀態、差異、日誌、提交與分支操作。
適用情境
適合在 Mac 上開發 iOS 應用程式時使用:助理需要建置應用程式、執行測試、讀取結構化失敗資訊,或直接操作模擬器介面,而不必解析原始 xcodebuild 輸出。僅適用於 iOS 專案,不涵蓋 Android、watchOS、tvOS 或 visionOS。
執行需求
以本機程序執行,需要 macOS 13+ 與 Xcode 15+(用於 xcresulttool 和 simctl);僅從原始碼建置時需要 Swift 6.0+。UI 自動化工具需要在模擬器上安裝 WebDriverAgent。可透過 Homebrew 或封裝檔安裝,設定時需填寫二進位檔完整路徑。未宣告環境變數或驗證方式。
安裝前請注意
工具會寫入並改變狀態:建置、安裝、啟動與終止應用程式,清除或刪除模擬器,並執行 Git 提交與分支操作。部分功能(更快的截圖、SmartScroll、視覺回歸、多裝置、無障礙與在地化檢查、雙指縮放、批次提示對話框處理)需要付費 Pro 授權,每月 12 歐元,需以授權金鑰啟用。README 稱其完全在本機執行且不收集使用者資料。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 SilbercueSwift,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

SilbercueSwift

[GitHub Release] [Free — 49 tools] [Pro available] [License: MIT] [MCP Registry] [Platform] [Swift 6.0] [SilbercueSwift MCP server]

[Capabilities covered, of 19 compared: SilbercueSwift 18, XcodeBuildMCP 6, Appium-MCP 4, iosef 1]

The fastest, most complete MCP server for iOS development. One Swift binary, 58 tools, zero dependencies. SilbercueSwift has the most complete toolset of any alternative out there.

Built for Claude Code, Cursor, and any MCP-compatible AI agent.

Looking for an alternative to existing iOS MCP servers? SilbercueSwift covers the full feature set of XcodeBuildMCP, Appium-MCP, and iosef in a single binary — plus xcresult parsing, UI automation, code coverage, and up to 75x faster screenshots. See comparison below.

Why SilbercueSwift?

Every iOS MCP server has the same problem: raw xcodebuild output is useless for AI agents. 500 lines of build log, stderr noise mistaken for errors, no structured test results. Agents waste minutes parsing what a human sees in seconds.

SilbercueSwift fixes this. It parses .xcresult bundles — the same structured data Xcode uses internally — and returns exactly what the agent needs: pass/fail counts, failure messages with file:line, code coverage per file, and failure screenshots.

What you getXcodeBuildMCPAppium-MCPiosefSilbercueSwift
Screenshot latency~1127ms~77ms~83ms~316ms
([圖片] ~15ms, 75x)
View hierarchy~259ms~938ms~44ms~31ms
([圖片] ~5ms)
Find element—76ms50ms31ms
([圖片] <1ms + auto-scroll)
Tap (coordinates)235ms470ms48ms16ms
([圖片] 4ms)
Swipe1284ms2685ms262ms~250ms
Build for simulatorYes——Yes
Build + Run in one callYes (sequential)——Yes (parallel, ~9s faster)
Structured test resultsPartial——Full xcresult JSON
Failure screenshots from xcresult———Auto-exported
Code coverage per fileBasic——Sorted, filterable
Build error diagnosisstderr parsing——xcresult JSON with file:line
Navigate (find + tap + verify)———1 call (~380ms)
Double tap———~60ms
Drag & drop—Coordinates only (3 calls)—Element-to-element (1 call)
Scroll to element—Manual swipe loop—SmartScroll (1 call) [圖片]
Alert handling—Single alert—3-tier search + batch accept_all [圖片]
iOS 18 ContactsUI dialog———Supported
Batch UI automation———run_plan: multi-step plans with adaptive decisions
Log filteringSubsystem only—PartialTopic-filtered: 90% fewer tokens [圖片]
Console log per failed test———Optional
Wait for log pattern———Regex + timeout
Visual regression———Baseline + pixel diff [圖片]
Multi-device check———Dark Mode, Landscape, iPad [圖片]
Cross-platform (Android)—Yes——
Tools77 (Rust)61 (Node.js + Appium)15 (Swift)58 (Native Swift, 8.5MB)
Cold start~400ms~1000ms~100ms~50ms

Where SilbercueSwift really shines

[killer feat] Screenshots up to 75x faster — ~316ms ([圖片] ~15ms)

Free tier screenshots (~316ms) are faster than XcodeBuildMCP (~1127ms) and most alternatives. Pro brings latency down to ~15ms — 5x faster than Appium, 75x faster than XcodeBuildMCP. Agents can take screenshots freely without penalty at either tier.

[killer feat] Structured test results from xcresult bundles — zero guesswork on failures

When a test fails, the agent gets the error message, the exact file:line, a screenshot of the failure state, and optionally the console output — all parsed from Apple's .xcresult format. No guessing from 500 lines of xcodebuild stderr. This is the difference between "agent knows what broke" and "agent guesses what broke".

[killer feat] Single binary, zero dependencies — 58 tools, install in 10 seconds

brew install silbercue/silbercue/silbercueswift — done. 8.5MB native Swift binary. No Node.js, no npm, no Appium server, no Python, no Java, no Rust toolchain. Cold start in ~50ms. The fastest way to get an iOS MCP server running.

[killer feat] Agent reads only what matters — 90% fewer tokens, zero wasted calls (topic filtering [圖片])

Free tier already strips noise: 15 known noise processes are excluded at capture time, and duplicate lines are collapsed (79% I/O reduction). Pro adds topic filtering — read_logs categorizes lines into 8 topics and shows only app + crashes by default, with a menu: network(87) lifecycle(12) springboard(8). The agent opens specific topics in one call — no guessing, no iteration.

[strong] One call to dismiss all permission dialogs — 3 alerts in 1 roundtrip [圖片]

Every app shows 2–3 permission dialogs on first launch. Other servers require the agent to screenshot → find button → click, per dialog. handle_alert(action: "accept_all") clears them all in a single call, searching across SpringBoard, ContactsUI, and the active app. Free tier handles alerts individually with accept / dismiss.

[strong] Drag & drop with element IDs — 1 call instead of 3 [圖片]

"Drag item A above item B" is a single call: drag_and_drop(source_element: "el-0", target_element: "el-1"). The competition only supports raw coordinates, forcing the agent to find both elements, extract their frames, and build a W3C Actions sequence — 3 calls minimum.

[strong] Auto-scroll to off-screen elements — no more manual swipe loops [圖片]

find_element(using: "accessibility id", value: "Save", scroll: true) scrolls automatically until the element appears. SmartScroll handles UIKit, SwiftUI, and lazy-loaded lists — no guessing scroll direction.

[strong] View hierarchy in ~31ms (Free) / ~5ms (Pro) — up to 188x faster element inspection

get_source returns the full UI tree in ~31ms (Free) or ~5ms (Pro). The fastest competitor takes 44ms, most take 250ms+. This makes element inspection practically free for agents.

[killer feat] Navigate in one call — find + tap + settle + screenshot in ~380ms

navigate(to: "Settings") finds the element, taps it, waits for the screen to settle, and returns a verification screenshot — all in a single call. No competitor offers this. Agents save 3-4 tool calls per navigation step.

[strong] Batch UI automation — run_plan executes multi-step plans with adaptive decisions

run_plan takes a sequence of UI steps and executes them server-side. When a step needs a decision (unexpected dialog, element not found), it falls back through 4 tiers — from MCP sampling to pause & resume. No more "one tool call per tap" overhead.

Quick Start

Install via Homebrew

bash
brew tap silbercue/silbercuebrew install silbercueswift

Or build from source

bash
git clone https://github.com/silbercue/SilbercueSwift.gitcd SilbercueSwiftswift build -c releasecp .build/release/SilbercueSwift /usr/local/bin/

Configure in Claude Code

One command — installs globally for all projects:

bash
claude mcp add --scope user SilbercueSwift /opt/homebrew/bin/SilbercueSwift

Note: Use the full path (/opt/homebrew/bin/SilbercueSwift). Claude Code starts MCP servers without a full shell PATH, so bare command names won't be found.

Configure in Cursor

Add to ~/.cursor/mcp.json:

json
{  "mcpServers": {    "SilbercueSwift": {      "command": "/opt/homebrew/bin/SilbercueSwift"    }  }}

Configure in other MCP clients (Cline, Continue, etc.)

Any client that supports stdio MCP servers: point to /opt/homebrew/bin/SilbercueSwift with no arguments.

Uninstall

bash
claude mcp remove --scope user SilbercueSwiftbrew uninstall silbercueswiftbrew untap silbercue/silbercue

Free vs Pro

SilbercueSwift ships 49 tools for free — build, test, simulate, automate UI, capture logs, and take screenshots. No time limit, no signup.

Pro adds 9 tools and faster internals for teams and power users who need the full picture.

FreePro
Build, test, sim management49 tools58 tools
Screenshot~316ms~15ms (75x faster)
Structured test results (xcresult)YesYes
Find element31ms<1ms
View hierarchy31ms~5ms
Tap (coordinates)16ms4ms
Click / type / swipe / double tap / long press / drag & dropYesYes
Navigate (find + tap + verify)YesYes
Batch UI automation (run_plan)YesYes
Alert handlingSingle accept/dismiss+ Batch accept_all / dismiss_all
Log captureSmart + verbose+ App mode, topic filtering
Console capture, git toolsYesYes
Scroll to element—SmartScroll
Visual regression—Baseline + pixel diff
Multi-device check—Dark Mode, Landscape, iPad
Accessibility check—Dynamic Type rendering
Localization check—Multi-language + RTL
Pinch / zoom—Yes

Pro costs 12 EUR/month. Get a license on Polar.sh, then:

bash
silbercueswift activate <YOUR-LICENSE-KEY>

58 Tools in 14 Categories

Build (5 tools)

ToolDescription
build_simBuild for iOS Simulator — returns structured errors + caches bundle ID & app path
build_run_simBuild + boot + install + launch in one call — parallel 2-phase pipeline, ~9s faster than sequential
cleanClean build artifacts
discover_projectsFind .xcodeproj/.xcworkspace files
list_schemesList available schemes

Testing & Diagnostics (4 tools)

ToolDescription
test_simRun tests + structured xcresult summary (pass/fail/duration)
test_failuresFailed tests with error messages, file:line, and failure screenshots
test_coverageCode coverage per file, sorted and filterable
build_and_diagnoseBuild + structured errors/warnings from xcresult

Simulator (12 tools)

ToolDescription
list_simsList available simulators
boot_simBoot a simulator
shutdown_simShut down a simulator
install_appInstall .app bundle
launch_appLaunch app by bundle ID
terminate_appTerminate running app
clone_simClone an existing simulator
erase_simErase simulator content and settings
delete_simDelete a simulator
set_orientationRotate device (PORTRAIT, LANDSCAPE_LEFT, LANDSCAPE_RIGHT) via WDA
sim_statusSimulator state (booted/shutdown, device type, runtime)
sim_inspectDetailed simulator info (data path, log path, UDID)

UI Automation (16 tools)

Native input for gestures, WDA for element queries and alerts — no Appium, no Node.js, no Python.

ToolDescriptionLatency
handle_alertAccept, dismiss, or batch-handle system & in-app alerts~200ms
find_element / find_elementsFind elements by accessibility ID, predicate, class chain. scroll: true auto-scrolls until the element appears (SmartScroll — 3 fallback strategies)31ms
([圖片] <1ms)
click_elementTap a UI element~75ms
tap_coordinatesCoordinate-based tap~16ms
([圖片] ~4ms)
double_tap / long_pressDouble tap or long press at coordinates~60ms / ~1000ms
swipeDirectional swipe~250ms
pinchZoom in/out~400ms [圖片]
drag_and_dropDrag from source to target — element-to-element, coordinates, or mixed. Smart defaults for reorderable lists, Kanban boards, sliders~1.3s
navigateFind + tap + settle + screenshot in 1 call — saves 3-4 roundtrips~380ms
type_text / get_textType into or read from elements~100-300ms
get_sourceFull view hierarchy (JSON/XML)~31ms
([圖片] ~5ms)
wda_status / wda_create_sessionWDA health check & session management~50-100ms
handle_alert — the smartest alert handler
bash
# Accept a single alert with smart defaultshandle_alert(action: "accept")
# Dismiss with a specific button labelhandle_alert(action: "dismiss", button_label: "Not Now")
# Batch-accept ALL alerts after app launch (unique to SilbercueSwift)handle_alert(action: "accept_all")

3-tier alert search — finds alerts across:

  1. Springboard — system permission dialogs (Location, Camera, Tracking)
  2. ContactsUI — iOS 18+ Contacts "Limited Access" dialog (separate process)
  3. Active app — in-app UIAlertController dialogs

Smart defaults — knows which button to tap:

  • Accept: "Allow" → "Allow While Using App" → "OK" → "Continue" → last button
  • Dismiss: "Don't Allow" (handles Unicode U+2019) → "Cancel" → "Not Now" → first button

Batch mode — accept_all / dismiss_all loops through multiple sequential alerts server-side. One HTTP roundtrip instead of N. Returns details of every handled alert.

These capabilities go beyond what other iOS MCP servers currently offer.

Screenshots (1 tool)

ToolLatency
screenshotFree: ~316ms / Pro: ~15ms

Logs (4 tools)

ToolDescription
start_log_captureSmart-filtered os_log stream — 3 modes: smart (default, topic filtering enabled), app (tight stream, auto-detected), verbose (unfiltered). Deduplicates repetitive lines.
stop_log_captureStop capture
read_logsTopic-filtered reading — default: app + crashes only. Response includes topic menu with line counts. Add topics via include parameter.
wait_for_logWait for regex pattern with timeout — eliminates sleep() hacks
Smart Log Filtering — 4 layers, zero config
bash
# Start capture (default: smart mode — broad stream, topic filtering enabled)start_log_capture()
# Read logs — default shows only app logs + crashes + topic menuread_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 filter layers:

  1. Stream-side noise exclusion — 15 known noise processes + subsystem/category exclusions removed before buffering. Server-side filtering in logd — 79% I/O reduction.
  2. 3 capture modes — smart (default, broad stream for topic filtering), app (tight, auto-detected bundle ID + process name), verbose (unfiltered).
  3. Read-time topic filtering — read_logs categorizes every buffered line into 8 topics (app, crashes, network, lifecycle, springboard, widgets, background, system). Default shows only app + crashes. Agent adds topics as needed — stateless per call.
  4. Buffer deduplication — 60 identical heartbeat lines become 2: the line itself + ... repeated 59x.

8 topics with LLM-optimized menu:

TopicMatchesUse case
app (always on)subsystem == bundleId OR process == appNameYour app: os_log, print(), NSLog()
crashes (always on)fault-level logsCrashes from any process
networktrustd, nsurlsessiondSSL/TLS certs, background transfers
lifecyclerunningboardd, com.apple.runningboard.*Jetsam, memory pressure, app kills
springboardSpringBoardPush notifications, app state
widgetschronodWidgetKit timeline, refresh budget
backgroundcom.apple.xpc.activity.*BGTaskScheduler, background fetch
systemeverything elseWARNING: high volume

Console (3 tools)

ToolDescription
launch_app_consoleLaunch app with stdout/stderr capture
read_app_consoleRead console output
stop_app_consoleStop console capture

Git (5 tools)

ToolDescription
git_status / git_diff / git_logRead operations
git_commit / git_branchWrite operations

Visual Regression (2 tools)

ToolDescription
save_visual_baselineSave a screenshot as a named baseline
compare_visualCompare current screen against baseline — pixel diff + match score

Multi-Device (1 tool)

ToolDescription
multi_device_checkRun visual checks across multiple simulators (Dark Mode, Landscape, iPad) — returns layout scores

Accessibility (1 tool) [圖片]

ToolDescription
accessibility_checkRender screens across Dynamic Type content size categories — detects truncation and layout issues

Localization (1 tool) [圖片]

ToolDescription
localization_checkRender screens across languages including RTL (Arabic, Hebrew) — detects layout breaks

Automation (2 tools)

ToolDescription
run_planExecute a multi-step UI automation plan server-side — adaptive decisions with 4-tier fallback
run_plan_decideResume a paused plan with a decision — for clients without MCP sampling

Session (1 tool)

ToolDescription
set_defaultsSet default project, scheme, simulator — avoids repeating params

xcresult Parsing — The Killer Feature

The Problem

Every Xcode MCP server returns raw xcodebuild output. For a test run, that's 500+ lines of noise. AI agents can't reliably extract which tests failed and why.

The Solution

SilbercueSwift uses xcresulttool to parse the .xcresult bundle — the same structured data Xcode's Test Navigator uses.

# One call, structured resulttest_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

The agent gets:

  • Pass/fail counts — immediate overview
  • Failure messages with file:line — actionable
  • Failure screenshots — visual context (Claude is multimodal)
  • xcresult path — reusable for test_failures or test_coverage

Deep Failure Analysis

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

Code Coverage

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%)     ...

Benchmarks

Measured on M3 MacBook Pro, iOS 26.4 Simulator. All values are median of 5 runs after 2 warmups.

ActioniosefXcodeBuildMCPAppium-MCPSS FreeSS Pro
Screenshot83ms1127ms77ms316ms15ms
Find element50msN/A76ms31ms<1ms
Tap (coordinates)48ms235ms470ms16ms4ms
Swipe262ms1284ms2685ms~250ms~250ms
View hierarchy44ms259ms938ms31ms5ms
Navigate (1 call)———~380ms~380ms
Double tap———~84ms~60ms
Drag & drop—coords only—~1.3s~1.3s
Handle alert——118ms~200ms~200ms
Handle 3 alerts (batch)——3 calls~800ms (1 call)~800ms (1 call)
Scroll to element——swipe loop—Automatic
Build (clean)—2501ms—3188ms1800ms
Simulator list12ms567ms—15ms15ms
Cold start~100ms~400ms~1000ms~50ms~50ms
Binary size~5MB~4MB~200MB8.5MB8.5MB

Comparison with other MCP servers

See feature comparison table above for a detailed breakdown vs XcodeBuildMCP, Appium-MCP, and iosef. All three are excellent projects that pioneered iOS MCP tooling. SilbercueSwift combines all their feature sets with deeper integration into a single native binary. The only trade-off: SilbercueSwift is iOS-only (no Android, watchOS, tvOS, or visionOS).

Architecture

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

No Node.js. No Python. No Appium server. No Selenium. One binary.

Requirements

  • macOS 13+
  • Xcode 15+ (for xcresulttool and simctl)
  • Swift 6.0+ (for building from source)
  • WebDriverAgent installed on simulator (for UI automation tools)

License

The core binary and all 49 free tools are MIT licensed — see LICENSE. Use them however you want, commercially or otherwise.

Pro tools (9 additional tools + faster internals) require a paid license. The license validation code (LicenseManager.swift) is included in the source for transparency — you can see exactly what it checks and when.

Contributing

Issues and pull requests welcome. See CONTRIBUTING.md for guidelines.

Privacy

SilbercueSwift runs entirely on your Mac and collects no user data. See PRIVACY.md for details.


Automating a browser too? Public Browser is the same idea for Chrome.

來源:README.md,提交 b6ceba4

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.2.0最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分