Skip to main content
Glama

Android Developer MCP by Nova (CIVAI)

grant_app_permission

Grant a principal (teammate or service account) access to ONE app, as an APPEND that preserves every existing app grant and all account-level permissions. Use it to give a CI service account release access to a newly-created app — the step the androidpublisher API cannot do for a release-scoped service account (it 403s, it cannot grant itself access); this runs on the owner's Play Console session. DRY-RUN BY DEFAULT: with commit omitted/not "true" it pre-reads and returns the exact before/after WITHOUT writing — show that to the user and get their explicit agreement to this specific account-permissions change, then re-run with commit="true". A relayed approval is not the user's approval. The write is append-only (refuses to drop or shrink any existing grant), scoped so account-level permissions are untouched, and re-reads afterwards to prove the append. For the permission set, prefer copy_permissions_from_app_id (copies an existing grant's values verbatim — matches the account's pattern and names no enum value).

Input Schema

NameRequiredDescriptionDefault
commitNoMust be exactly "true" (or "yes") to actually write. Omit/anything else = dry-run that returns the before/after without writing. Only set it once the USER has agreed to this specific account-permissions change after seeing the dry-run.
developer_idYesNumeric Play Console developer id (from the Play Console URL).
target_app_idYesNUMERIC app id (from the Play Console URL) of the app to grant access to — NOT the package name.
write_variantNoRequest shape for the grant write: "auto" (default) tries the known-good shapes in order. Pin a specific variant only when debugging a refused grant.
permission_valuesNoAlternative to copy_permissions_from_app_id: a JSON array of integer permission values for a least-privilege set, e.g. "[1,6]" (CAN_ACCESS_APP, CAN_MANAGE_TRACK_APKS — upload + testing-track release).
target_user_emailYesThe principal being granted access — e.g. the CI service account …@….iam.gserviceaccount.com. Must already exist on the account.
google_account_emailYesThe signed-in owner account email that is acting. Call list_accounts first and confirm with the user — do not guess.
notification_messageNoShort user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names.
copy_permissions_from_app_idNoPreferred: numeric app id of an app the principal ALREADY has, whose permission values are copied verbatim onto the new grant. Matches the existing pattern and avoids naming any enum value.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations, the description carries the full burden and does well: it discloses the dry-run default, the append-only refusal to drop/shrink grants, that account-level permissions are untouched, the owner-session execution context, and a post-write re-read to prove the append. It falls short of a 4-5 only because it omits failure/error modes beyond the 403 case (e.g., what happens if the principal doesn't exist, or what the returned before/after looks like).

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?

Front-loaded with the verb and scope, and the append-only constraint appears early. However, it runs long with somewhat repetitive framing ('as an APPEND that preserves every existing app grant' then later 'append-only... refuses to drop or shrink'), and the dry-run approval protocol spills across several sentences, so it is dense rather than tight.

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

Completeness5/5

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

For a 9-parameter mutation tool with no annotations and no output schema, the description covers the safety model, the approval gate, the append semantics, the owner-context, and the verification re-read. An agent has everything needed to call it correctly once the user approves the dry-run.

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 the baseline is 3. The description adds modest value by pushing copy_permissions_from_app_id over permission_values, but the schema already documents the commit gating, the numeric-id caveats, and the enum values, so the description does not meaningfully extend parameter semantics.

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

Purpose5/5

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

States a specific verb and resource ('Grant a principal access to ONE app') and immediately qualifies it as an append-only operation that preserves existing grants and account-level permissions. This distinguishes it from the sibling get_user_permissions (read) and points at copy_permissions_from_app_id as the companion, so an agent can identify the tool without opening the schema.

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

Usage Guidelines5/5

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

Gives an explicit concrete use case (CI service account release access to a newly-created app) and explains why the alternative path fails ('the androidpublisher API... 403s, it cannot grant itself access'). It also names the preferred parameter alternative ('prefer copy_permissions_from_app_id') and prescribes the exact dry-run-then-commit workflow, leaving nothing to inference.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources