Skip to main content
Glama
MCP Appium

MCP Appium

appium_mobile_permissions

Get, update, or reset Android app permissions and iOS Simulator privacy services during automated mobile tests, filtering results and targeting specific apps or sessions.

Instructions

Get/update Android app permissions or iOS Simulator privacy services; reset iOS privacy prompts. See action-specific parameters.

Input Schema

NameRequiredDescriptionDefault
idNoApp ID; overrides name. Android defaults to the app under test; required for iOS get/update.
grepNoAndroid get: keep only permission names containing this text (case-insensitive).
nameNoApp name resolved to an ID. Android defaults to the app under test; alternative to id for iOS get/update.
accessNoiOS update only: map of access rule → yes|no|unset|limited (Simulator + AppleSimulatorUtils). Required for iOS update.
actionYesget: list (Android) or read one privacy state (iOS Simulator). update: grant/revoke (Android) or set privacy map (iOS Simulator). reset: restore a privacy prompt for the app under test (iOS only).
targetNoAndroid update: pm (default) or appops.
serviceNoiOS get: privacy service name (e.g. camera, microphone, photos). iOS reset: service name or numeric XCUIProtectedResource id.
sessionIdNoSession ID; defaults to the active session.
permissionsNoAndroid update only: permission name(s), `all` (with pm target), or appops names. Required for Android update.
permissionFilterNoAndroid get only: which bucket to return. Defaults to requested per UiAutomator2.
permissionChangeActionNoAndroid update: for pm target grant (default) or revoke; for appops allow, deny, ignore, default.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.99.3

TDQS

B3.4/5.0
Behavior3/5

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

Annotations declare a non-read-only, closed-world tool, and the description correctly reflects that mixed read/write nature plus the platform boundary (iOS reset is Simulator-only, reset is iOS-only). It does not disclose prerequisites such as AppleSimulatorUtils for iOS, permission/entitlement requirements, or what state is lost on reset, so it adds only moderate context beyond annotations.

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

Conciseness4/5

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

A single front-loaded sentence pairs the action scope with the platform scope, and the trailing pointer to action-specific parameters is short. The only weakness is that 'See action-specific parameters' spends words without conveying information.

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?

For an 11-parameter, nested-object tool with no output schema, the description conveys the operation surface but leaves platform prerequisites and the relationship between action and required parameters to the schema. It is adequate given the rich schema, but not self-sufficient for an agent choosing between the three actions.

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 description coverage is 100%, so every parameter is already documented in the schema, including action, target, service, access, and permissionChangeAction. The description adds nothing parameter-specific beyond pointing at the schema, which matches the baseline for fully covered schemas.

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 uses specific verbs and a named resource: read/update Android app permissions, read/update iOS Simulator privacy services, and reset iOS privacy prompts. It clearly separates the two platforms, which no sibling tool covers, though it does not explicitly name a sibling it is distinct from.

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?

Platform scoping (Android vs iOS Simulator) implies when each path applies, but there is no explicit when-to-use guidance and no routing away from adjacent tools such as appium_driver_settings or appium_app_lifecycle. 'See action-specific parameters' defers the decision to the schema rather than explaining it.

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