Skip to main content
Glama

create_app

Describe an app and it appears on the phone. Pass an app spec (JSON, shipvo.app/v0: data, actions, screens). The spec is checked first: every problem comes back with its path and a fix, and nothing is installed until it is valid. A valid spec is started, gets an icon on the home screen, and opens (pass open: false to stay where you are). Every control is labelled, so tap, type, scroll and screen work on it like any app, and each action can be run by name with run_app_action. Fails with invalid_spec, bad_app_id or already_installed. Logged in device_log as a real create.

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": {
      "session": "<session>",
      "id": "<id>",
      "spec": "<spec>"
    },
    "name": "create_app"
  }
}

Input Schema

NameRequiredDescriptionDefault
idYesApp id: lowercase letters, digits and dashes, up to 40
nameNoName under the icon. Default: app.name in the spec
openNoOpen the app right away (default true)
specYesThe app spec (shipvo.app/v0)
styleNoLook of the app. Default android
sessionYesSession from open_app

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.5/5.0
Behavior5/5

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

Adds substantial behavior beyond the annotations: validation precedes installation, nothing is installed until the spec is valid, every problem returns with a path and a fix, and the tool fails with invalid_spec, bad_app_id or already_installed. It also discloses the side effects the annotations don't cover — icon on the home screen, app opens by default, and a create entry in device_log.

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-loaded with purpose and packed with useful detail in a short span, with the failure modes and logging note closing it cleanly. A few clauses, particularly the accessibility sentence about labelled controls, are dense but still earn their place as downstream guidance.

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 a 6-parameter mutation tool with a nested free-form spec and no output schema, the description covers validation, defaults, errors, and downstream usability well. It stops short of describing what comes back on success (e.g. the returned app handle), which is the only notable gap.

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 goes further by naming the spec dialect and its internal shape (data, actions, screens), which the schema leaves as an empty additionalProperties object. The open: false behavior is restated but the nested spec content is meaning the schema genuinely lacks.

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 up front: 'Describe an app and it appears on the phone', then names the artifact (a shipvo.app/v0 spec with data, actions, screens). An agent can tell this is authoring a new app from a spec rather than installing an existing package, and the closing note 'Logged in device_log as a real create' pins down the semantic.

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

Usage Guidelines4/5

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

Gives clear operating context: pass a spec, spec is validated first, pass open: false to stay put, and each action can later be run by name with run_app_action. It does not explicitly say when to prefer this over install_app or request_app_install, so the exclusion boundary is left 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.