Skip to main content
Glama

profiler-combined-report

Correlates native profiler hangs with React commits by aligning wall-clock times, producing a markdown report with memory leak hints. Use after both react and native profilers have run on the same session.

Instructions

Generate a cross-correlated report combining React Profiler and native profiler data. Maps native hangs to React commits using wall-clock time alignment. Requires both react-profiler-analyze and native-profiler-analyze to have been called first. Call this tool when both profilers were run in parallel on the same session. Returns a markdown report correlating hangs with React commits, memory leaks, and investigation hints. Fails if either react-profiler-analyze or native-profiler-analyze has not been called first.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
portNoMetro server port. Optional — omit it to use this device's port, 8081 by default. Ignored for Chromium, whose CDP port is encoded in device_id.
device_idYesiOS Simulator/device UDID or Android serial

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changedv0.25.0
    • removedInput schema / properties / port / default
      Removed value: -8081
    • changedInput schema / properties / port / description
      Previous value: -"Metro server port"New value: +"Metro server port. Optional — omit it to use this device's port, 8081 by default. Ignored for Chromium, whose CDP port is encoded in device_id."
    • addedInput schema / properties / port / maximum
      Added value: +65535
    • addedInput schema / properties / port / minimum
      Added value: +1
    • changedInput schema / properties / port / type
      Previous value: -"number"New value: +"integer"
  2. Changed1 schema field changedv0.22.0
    • addedInput schema / properties / device_id / minLength
      Added value: +1
  3. First observedv0.15.0

TDQS

A4/5.0
Behavior4/5

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

Since no annotations are provided, the description must carry the full burden of behavioral disclosure. It does so well by stating critical behavioral aspects: it succeeds only after both profiler analyses have been called, and it fails otherwise ('Fails if either... has not been called first'). It also describes the return format ('markdown report'). This provides clear behavioral expectations for an agent, exceeding what a simple description might offer.

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?

The description is concise and well-structured: it front-loads the purpose (first sentence), then details the method (second sentence), prerequisites (third), usage timing (fourth), output description (fifth), and failure condition (sixth). Each sentence delivers essential information without extra fluff. The structure is logical, moving from what to how to when to the result and exceptions.

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?

Given that there is no output schema and no annotations, the description must comprehensively explain what the agent can expect. It covers the tool's inputs (though schema does), behavior (prerequisites and failure), and output (markdown report contents). It doesn't explain the exact contents of the report beyond 'correlating hangs with React commits, memory leaks, and investigation hints,' which is sufficient for an agent to decide to use it. A slight gap is not mentioning how long the operation might take or if any other side effects occur, but overall it's well-rounded.

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 the schema already provides full descriptions for both parameters (device_id and port). The description adds minimal additional meaning beyond the schema, mainly clarifying the port behavior with 'Omit it to use this device's port, 8081 by default' and the device_id semantics as 'iOS Simulator/device UDID or Android serial'. Since the schema already covers this, the description adds limited extra value, baseline 3 is appropriate.

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 clearly states the tool's purpose: 'Generate a cross-correlated report combining React Profiler and native profiler data.' It specifies the verb (generate), the resource (cross-correlated report), and the method (wall-clock time alignment). This distinguishes it from sibling tools like profiler-cpu-query or react-profiler-analyze, though it does not explicitly name alternatives. A score of 4 is appropriate for clear purpose but slight lack of direct sibling differentiation.

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?

The description provides explicit usage conditions: 'Call this tool when both profilers were run in parallel on the same session.' It also states important prerequisites: 'Requires both react-profiler-analyze and native-profiler-analyze to have been called first.' This gives strong guidance on when to use it, though it doesn't explicitly say when not to use it or name alternatives. Still, it implicitly differentiates from single-profiler tools by requiring both profilers.

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