Skip to main content
Glama

Install a .app bundle

ios_install_app

Installs a simulator build (.app directory from EAS or Xcode DerivedData) onto a chosen or booted iOS Simulator, enabling immediate app testing.

Instructions

Installs a simulator build (.app directory, e.g. from eas build --local or Xcode DerivedData).

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "appPath": "<appPath>"
    },
    "name": "ios_install_app"
  }
}

Input Schema

NameRequiredDescriptionDefault
deviceNoSimulator udid or name. Default "booted" (the running simulator).
appPathYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

B3.4/5.0
Behavior3/5

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

Annotations declare readOnlyHint=false and destructiveHint=false, so the write/safety profile is already covered. The description usefully clarifies the accepted artifact form (.app directory rather than an .ipa/.tar), but omits operational behavior: whether an existing install is replaced, whether the app is launched afterward, permission/entitlement requirements, and typical failure modes.

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

Conciseness5/5

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

A single front-loaded sentence with the key constraint (simulator .app directory) stated immediately and the parenthetical examples earning their place by disambiguating build output formats. No filler or restatement of the tool name.

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

Completeness3/5

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

A low-complexity two-parameter mutation tool with annotations and no output schema, so the bar is modest, and the artifact semantics are well covered. Still missing are the simulator-precondition and post-install state (does it overwrite, does it launch), which an agent needs to sequence this against ios_boot and ios_launch_app.

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

Parameters4/5

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

With only 50% schema coverage, the description does real work by explaining what appPath must point at — a .app directory, not an archive — plus realistic sources for it. The device parameter's meaning is already fully documented in the schema, so no further compensation is needed there.

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?

States a specific verb (installs) and resource (simulator build .app directory), with concrete provenance examples (`eas build --local`, Xcode DerivedData) that make the artifact type unambiguous. It is clearly distinct from android_install_apk by naming 'simulator build', though it never explicitly contrasts with iOS siblings like ios_launch_app or ios_apps.

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

Usage Guidelines2/5

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

No when-to-use or when-not-to-use guidance is given: nothing says the simulator must be booted first, that this is a prerequisite step before ios_launch_app, or how it differs from ios_apps. Only an implied workflow (install then launch) can be inferred, and the 'booted' default lives in the schema rather than the description.

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