Skip to main content
Glama

Uninstall an app

uninstall
Destructive

Remove an installed app from an Android or iOS device by package name, optionally targeting a specific device by ID or name.

Instructions

Remove an app.

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": {
      "package": "<package>"
    },
    "name": "uninstall"
  }
}

Input Schema

NameRequiredDescriptionDefault
deviceNoId or name.
packageYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

C2.4/5.0
Behavior2/5

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

The annotations already declare destructiveHint=true and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond that: it doesn't say what happens to app data, whether the device defaults to a single connected device, or what the tool returns on failure (e.g. package not installed).

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 a single short sentence with zero waste, but its brevity comes from under-specification rather than efficiency. The core action is front-loaded, which is the only structural merit.

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

Completeness2/5

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

For a destructive mutation with no output schema and an undocumented required parameter, the definition should cover at least the package identifier format and default device behavior. Neither is present, leaving the agent to infer how to call a destructive tool safely.

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

Parameters2/5

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

Schema coverage is only 50%: 'package' has no description and the description says nothing about its format (bundle id, app id, human name?). With low coverage, the description should compensate but instead adds no parameter meaning at all.

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

Purpose3/5

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

"Remove an app" states a specific verb and resource, which is clearer than the bare tool name 'uninstall'. However, it just restates the title and gives no way to distinguish it from the sibling 'uninstall_runner', which by name sounds like the same operation on a different target.

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?

There is no guidance on when to use this tool versus install/launch/terminate or, critically, versus uninstall_runner. An agent has to guess which of the two uninstall variants applies to its situation.

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