Skip to main content
Glama

Allocate Remote Device

mobile_allocate_remote_device

Reserve a physical remote iOS or Android device for exclusive session use when no local device is available, returning an identifier for other mobile tools. Requires login and user consent.

Instructions

Reserve a physical device from the remote cloud fleet for exclusive use, returning a device identifier usable with the other mobile_* tools. Unlike local devices, a remote device is a shared and billed resource borrowed for the session - never call this silently. If no local device is available, offer a remote device to the user and call this only after they agree. Requires mobile_login_to_cloud_provider to have been called first; if this fails with an authentication error, call that tool then retry. Use mobile_list_remote_devices first to see which names and versions actually exist in the fleet before filtering by them. Release the device with mobile_release_remote_device once the whole task is finished - releasing wipes the device's state, so do not release and reallocate between steps of the same task just to be tidy.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNoFilter by device name/model. Supports a trailing * for prefix match (e.g. "iPhone*"), or an exact name (e.g. "iPhone 16").
typeNoDevice type filter. Currently only "real" (physical devices) is supported by the fleet.
waitNoIf true, block until the device has finished allocating and is ready to use, up to timeoutSeconds. If false/omitted, this returns as soon as the reservation is made, but the device may not be immediately ready.
versionNoFilter by OS version. Supports comparison prefixes >=, >, <=, < (e.g. ">=18"), or an exact version (e.g. "18.6.2"). Multiple values are ANDed together.
platformYesThe platform to allocate a device for
timeoutSecondsNoSeconds to wait for allocation when wait is true. Defaults to 900 (15 minutes). Only relevant when wait is true.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.0.1

TDQS

A4.6/5.0
Behavior5/5

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

The annotations only establish that this is a non-read-only, open-world, non-destructive operation; the description adds the consequential context the agent actually needs: the device is shared and billed, allocation borrows it for the session only, it must not be triggered silently, authentication may fail and require a prior login call, and released devices lose their state. That is far beyond what the structured fields disclose.

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 the core action, then prerequisites, then cleanup guidance. Every sentence carries operational weight, though the run of imperatives (list first, release after, don't reallocate) makes it longer than strictly necessary for a single call.

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 stateful, billable, prerequisite-gated operation with six parameters but no output schema, the description covers the essential agent-facing facts: what is returned (a device identifier), what must precede it, how to handle auth failure, how to pick valid filter values, and how and when to tear down. Nothing needed to call it correctly is missing.

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% and each parameter (name prefix matching, version comparison prefixes, wait/timeoutSeconds semantics, platform enum) is documented in-schema, so the baseline is 3. The description adds only the workflow hint that filters should be chosen against fleet contents verified via mobile_list_remote_devices, not new syntax or meaning for the parameters themselves.

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 precise verb and resource ('Reserve a physical device from the remote cloud fleet for exclusive use') and immediately distinguishes the target from local devices, which the sibling tool mobile_list_available_devices covers. It also names the returned artifact (device identifier) and the tool family that consumes it, so it is uniquely identifiable among the mobile_* siblings.

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?

Explicit when-to-use and when-not clauses: never call silently, only offer a remote device if no local device is available, and only call after the user agrees. It names the prerequisite (mobile_login_to_cloud_provider), a pre-filtering step (mobile_list_remote_devices), a failure recovery path (call login then retry), and the release counterpart with an explicit warning not to release/reallocate mid-task.

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