Skip to main content
Glama
Amodh2022

flutter-bridge-mcp

by Amodh2022

flutter_diagnose

Align Dart exceptions with native Android logcat traces to diagnose Flutter failures. Specify package, limit, and device serial to get time-ordered logs.

Instructions

Correlate Dart-side errors with the native Android log around them.

A Flutter failure usually leaves two unrelated-looking traces: a Dart exception and, for anything crossing a platform channel, a Java/Kotlin one in logcat. This pulls both and puts them next to each other in time order.

Args: package: app to restrict native logs to, e.g. com.example.app. limit: how many Dart errors to report. serial: device serial when several are attached.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNo
serialNo
packageNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.1

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the core behavior (pulling and ordering both error traces) but does not explicitly state that it is a read-only operation, nor does it mention any side effects, required permissions, or limitations such as what happens when no errors exist. The description gives useful behavioral context but lacks explicit safety or side-effect statements, which is a notable gap without annotation support.

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 description is appropriately sized—two short introductory sentences plus a structured 'Args' block. It front-loads the primary purpose and then explains arguments efficiently. There is no redundant filler, and the structure aids comprehension. It could be slightly tightened, but it is already concise and well-organized.

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?

The tool is moderately complex (correlates two data sources) and has an output schema, so return values are covered. However, the description does not mention any prerequisites, such as requiring a connected device or an active Flutter session, which are hinted at by the 'serial' parameter and sibling tools like flutter_connect. It also does not discuss edge cases like missing Dart errors or invalid package names. Given no annotations, this leaves some contextual gaps that an agent might need to resolve.

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

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage, so the description must fully explain the parameters. It does exactly that: it clarifies 'package' as restricting native logs to a specific app, 'limit' as the number of Dart errors to report, and 'serial' as the device serial for multi-device setups. This adds meaningful semantics beyond the bare type and default values, making each parameter's purpose clear.

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 clearly states a specific action: correlating Dart-side errors with native Android logs. It explains the scenario and distinguishes itself from sibling tools like read_logs or find_crashes by emphasizing the time-ordered correlation of both trace types. This is unambiguous and gives an agent a precise sense of what the tool accomplishes.

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 a clear usage context: when a Flutter failure leaves two unrelated traces, this tool brings them together. It implies when to use it (for correlating errors with native logs) but does not explicitly name alternatives or state when not to use it. The context is sufficient for an agent to infer applicability, but explicit exclusions would make it stronger.

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