Skip to main content
Glama

adb reverse for Metro

android_reverse_metro

Runs adb reverse tcp:8081 tcp:8081 so Android apps can reach Metro on the host, enabling USB devices and emulators to connect.

Instructions

Runs adb reverse tcp:8081 tcp:8081 so the app can reach Metro on the host (needed for USB devices, harmless on emulators).

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": "android_reverse_metro"
  }
}

Input Schema

NameRequiredDescriptionDefault
portNo
serialNoadb serial (from android_devices). Default: the only online device.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.7/5.0
Behavior3/5

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

Disclosing the literal shell command is valuable context beyond the annotations, which only say readOnlyHint=false and destructiveHint=false. However, it doesn't clarify what the parameterized version does, whether the device must be connected first, or what is returned on failure. Partial coverage for a mutation tool with no output schema.

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?

One sentence, front-loaded with the concrete command and followed by the reason and the device caveat. Every clause adds information and nothing is padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter device-mutation helper with no output schema, the description conveys what it does and roughly when. It is missing preconditions (device online, Metro running on the host) and any statement about the port parameter's effect, which an agent needs to call it correctly.

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 coverage is 50% and the schema already documents `serial` fully, so that side is covered. The `port` parameter is undocumented in both places and the description's hardcoded `tcp:8081 tcp:8081` actively muddies what the port does, leaving its semantics unresolved rather than clarified.

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?

Names the exact command it executes (`adb reverse tcp:8081 tcp:8081`) and the goal (app reaching Metro on the host), which is far more specific than the title. It is distinguishable from siblings like android_devices or android_logcat. The only blur is that the tool is named generically for 'metro' while the description pins port 8081.

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 an explicit applicability statement: needed for USB devices, harmless on emulators, which tells an agent when it is worth calling and when it is optional. It stops short of naming alternatives or prerequisites (device must be online, adb available) or of saying whether this must precede android_launch_app.

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