Skip to main content
Glama

Get VM timeline events

get_timeline
Idempotent

Retrieve recent VM timeline trace events like build, paint, layout, and GC to diagnose performance issues. Enable recording with recordFrom=true, reproduce activity, then check for recorder stalls.

Instructions

Recent VM timeline trace events (build/paint/layout/GC/etc.), most recent first. Requires timeline recording — enable with recordFrom=true (sets Dart, GC, Compiler & Embedder streams) then reproduce the activity. recordFrom=true is NOT read-only: it changes the VM's recording configuration. Check recorderLagMs/stalled in the result: the VM recorder can stall permanently once its buffer fills while still reporting its streams as recorded, so events may be historical rather than current.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNo
recordFromNoTurn on timeline recording streams before reading.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.21.0

TDQS

A4.3/5.0
Behavior5/5

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

Annotations only say readOnlyHint=false; the description goes further and explains that recordFrom=true mutates the VM's recording configuration and enables specific Dart/GC/Compiler/Embedder streams. It also discloses the recorderLagMs/stalled failure mode where the recorder can stall permanently and still report streams as recorded, which is behavior no annotation conveys.

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?

Front-loaded with the returned resource and ordering, then the recording prerequisite, then the result caveat. Every sentence carries needed information, though the final sentence is dense and would benefit from being split.

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?

With no output schema, the description carries the return-value burden and does name specific result fields (recorderLagMs, stalled) and warns events may be historical. It stops short of stating what is returned when recording was never enabled (empty vs. error), which is the main remaining gap.

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 coverage is 50%. recordFrom is richly explained (which streams it turns on, and that it is not read-only), adding value beyond the schema, but the `limit` parameter is never mentioned, so its semantics (cap of 200, default 50) rest entirely on the schema.

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 names a precise resource (VM timeline trace events) and enumerates the event classes returned (build/paint/layout/GC/etc.) plus ordering (most recent first). This clearly distinguishes it from siblings like get_logs, get_frames, get_memory, and get_rebuilds.

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 states the prerequisite explicitly: recording must be enabled via recordFrom=true and the activity reproduced before events appear. It does not name alternative tools (e.g., get_logs or get_frames) for adjacent diagnostic needs, so the when-not-to-use side is absent.

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