Skip to main content
Glama

shell

Execute custom adb commands and return stdout for Android device tasks not covered by dedicated tools.

Instructions

Escape hatch: run an arbitrary adb shell command and return stdout. Use for anything not covered by the dedicated tools (e.g. 'settings get secure enabled_accessibility_services').

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
deviceNoDevice serial from list_devices (omit when exactly one device is connected).
commandYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full behavioral burden. The 'escape hatch' / 'arbitrary' framing does signal that this is unrestricted and can reach beyond read-only operations, and it discloses the return channel (stdout), which is useful context. However, it says nothing about destructive potential, required permissions, timeouts, exit-code/error behavior, or output truncation — significant gaps for a tool that can execute anything.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with zero waste; the escape-hatch scope is front-loaded before the example. Every clause earns its place.

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 low-complexity escape-hatch tool with no annotations and no output schema, the description covers purpose, routing guidance, and the return channel. It is close to complete, though an agent would still benefit from knowing about timeouts, error/exit-code handling, and that unrestricted commands may mutate device state.

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 50%: 'device' is documented in the schema, but 'command' has no description anywhere. The example command string usefully illustrates the expected syntax (bare command, seemingly without the 'adb shell' prefix), which is marginal added value, but it does not fully compensate for the undocumented required parameter.

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 ('run an arbitrary adb shell command and return stdout') and frames it precisely against the sibling set as an 'escape hatch' for anything the dedicated tools don't cover. An agent can immediately tell this is the raw/unrestricted fallback versus tap, swipe, logcat, etc.

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 when to use it ('anything not covered by the dedicated tools') and reinforces the rule with a concrete allowed example ('settings get secure enabled_accessibility_services'). The condition that selects this tool over its 17 siblings is stated, not inferred.

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