Skip to main content
Glama
mobile-debug-mcp

mobile-debug-mcp

get_debugger_locals

Read up to 100 shallow local variables from a paused mobile debugger frame to inspect app state without evaluating expressions or traversing fields; sensitive values appear only when requested.

Instructions

Read at most 100 shallow locals. Sensitive values returned only on request; strings truncate at 256 characters; iOS aggregates return type summaries. No evaluation or field traversal.

Input Schema

NameRequiredDescriptionDefault
stopIdYes
frameIdYes
timeoutMsNo
responseModeNodebug
debugSessionIdYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.35.0
    • addedInput schema / properties / responseMode
      Added value: +{
      +  "default": "debug",
      +  "enum": [
      +    "compact",
      +    "debug"
      +  ],
      +  "type": "string"
      +}
  2. Addedv0.34.0

TDQS

B3.2/5.0
Behavior4/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 real behavioral traits: a 100-entry cap, sensitive-value redaction by default, 256-character string truncation, and iOS-specific type-summary aggregation. It omits the read-only/no-side-effect statement and any error behavior for invalid or stale stopId/frameId, keeping it short of a 5.

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?

Four short, front-loaded clauses with no filler; the output limits come before the capability exclusions. The telegraphic style ("No evaluation or field traversal") is compact but slightly cryptic about what the agent should do instead.

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 five-parameter, three-required debugger read with no annotations and no output schema, the description covers the shape of the returned data reasonably but skips parameter meaning and preconditions. An agent knows what it will get back but not how to supply the identifiers or which responseMode to choose.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/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 for five undocumented parameters, and it does not: debugSessionId, stopId, frameId, timeoutMs, and responseMode are never explained. The phrase "Sensitive values returned only on request" may obliquely refer to responseMode=debug, but that mapping is never made, leaving the only enum parameter undefined.

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 gives a specific verb and resource ("Read ... shallow locals") and constrains scope to a single frame's locals, which is enough to tell it apart from generic reads. It never explicitly contrasts with get_debugger_stack or get_debugger_state, so sibling differentiation is left implicit.

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

Usage Guidelines2/5

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

There is no when-to-use guidance and no alternatives named; the only hint is "No evaluation or field traversal," which implies an expression evaluator exists but never points to it. Prerequisites that an agent actually needs (a paused debug session, a frameId obtained from get_debugger_stack) are entirely unstated.

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