ios_uninstall_app
Uninstall an app from an iOS device by bundle ID. No automation session required.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| udid | Yes | iOS device UDID | |
| bundleId | Yes | App bundle ID to uninstall |
Uninstall an app from an iOS device by bundle ID. No automation session required.
| Name | Required | Description | Default |
|---|---|---|---|
| udid | Yes | iOS device UDID | |
| bundleId | Yes | App bundle ID to uninstall |
Changes observed during successful MCP inspections.
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the disclosure burden. It adds the useful behavioral context that no automation session is required, but it does not explicitly state that the operation is destructive/irreversible or whether it depends on app installation state. The uninstall semantics are largely implied by the verb itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, no fluff. The core action and key prerequisite are front-loaded, making the definition easy to scan and act on.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter destructive tool with no output schema, the description is largely complete. It states what is done, how, and the key precondition. It could be slightly richer by mentioning irreversibility or that the app must already be installed, but these are minor gaps at this complexity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the input schema already documents both parameters. The description reinforces that the operation is 'by bundle ID' but adds no format details or additional semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action ('Uninstall an app'), a specific platform ('iOS device'), and the method ('by bundle ID'). This is clearly distinguishable from sibling tools like ios_terminate_app or ios_kill_app, and the iOS scope differentiates it from device_uninstall_app.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a clear and useful usage condition: 'No automation session required.' This tells the agent this is a standalone operation, unlike many other iOS tools that require an active session. It does not explicitly name alternatives or exclusions, but the context is clear enough for correct selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.