Skip to main content
Glama

Connect to Flutter VM Service

connect_vm
Idempotent

Connect to a running Flutter app's Dart VM Service via its URI to stream live logs, exceptions, frame timings, and network calls for debugging.

Instructions

Connect to a running Flutter app's Dart VM Service and start collecting runtime data (logs, exceptions, frames, network). Pass the ws:// or http:// URI printed by flutter run (line: 'A Dart VM Service ... is available at:'). NOT purely read-only: enables dart:io HTTP timeline logging on the app so network capture works, and adds the GC stream to the VM timeline recorder so garbage-collection pauses can be correlated with jank. Existing recorded streams are preserved, never replaced.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
uriYesVM Service URI, e.g. http://127.0.0.1:52719/abcdef=/ or ws://...

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.21.0

TDQS

A4.5/5.0
Behavior5/5

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

Explicitly discloses side effects beyond the annotations: it enables dart:io HTTP timeline logging on the app and adds the GC stream to the VM timeline recorder, and it states existing recorded streams are preserved rather than replaced. This clarifies the non-read-only (readOnlyHint=false) and idempotent (idempotentHint=true) hints with concrete mechanism.

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 action and payoff, then the parameter source, then the mutation caveat. Information-dense and mostly waste-free, though the parenthetical stream-logging detail is slightly wordy for an agent that mainly needs the URI.

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?

For a one-parameter tool with no output schema, it covers what the tool does, what it changes on the target app, and how to obtain the URI. It omits session lifecycle details (whether repeated connects stack sessions, how to disconnect), which are minor but would complete the picture.

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 already 100%, so the baseline is 3, but the description adds real value by telling the agent where the URI comes from (the `flutter run` output line) and that both ws:// and http:// forms are accepted. That sourcing guidance is not present in the schema example.

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?

States a specific verb (connect) plus resource (Flutter app's Dart VM Service) and the immediate consequence (start collecting runtime data). Clearly distinguishable from sibling readers like get_logs, get_timeline, or runtime_status, which presume an already-connected session.

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?

Gives the precondition for the required parameter precisely: pass the ws:// or http:// URI printed by `flutter run`, quoting the exact line to look for. It does not, however, name alternatives or state when *not* to call it (e.g., when a session is already connected), so it stops short of full routing guidance.

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