Public leaderboard

Public assessment

ios-simulator-mcp (ios-simulator-mcp)

ios-simulator-mcp · v1.6.0 · scanned

What changed in the harness

Selection accuracy 96→98, token cost up 9%, unconfirmed writes 0%→0%.

Category breakdown

Where the score comes from.

Earned points across the four signals Gradable measures. Safety and Legibility are scored out of 30; Economics and Discoverability are scored out of 20.

01Safety

0.0 / 30

0.0 out of 30
02Legibility

23.9 / 30

23.9 out of 30
03Economics

19.1 / 20

19.1 out of 20
04Discoverability

10.1 / 20

10.1 out of 20

Highest-impact fix

Estimated gain +30 points

Add explicit identity and permission preflight tools

Expose machine-readable principal/tenant confirmation and a non-mutating permission check so agents can verify both before destructive actions.

Description evidence

Defects and rewrites.

12 defects found across the exposed tool descriptions. Suggested rewrites make purpose, inputs, boundaries, and returns easier for an agent to understand.

Tool Defect types Suggested rewrite
get_booted_sim_id
name_restates_behavior no_return_description
Returns the UDID of the simulator that is currently booted, suitable for use as the `udid` argument in other tools. Use it to target commands at the active simulator when no UDID is otherwise known.
open_simulator
name_restates_behavior no_return_description
Launches the iOS Simulator application so its window is visible on the host Mac, and returns once the app has been opened. Use it before interacting with the simulated screen via the UI tools.
ui_describe_all
no_return_description
Returns accessibility information for every element currently on screen in the iOS Simulator, including labels, identifiers, types, and coordinates, useful for discovering the full UI hierarchy before interacting with it.
ui_tap
no_return_description
Performs a tap at the given (x, y) point on the simulator screen and returns once the tap has been dispatched. Use coordinates obtained from the UI describe/find tools to tap on a specific element.
ui_type
params_unexplained no_return_description
Types the given printable ASCII text (up to 500 characters) into the currently focused input field in the iOS Simulator and returns once the text has been entered. Use it to fill text fields after tapping or focusing them.
ui_swipe
no_return_description
Performs a swipe gesture from (x_start, y_start) to (x_end, y_end) on the simulator screen and returns once the gesture completes. Use it for scrolling or dragging, optionally controlling the duration or the size of each step.
ui_view
no_return_description
Returns the image content of a compressed screenshot of the current simulator view, for visually inspecting the current UI state.
screenshot
name_restates_behavior no_return_description
Captures the current screen of the iOS Simulator and saves the image to the specified `output_path` in the requested format (png, tiff, bmp, gif, or jpeg), returning once the file has been written.
record_video
name_restates_behavior no_return_description
Starts recording a video of the iOS Simulator screen, saving it to `output_path` (or a generated name in the configured output directory) using the specified codec and display, returning once recording has started. Combine with stop_recording to end the capture.
stop_recording
name_restates_behavior no_return_description
Ends the currently running simulator video recording and finalizes the output file, returning once the recording process has been stopped. Use it after starting a capture with record_video.
install_app
name_restates_behavior no_return_description
Installs the given app bundle (.app directory or .ipa file) onto the iOS Simulator so it can be launched later via launch_app, returning once installation completes.
launch_app
no_return_description
Launches the app identified by `bundle_id` on the iOS Simulator, optionally terminating a running instance first and passing environment variables to the process, returning once the app has been launched.

Selection evidence

Confusable tool pairs.

3 pairs where similar names or overlapping descriptions may send an agent toward the wrong tool.

Tool A Tool B Confidence Why they collide
ui_describe_all ui_describe_point medium Both share the 'describe accessibility' concept; a task like 'describe the accessibility elements on the screen' is ambiguous about scope (whole screen vs. a specific coordinate), so an agent could select the wrong granularity without clear user intent.
ui_describe_point ui_find_element medium Both return accessibility elements; a task phrased as 'find/return the accessibility element' without clarifying whether criteria or coordinates are being given is genuinely ambiguous between the coordinate-based and search-based tools.
install_app launch_app low A vague task like 'get the app on the simulator' or 'set up the app to run' overlaps install vs. launch, though the explicit verbs 'install' and 'run/open' typically disambiguate, making real confusion unlikely.

Compare the field

One score is useful.
The evidence makes it actionable.

Back to the leaderboard