Skip to main content
Glama
esp32-iphone-agent

esp32-iphone-agent

history

List or inspect recorded phone actions: view newest runs or one run's steps with screen coordinates and screenshots; a run ends after 10 minutes idle.

Instructions

What was done on the phone: action list (the newest runs) or show (one run's steps, in 0-1000 screen units, each with the screenshot it was done on). A run ends after 10 minutes idle.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "action": "<action>"
    },
    "name": "history"
  }
}

Input Schema

NameRequiredDescriptionDefault
runNorun id from list; default the newest
actionYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.5

TDQS

A3.5/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 and does disclose genuinely useful behavior: a run ends after 10 minutes idle, and show returns steps in 0-1000 screen units each paired with its screenshot. It does not say whether history is retained indefinitely, how many runs list returns, or whether results are paginated or truncated, which matters for an unannotated read tool.

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?

One sentence plus a short clause, front-loaded with the resource and then the two modes. Every clause carries information (modes, screen-unit range, screenshot pairing, idle timeout). Slightly dense parenthetical stacking, but no filler.

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?

With no annotations and no output schema, the description must explain return shape on its own, and it does so only for the show mode. What list actually returns (run ids, timestamps, counts) is left unspecified, which is exactly what an agent needs to chain list into show. Adequate but with a clear gap for a two-mode retrieval tool.

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 coverage is only 50%: the run parameter is documented in the schema, but the action enum has no per-value descriptions. The description compensates by explaining what each mode does and clarifying that show yields steps plus their screenshots, which is meaningfully more than the bare enum. The run parameter's role is largely covered by the schema already.

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 specific resource (what was done on the phone) and enumerates its two modes, list (newest runs) and show (one run's steps). An agent can tell this retrieves execution history rather than performing an action. It does not explicitly contrast with siblings like screenshot, but the resource is distinct enough that confusion is unlikely.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It implicitly guides mode selection by describing what list returns (newest runs) versus show (one run's steps), which is the key decision an agent faces here. However, there is no explicit statement of when this tool should be reached for versus the action-performing siblings, and no prerequisite or sequencing guidance (e.g., call list first to obtain a run id for show).

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