Skip to main content
Glama

Render stats

render_stats
Read-only

Measure real view counts, render-node memory, jank percentage, frame-time percentiles, and skipped frames to diagnose unvirtualized lists; reset counters to isolate an interaction.

Instructions

Count an app's REAL view tree and recent frame health: total views, render-node kB, per-window breakdown, jank percentage and frame-time percentiles, plus Choreographer's "Skipped N frames" tally. Use this — not describe_ui — to MEASURE a screen: describe_ui is viewport-scoped (Android drops off-screen ScrollView children from the accessibility tree), so it undercounts a long list even at filter="all". The three numbers together are what argues an unvirtualised list: a large view count, render-node kB that grows as you scroll, and skipped frames on the main thread. Pass reset=true to zero the frame counters after reading so the next call measures one specific interaction.

Input Schema

NameRequiredDescriptionDefault
resetNoZero gfxinfo's frame counters after reading, so the NEXT call measures only what happens in between. Use it to attribute jank to one interaction instead of to the whole session.
serialNoTarget device serial (adb -s). Optional when exactly one device is attached.
packageYesApplication package name.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.23.0

TDQS

A4.4/5.0
Behavior4/5

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

The annotations only cover readOnlyHint and openWorldHint, so the description carries the real weight here, and it adds substantial context: what the three headline numbers mean together, why they argue an unvirtualised list, and the counter-zeroing effect of reset. It does not mention cost or latency, and reset=true arguably mutates device telemetry state under a readOnlyHint, though that tension is disclosed rather than hidden.

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?

The what-it-does clause is front-loaded before the comparison and the reset note, and every sentence is task-relevant. It runs dense and relies on heavy capitalization for emphasis, which costs a little readability but not correctness.

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

Completeness5/5

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

There is no output schema, so the description must explain what comes back, and it does so explicitly by listing the returned metrics and their interpretation. Combined with the read-only annotation and full param coverage, an agent has everything needed to call and read this tool 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 description coverage is 100%, so all three parameters are already documented in the schema, including reset's zeroing semantics. The description reinforces reset's intent ("measure one specific interaction") but adds no new syntax or format detail beyond what the schema states, so the baseline of 3 is appropriate.

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?

The description states a specific verb and resource ("count an app's REAL view tree and recent frame health") and immediately enumerates the concrete outputs: total views, render-node kB, per-window breakdown, jank percentage, frame-time percentiles, and skipped-frame tally. It also explicitly separates itself from describe_ui, so the agent can tell the two apart without opening either schema.

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

Usage Guidelines5/5

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

It gives an explicit routing rule ("Use this — not describe_ui — to MEASURE a screen") plus the reason describe_ui fails for this job: viewport scoping drops off-screen ScrollView children, so it undercounts even at filter="all". It also tells when to set reset=true, namely to attribute jank to one interaction rather than the whole session.

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