Skip to main content
Glama
anonyme-afk

Universal Device MCP

by anonyme-afk

communicate

Send and receive hex-encoded payloads across serial, USB, BLE, ADB, or iOS transports with operation options and reusable session IDs for persistent device access.

Instructions

Perform a generic transport operation. Payload bytes are supplied as hexadecimal.

Serial supports read/write/send/receive. USB supports read/write plus control_read and control_write; endpoints, lengths and USB control setup fields belong in options. BLE supports read/write using a characteristic UUID. ADB supports execute with argv in options. iOS supports lockdown inspection and pymobiledevice3 commands through argv, with the selected UDID pinned by the adapter and no shell. Pass session_id from open_interface to reuse a persistent session. Transport access may change device state; target and payload must be deliberate.

Input Schema

NameRequiredDescriptionDefault
optionsNo
data_hexNo
device_idYes
operationYes
session_idNo
interface_idYes

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description carries the full burden: it does disclose that 'transport access may change device state' and that iOS runs with no shell and a pinned UDID, which is genuine behavioral context beyond the schema. However, it says nothing about preconditions (pairing/authorization), timeouts or blocking behavior, or what failures look like for a tool that can poke hardware directly.

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?

It front-loads the general purpose, then spends one tight clause per transport, then closes with the session-reuse and state-change caveats. Dense but every clause carries distinct information; no filler.

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 six-parameter, five-transport tool, this covers the operation vocabulary, options contents, session reuse, and a mutation warning, and an output schema exists so return values need not be spelled out. What remains thin is error/partial-failure behavior and the preconditions implied by the pairing siblings.

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%, so the description must compensate, and it largely does: data_hex is defined as payload bytes in hexadecimal, options is described as carrying endpoints, lengths, USB control setup fields, or argv, and session_id is sourced from open_interface. device_id and interface_id are only implied by 'target', which is the remaining gap across the six parameters.

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 a concrete verb+resource ('Perform a generic transport operation') and then enumerates the actual operations per transport (serial read/write/send/receive, USB control_read/control_write, BLE characteristic read/write, ADB execute, iOS lockdown/pymobiledevice3), which lets an agent see what it really does despite the vague name. It also ties itself to the open_interface/close_interface lifecycle, distinguishing it from those siblings, though it never names a sibling it must not be confused with.

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?

It gives clear per-transport usage context — which operations each transport supports and where endpoint/length/USB setup fields or argv belong — plus the rule to pass session_id from open_interface for a persistent session. That is strong routing guidance for the operation parameter, but there are no explicit exclusions (e.g. when to prefer inspect_device or analyze_payload over communicating).

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