Skip to main content
Glama

Android Developer MCP by Nova (CIVAI)

send_app_for_review

Send the app's pending changes to Google Play review — the API behind Play Console's "Send app for review". OUTWARD-FACING AND NOT FREELY REVERSIBLE: for an app that has never shipped this is the submission that decides whether it can be published at all. DRY-RUN BY DEFAULT — it reports what would be sent and sends nothing until commit="true". Confirm with the user first, exactly like start_rollout. It fetches the publishing page's continuation token itself and round-trips it, which is what Play actually requires; the dry run also reports Play's own blocked flag, the best machine-readable "can this be sent?" in this capture. A FAILED_PRECONDITION here is NOT reliably a setup-task problem — that was wrong for a whole session. Read the dry run's publishing_page block and Play Console's Publishing overview before blaming the app's state.

Input Schema

NameRequiredDescriptionDefault
commitNo"true" actually submits. Omit or "false" for a dry run. Never pass "true" without the user's explicit agreement in this conversation.
play_app_idYesNumeric Play app id from the Play Console URL (.../app/<this>/...). NOT the package name.
developer_idYesNumeric Play Console developer id (from the Play Console URL).
include_sectionsNoComma-separated non-track sections to include: store_listing, store_settings, app_content, preregistration, advanced_distribution. Mirrors the Publishing overview's own groups - include each group that shows pending changes.
review_behaviourNo"review_immediately" (default) or "queue_for_review".
include_track_idsNoComma-separated numeric track ids whose pending changes this submission covers (AppChangesToInclude.trackIds). Play Console always sends this selection; with neither this nor a section list the server has an empty selection and answers FAILED_PRECONDITION. To submit everything pending, pass every track that has pending changes on the Publishing overview.
number_of_changesNoThe number of pending changes being submitted, exactly as Play Console's own "Submit N changes for review" button reads it. REQUIRED IN PRACTICE: Play treats this as a confirmation count and answers FAILED_PRECONDITION when it is missing, even when the Console's own button is enabled on the same pending set. Read N from the Publishing overview; do not guess.
google_account_emailYesThe signed-in Google account email that owns this Play Console developer account. 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.
publishing_behaviourNo"automatic" (default — changes go live as soon as review passes) or "manual" (hold for a manual go-live). Confirm which the user wants.
send_session_headersNoDiagnostic only. "true" also sends the Console's own X-Play-Console-Session-Id and Accept-Language headers. Measured 2026-10-28: these are NOT required - the submission succeeds without them. Leave unset unless a write is refused for a reason the payload cannot explain.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior4/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 so well: it flags the operation as outward-facing and not freely reversible, notes that for a never-shipped app this decides publishability, discloses the dry-run default, the continuation-token round-trip, the blocked flag on the dry run, and the misleading FAILED_PRECONDITION semantics. It stops short of describing what a successful commit returns or how long review typically takes, so it is not exhaustive.

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?

The most important constraint — outward-facing, dry-run by default — is front-loaded in the first two sentences. The remainder is dense with operative warnings, though the aside about a past session being wrong is editorial and slightly chatty rather than instructional.

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

Completeness4/5

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

For an 11-parameter, annotation-free, no-output-schema mutation of this severity, the description covers risk, defaults, confirmation, token mechanics, and failure-mode interpretation. It leaves success/return verification implicit — the agent is not told how to confirm the submission landed beyond reading the dry run — which keeps it just short of complete.

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 coverage is 100%, so each of the 11 parameters is already documented in the schema, which sets the baseline at 3. The description reinforces the commit gate and the dry run's blocked/publishing_page outputs, but adds little parameter-level syntax or interaction detail beyond what the schema already states for include_sections, include_track_ids, number_of_changes, and review_behaviour.

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 — sending the app's pending changes to Google Play review — and anchors it to the exact Play Console action it mirrors. It is clearly distinguishable from siblings like start_rollout (already-shipped releases), submit_prod_access_application (access request), and get_app_submission_state (read-only inspection).

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?

Explicitly says to confirm with the user first, ties the pattern to start_rollout, and explains that the default is a dry run that sends nothing until commit="true". It also gives concrete guidance on interpreting a FAILED_PRECONDITION (read the dry run's publishing_page block and the Publishing overview before assuming a setup-task problem), which is exactly the when/when-not routing an agent needs.

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