Skip to main content
Glama
hardware-tooling-mcp
by Pheem49

adb_command

Executes ADB shell commands or host ADB operations on a connected Android device, with optional target serial, timeout, and shell/host mode selection.

Instructions

Execute an ADB shell command or host ADB operation on a connected Android device.

Args: command: Shell command (e.g. 'logcat -d -t 50', 'dumpsys battery', 'input keyevent 26') or ADB subcommand when is_shell=False (e.g. 'install app.apk', 'forward tcp:8000 tcp:8000'). device_serial: Optional target device serial from adb_list_devices (when multiple devices are connected). is_shell: If True (default), runs adb shell <command>. If False, runs adb <command>. timeout_sec: Command timeout in seconds (default 20.0).

Input Schema

NameRequiredDescriptionDefault
commandYes
is_shellNo
timeout_secNo
device_serialNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.1/5.0
Behavior3/5

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

No annotations are supplied, so the description carries the full burden. It usefully discloses mode routing, the 20s default timeout, and multi-device targeting, but says nothing about the risk profile of arbitrary command execution (installs, keyevents, process kills), permission/prerequisite requirements, or what happens on timeout.

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 one-line summary followed by an args list that is easy to scan, with no filler. The Args formatting is somewhat verbose relative to the content but every entry adds usable detail.

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?

An output schema exists, so return values needn't be explained, and all parameters plus both execution modes are covered. Given this is an unrestricted command-execution tool with no annotations, the missing risk and prerequisite context is the main 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 description coverage is 0%, yet the description documents all four parameters with concrete example values and clarifies that device_serial should be sourced from adb_list_devices. It stops short of describing timeout-expiry behavior or output capture for the command itself.

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: execute an ADB shell command or host ADB operation on a connected device. It also disambiguates from the sibling adb_list_devices by explaining where device_serial comes from, so an agent can place it among the adb/serial/toolchain tools.

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 selection logic between the two modes: is_shell=True runs `adb shell <command>` and False runs `adb <command>`, each with concrete example commands. It explains when device_serial matters (multiple devices connected) but offers no when-not guidance or explicit alternatives among siblings.

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