Skip to main content
Glama

devices

Destructive

Phones this key can use. op=list: name, label (the name people see in the dashboard, e.g. "Phone #3"), number, state (running / stopped / starting), Android version and network exit. Every tool takes the name, the label or the number. op=start / op=stop / op=restart with device: start a stopped phone (one to three minutes until it has booted), stop one (it keeps its apps and data) or restart it. op=reset with device: back to a fresh state - apps and data wiped, same Android version; works whether the phone runs or is stopped. Ask the user before reset. op=rename with device and label: give a phone a name (empty = back to "Phone #N"). op=delete with device: the phone moves to Trash for 14 days - stopped, not billed, apps and data kept - and op=restore brings it back (stopped). forever=true deletes it with all its data at once and cannot be undone: only when the user says so. op=trash: what is in Trash (name, label, android, deleted_at, purge_at, reason). op=restore with device: back from Trash (the name or label as shown by op=trash).

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "devices"
  }
}

Input Schema

NameRequiredDescriptionDefault
opNolist (default) | start | stop | restart | reset | rename | delete | trash | restorelist
labelNorename: the new name, up to 40 characters
deviceNodevice (name, label or number) - for everything except list and trash
foreverNodelete: true wipes the phone with all its data at once instead of moving it to Trash (cannot be undone)

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedInput schema / properties / device / description
      Previous value: -"device (name, label or number), for start / stop / rename"New value: +"device (name, label or number) - for everything except list and trash"
    • addedInput schema / properties / forever
      Added value: +{
      +  "default": false,
      +  "description": "delete: true wipes the phone with all its data at once instead of moving it to Trash (cannot be undone)",
      +  "title": "Forever",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / op / description
      Previous value: -"list (default) | start | stop | rename"New value: +"list (default) | start | stop | restart | reset | rename | delete | trash | restore"
  2. Changed3 schema fields changed
    • changedInput schema / properties / device / description
      Previous value: -"device name, for start/stop"New value: +"device (name, label or number), for start / stop / rename"
    • addedInput schema / properties / label
      Added value: +{
      +  "default": "",
      +  "description": "rename: the new name, up to 40 characters",
      +  "title": "Label",
      +  "type": "string"
      +}
    • changedInput schema / properties / op / description
      Previous value: -"list (default) | start | stop"New value: +"list (default) | start | stop | rename"
  3. Changed3 schema fields changed
    • addedInput schema / properties / device / description
      Added value: +"device name, for start/stop"
    • addedInput schema / properties / op / description
      Added value: +"list (default) | start | stop"
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "result": {
      +      "additionalProperties": true,
      +      "title": "Result",
      +      "type": "object"
      +    }
      +  },
      +  "required": [
      +    "result"
      +  ],
      +  "title": "devicesOutput",
      +  "type": "object"
      +}
  4. First observed

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is known; the description goes further by disclosing that reset wipes apps and data, that delete is a 14-day Trash with billing stopped, that forever=true is irreversible, and that a start takes one to three minutes to boot. That is genuinely valuable context beyond the annotations, but the boot-time and Trash-retention facts sit inside a dense paragraph rather than being surfaced as their own cues.

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 write-up is front-loaded with op=list and then walks the remaining ops in a logical order, and every sentence carries operational detail. It is still a long single block, and the field list for op=list (name, label, number, state, Android version, network exit) is the least essential stretch given the output schema already covers return shape.

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?

The description covers all nine operations, the identity parameter convention, and the destructive-path warnings, which is ample for a four-parameter tool that also ships an output schema. The one gap is that restore and trash are described but the relationship between a trashed device's identifier and its pre-trash name is only implied.

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 the schema already documents all four parameters and their roles. The description still adds meaning the schema lacks: that device accepts a name, label or number interchangeably, and that an empty label on rename reverts the phone to its default 'Phone #N' form. Those are real semantic additions rather than restatements.

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 names the resource (phones/devices) and enumerates every operation with a concrete verb: list, start, stop, restart, reset, rename, delete, trash, restore. It is unmistakable what the tool manages, though it never contrasts itself with siblings like apps or run, so the agent must infer that device lifecycle belongs here rather than there.

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?

Each op carries its own when-to-use context: reset is 'back to a fresh state' and requires 'Ask the user before reset', forever=true is 'only when the user says so', and rename with an empty label restores 'Phone #N'. Exclusions and preconditions are stated explicitly for the risky paths, which is exactly what an agent needs before mutating state.

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.