Silbercueswift

by silbercue

354 downloads Not rated yet

About

The fastest, most complete MCP server for iOS development. Native Swift binary, 55 tools, 20ms screenshots via CoreSimulator IOSurface, structured xcresult test results, direct WebDriverAgent UI automation. Zero dependencies.

Explore

- 58 tools in a single 8.5 MB native Swift binary
- Zero dependencies — install in 10 seconds
- Screenshots at ~316ms (Free) or ~15ms (Pro)
- Structured test results from .xcresult bundles
- Navigate in one call (find + tap + verify)
- View hierarchy in ~31ms (Free) or ~5ms (Pro)
- Drag & drop with element IDs (1 call instead of 3)

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Silbercueswift
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

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

brew tap silbercue/silbercue
brew install silbercueswift

One command — installs globally for all projects:

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.

claude mcp remove --scope user SilbercueSwift
brew uninstall silbercueswift
brew untap silbercue/silbercue

```bash

build_sim

Build for iOS Simulator — returns structured errors + caches bundle ID & app path

build_run_sim

Build + boot + install + launch in one call — parallel 2-phase pipeline, ~9s faster than sequential

clean

Clean build artifacts

discover_projects

Find .xcodeproj/.xcworkspace files

list_schemes

List available schemes

test_sim

Run tests + structured xcresult summary (pass/fail/duration)

test_failures

Failed tests with error messages, file:line, and failure screenshots

test_coverage

Code coverage per file, sorted and filterable

build_and_diagnose

Build + structured errors/warnings from xcresult

list_sims

List available simulators

boot_sim

Boot a simulator

shutdown_sim

Shut down a simulator

install_app

Install .app bundle

launch_app

Launch app by bundle ID

terminate_app

Terminate running app

clone_sim

Clone an existing simulator

erase_sim

Erase simulator content and settings

delete_sim

Delete a simulator

set_orientation

Rotate device (PORTRAIT, LANDSCAPE_LEFT, LANDSCAPE_RIGHT) via WDA

sim_status

Simulator state (booted/shutdown, device type, runtime)

sim_inspect

Detailed simulator info (data path, log path, UDID)

handle_alert

**Accept, dismiss, or batch-handle system & in-app alerts**

click_element

Tap a UI element

tap_coordinates

Coordinate-based tap

swipe

Directional swipe

pinch

Zoom in/out

drag_and_drop

**Drag from source to target** — element-to-element, coordinates, or mixed. Smart defaults for reorderable lists, Kanban boards, sliders

navigate

**Find + tap + settle + screenshot in 1 call** — saves 3-4 roundtrips

get_source

Full view hierarchy (JSON/XML)

screenshot

Free: **~316ms** / Pro: **~15ms**

start_log_capture

**Smart-filtered os_log stream** — 3 modes: `smart` (default, topic filtering enabled), `app` (tight stream, auto-detected), `verbose` (unfiltered). Deduplicates repetitive lines.

stop_log_capture

Stop capture

read_logs

**Topic-filtered reading** — default: app + crashes only. Response includes topic menu with line counts. Add topics via `include` parameter.

wait_for_log

Wait for regex pattern with timeout — eliminates sleep() hacks

launch_app_console

Launch app with stdout/stderr capture

read_app_console

Read console output

stop_app_console

Stop console capture

save_visual_baseline

Save a screenshot as a named baseline

compare_visual

Compare current screen against baseline — pixel diff + match score

multi_device_check

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

accessibility_check

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

localization_check

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

run_plan

Execute a multi-step UI automation plan server-side — adaptive decisions with 4-tier fallback

run_plan_decide

Resume a paused plan with a decision — for clients without MCP sampling

set_defaults

Set default project, scheme, simulator — avoids repeating params

| Tool | Description |
|---|---|
| build_sim | Build for iOS Simulator — returns structured errors + caches bundle ID & app path |
| build_run_sim | Build + boot + install + launch in one call — parallel 2-phase pipeline, ~9s faster than sequential |
| clean | Clean build artifacts |
| discover_projects | Find .xcodeproj/.xcworkspace files |
| list_schemes | List available schemes |

| Tool | Description |
|---|---|
| test_sim | Run tests + structured xcresult summary (pass/fail/duration) |
| test_failures | Failed tests with error messages, file:line, and failure screenshots |
| test_coverage | Code coverage per file, sorted and filterable |
| build_and_diagnose | Build + structured errors/warnings from xcresult |

| Tool | Description |
|---|---|
| list_sims | List available simulators |
| boot_sim | Boot a simulator |
| shutdown_sim | Shut down a simulator |
| install_app | Install .app bundle |
| launch_app | Launch app by bundle ID |
| terminate_app | Terminate running app |
| clone_sim | Clone an existing simulator |
| erase_sim | Erase simulator content and settings |
| delete_sim | Delete a simulator |
| set_orientation | Rotate device (PORTRAIT, LANDSCAPE_LEFT, LANDSCAPE_RIGHT) via WDA |
| sim_status | Simulator state (booted/shutdown, device type, runtime) |
| sim_inspect | Detailed simulator info (data path, log path, UDID) |

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

| Tool | Description | Latency |
|---|---|---|
| handle_alert | Accept, dismiss, or batch-handle system & in-app alerts | ~200ms |
| find_element / find_elements | Find elements by accessibility ID, predicate, class chain. scroll: true auto-scrolls until the element appears (SmartScroll — 3 fallback strategies) | 31ms<br>( <1ms) |
| click_element | Tap a UI element | ~75ms |
| tap_coordinates | Coordinate-based tap | ~16ms<br>( ~4ms) |
| double_tap / long_press | Double tap or long press at coordinates | ~60ms / ~1000ms |
| swipe | Directional swipe | ~250ms |
| pinch | Zoom in/out | ~400ms |
| drag_and_drop | Drag from source to target — element-to-element, coordinates, or mixed. Smart defaults for reorderable lists, Kanban boards, sliders | ~1.3s |
| navigate | Find + tap + settle + screenshot in 1 call — saves 3-4 roundtrips | ~380ms |
| type_text / get_text | Type into or read from elements | ~100-300ms |
| get_source | Full view hierarchy (JSON/XML) | ~31ms<br>( ~5ms) |
| wda_status / wda_create_session | WDA health check & session management | ~50-100ms |

| Tool | Latency |
|---|---|
| screenshot | Free: ~316ms / Pro: ~15ms |

| Tool | Description |
|---|---|
| start_log_capture | Smart-filtered os_log stream — 3 modes: smart (default, topic filtering enabled), app (tight stream, auto-detected), verbose (unfiltered). Deduplicates repetitive lines. |
| stop_log_capture | Stop capture |
| read_logs | Topic-filtered reading — default: app + crashes only. Response includes topic menu with line counts. Add topics via include parameter. |
| wait_for_log | Wait for regex pattern with timeout — eliminates sleep() hacks |

| Tool | Description |
|---|---|
| launch_app_console | Launch app with stdout/stderr capture |
| read_app_console | Read console output |
| stop_app_console | Stop console capture |

| Tool | Description |
|---|---|
| git_status / git_diff / git_log | Read operations |
| git_commit / git_branch | Write operations |

| Tool | Description |
|---|---|
| save_visual_baseline | Save a screenshot as a named baseline |
| compare_visual | Compare current screen against baseline — pixel diff + match score |

| Tool | Description |
|---|---|
| multi_device_check | Run visual checks across multiple simulators (Dark Mode, Landscape, iPad) — returns layout scores |

| Tool | Description |
|---|---|
| accessibility_check | Render screens across Dynamic Type content size categories — detects truncation and layout issues |

| Tool | Description |
|---|---|
| localization_check | Render screens across languages including RTL (Arabic, Hebrew) — detects layout breaks |

| Tool | Description |
|---|---|
| run_plan | Execute a multi-step UI automation plan server-side — adaptive decisions with 4-tier fallback |
| run_plan_decide | Resume a paused plan with a decision — for clients without MCP sampling |

| Tool | Description |
|---|---|
| set_defaults | Set default project, scheme, simulator — avoids repeating params |

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

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

McpServers

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

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

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 get | XcodeBuildMCP | Appium-MCP | iosef | SilbercueSwift |
|---|---|---|---|---|
| Screenshot latency | ~1127ms | ~77ms | ~83ms | ~316ms<br>( ~15ms, 75x) |
| View hierarchy | ~259ms | ~938ms | ~44ms | ~31ms<br>( ~5ms) |
| Find element | — | 76ms | 50ms | 31ms<br>( <1ms + auto-scroll) |
| Tap (coordinates) | 235ms | 470ms | 48ms | 16ms<br>( 4ms) |
| Swipe | 1284ms | 2685ms | 262ms | ~250ms |
| Build for simulator | Yes | — | — | Yes |
| Build + Run in one call | Yes (sequential) | — | — | Yes (parallel, ~9s faster) |
| Structured test results | Partial | — | — | Full xcresult JSON |
| Failure screenshots from xcresult | — | — | — | Auto-exported |
| Code coverage per file | Basic | — | — | Sorted, filterable |
| Build error diagnosis | stderr 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 filtering | Subsystem only | — | Partial | Topic-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 | — | — |
| Tools | 77 (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 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

brew tap silbercue/silbercue
brew install silbercueswift

Or build from source

git clone https://github.com/silbercue/SilbercueSwift.git
cd SilbercueSwift
swift build -c release
cp .build/release/SilbercueSwift /usr/local/bin/

Configure in Claude Code

One command — installs globally for all projects:

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.

Uninstall

claude mcp remove --scope user SilbercueSwift
brew uninstall silbercueswift
brew 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.

| | Free | Pro |
|---|---|---|
| Build, test, sim management | 49 tools | 58 tools |
| Screenshot | ~316ms | ~15ms (75x faster) |
| Structured test results (xcresult) | Yes | Yes |
| Find element | 31ms | <1ms |
| View hierarchy | 31ms | ~5ms |
| Tap (coordinates) | 16ms | 4ms |
| Click / type / swipe / double tap / long press / drag & drop | Yes | Yes |
| Navigate (find + tap + verify) | Yes | Yes |
| Batch UI automation (run_plan) | Yes | Yes |
| Alert handling | Single accept/dismiss | + Batch accept_all / dismiss_all |
| Log capture | Smart + verbose | + App mode, topic filtering |
| Console capture, git tools | Yes | Yes |
| 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:

silbercueswift activate <YOUR-LICENSE-KEY>

58 Tools in 14 Categories

Build (5 tools)

| Tool | Description |
|---|---|
| build_sim | Build for iOS Simulator — returns structured errors + caches bundle ID & app path |
| build_run_sim | Build + boot + install + launch in one call — parallel 2-phase pipeline, ~9s faster than sequential |
| clean | Clean build artifacts |
| discover_projects | Find .xcodeproj/.xcworkspace files |
| list_schemes | List available schemes |

Testing & Diagnostics (4 tools)

| Tool | Description |
|---|---|
| test_sim | Run tests + structured xcresult summary (pass/fail/duration) |
| test_failures | Failed tests with error messages, file:line, and failure screenshots |
| test_coverage | Code coverage per file, sorted and filterable |
| build_and_diagnose | Build + structured errors/warnings from xcresult |

Simulator (12 tools)

| Tool | Description |
|---|---|
| list_sims | List available simulators |
| boot_sim | Boot a simulator |
| shutdown_sim | Shut down a simulator |
| install_app | Install .app bundle |
| launch_app | Launch app by bundle ID |
| terminate_app | Terminate running app |
| clone_sim | Clone an existing simulator |
| erase_sim | Erase simulator content and settings |
| delete_sim | Delete a simulator |
| set_orientation | Rotate device (PORTRAIT, LANDSCAPE_LEFT, LANDSCAPE_RIGHT) via WDA |
| sim_status | Simulator state (booted/shutdown, device type, runtime) |
| sim_inspect | Detailed 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.

| Tool | Description | Latency |
|---|---|---|
| handle_alert | Accept, dismiss, or batch-handle system & in-app alerts | ~200ms |
| find_element / find_elements | Find elements by accessibility ID, predicate, class chain. scroll: true auto-scrolls until the element appears (SmartScroll — 3 fallback strategies) | 31ms<br>( <1ms) |
| click_element | Tap a UI element | ~75ms |
| tap_coordinates | Coordinate-based tap | ~16ms<br>( ~4ms) |
| double_tap / long_press | Double tap or long press at coordinates | ~60ms / ~1000ms |
| swipe | Directional swipe | ~250ms |
| pinch | Zoom in/out | ~400ms |
| drag_and_drop | Drag from source to target — element-to-element, coordinates, or mixed. Smart defaults for reorderable lists, Kanban boards, sliders | ~1.3s |
| navigate | Find + tap + settle + screenshot in 1 call — saves 3-4 roundtrips | ~380ms |
| type_text / get_text | Type into or read from elements | ~100-300ms |
| get_source | Full view hierarchy (JSON/XML) | ~31ms<br>( ~5ms) |
| wda_status / wda_create_session | WDA health check & session management | ~50-100ms |

handle_alert — the smartest alert handler

```bash

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.