Skip to main content
Glama

install app

install_app

Install an app from Phonebox's app library by package name, in the background. It doesn't reach Google Play: to get a Play Store app, open the Play Store app on the phone with act and install it there. To check on an install later, open the app with act: open_app answers app_not_found until the install has finished. With upload instead of package, it installs your own APK (see create_app_upload) and waits until the phone lists the app, or says why it failed. While that upload is still installing on the phone, and for 10 minutes after that install succeeds, calling install_app again with it starts nothing: a repeat only waits for it, or reports it.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
uploadNoAn upload of your own APK whose status is ready, from complete_app_upload. Give this or package.
packageNoThe app's Android package name, such as com.whatsapp: an app from Phonebox's app library. Give this or upload.
replaceNoWith upload: uninstall the app first when it is on the phone, which deletes its data. Use it for a build signed with another key, or an older version_code.
phone_idYesPhone ID from create_phone or list_phones.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior4/5

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

Goes well beyond the annotations: background execution, no Play Store reach, the app_not_found symptom until install completes, the wait-until-listed semantics for uploads, and the 10-minute window where a repeated upload call only waits rather than starting a new install. It also discloses that `replace` uninstalls and deletes app data — a destructive effect the destructiveHint=false annotation does not surface, though that hint reasonably describes the default path.

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?

Front-loads the core purpose in the first clause and every sentence carries operational information. It is on the dense/verbose side with some run-on sentences, but the length is justified by the tool's genuinely complex install/verification semantics.

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?

With no output schema, the description compensates by explaining what a call resolves to (waits until the phone lists the app, or reports the failure reason) and how to confirm success later. Combined with the sibling references and edge-case handling, an agent has everything needed to call it and interpret the result.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3, but the description adds real semantic context: `upload` is your own APK and its install is awaited, `package` targets the Phonebox library, and `replace` is tied to re-signed builds or older version_codes and deletes data. Minor inconsistency: it points to create_app_upload while the schema says the upload comes from complete_app_upload.

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+resource (install an app) and immediately bounds the scope: Phonebox's app library by package name, or your own APK via upload, run in the background. It also distinguishes itself from Play Store installs, naming `act` as the route for those, so an agent can tell it apart from siblings without reading schemas.

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 explicit when-to-use routing: use install_app for library packages or uploads, use `act` on the Play Store for Play apps, and use `create_app_upload` before passing an upload. It also names the alternative verification path (`open_app` via `act`) and the repeat-call case, leaving little 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.