Skip to main content
Glama
@mgcrea/mcp-ios-simulator

@mgcrea/mcp-ios-simulator

by mgcrea

iOS Simulator: Diagnostics

ios_simulator_diagnostics
Read-only

Diagnose iOS simulator state: report which simulators exist and are usable, which one this server drives, screen geometry, and whether WebDriverAgent is responding on each runner port.

Instructions

Report both lanes separately and never fail: which simulators exist and which are usable, which one this server would drive, its screen geometry, and whether WebDriverAgent is answering — including every simulator's runner and its port, and which one the target's taps would reach. Start here when anything else misbehaves.

Input Schema

NameRequiredDescriptionDefault
deviceNoWhich simulator: its UDID or its name as shown by ios_simulator_list. Omit it when exactly one is booted — that is the normal case, and IOS_SIMULATOR_ID pins it when it is not. Unlike simctl's own `booted`, this never picks arbitrarily between two.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With readOnlyHint=true already declaring safety, the description still contributes meaningful behavior: 'never fail' promises a partial-success report instead of an error, and 'both lanes separately' implies independent simctl and WebDriverAgent status are never collapsed. It does not convey the response shape or what a degraded report looks like, so the addition is real but partial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is compact, but the first sentence is an overstuffed relative clause chain and leads with the opaque 'both lanes separately' rather than the plain statement that this tool reports simulator and WebDriverAgent diagnostics. The short imperative at the end is the clearest part and would work better front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the burden of describing returns, and it does enumerate the reported facts, including the failure-triage entry point. Missing are any indication of format, verbosity, or how 'usable' and 'answering' are determined, but for a read-only diagnostic this is close to sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the parameter's own description already covers UDID-or-name, the omit-when-single-booted rule, IOS_SIMULATOR_ID pinning, and the non-arbitrary selection versus simctl's `booted`. The tool description adds nothing about the `device` argument, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names concrete outputs: which simulators exist and are usable, which one the server would drive, screen geometry, WebDriverAgent health, runner ports, and which device taps would reach. That is a specific diagnostics resource an agent can distinguish from action-oriented siblings like ios_simulator_tap. However, the opening phrase 'Report both lanes separately' is unexplained jargon and the tool is never explicitly contrasted with the overlapping ios_simulator_list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Start here when anything else misbehaves' gives a real triage trigger that implies use before other simulator tools or when they fail. There is no explicit when-not guidance, and no differentiation from ios_simulator_list, which also enumerates simulators, so an agent must infer which to call for plain listing versus diagnosis.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.