flutter_agent_lens 1.6.0 copy "flutter_agent_lens: ^1.6.0" to clipboard
flutter_agent_lens: ^1.6.0 copied to clipboard

Agent-first MCP server to debug, profile, and optimize running Flutter apps.

1.6.0 #

Changed #

  • Grouped 41 granular tools into 21 action-based composite tools to reduce context token usage.
  • Enabled dynamic tool registration, showing debugging tools only after establishing a connection.
  • Replaced individual format parameters with a server-wide response format configuration.

Added #

  • Added response limit and list size configurations (limit and topN) for memory, profiling, and network logs.
  • Added tool annotations (readOnlyHint, destructiveHint, idempotentHint) to tool schemas.

1.5.5 #

  • Replaced flaky HTTP capture stream listeners with VM Service snapshot diffing, resolving silent failures and returning 0 requests on Android/AOT runtimes.
  • Added platform compatibility safety checks and fallback parsing logic for differing VM Service versions.

1.5.4 #

  • Resolved memory leaks and background process accumulation when disconnecting from debug sessions.
  • Lowered memory consumption during long debugging sessions by adding caps to path-resolution caches.
  • Standardized tool arguments and connection schemas for more reliable tool actions (like screenshots, breakpoints, and widget trees).
  • Improved port and process scanning reliability on Windows, Mac, and Linux environments.

1.5.3 #

  • Filtered out system isolates when connecting to the VM service to avoid selecting non-user code.
  • Implemented automatic recovery and retry logic when encountering sentinel or collected isolate ID errors.

1.5.2 #

  • Deprecated and removed the redundant dual format option across all tools to optimize token usage.

1.5.1 #

  • Split the monolithic server file into 12 separate class mixins for better maintainability.
  • Consolidated the tool list in the README file.

1.5.0 #

  • Subscribed to onServiceEvent before calling streamListen(EventStreams.kService) in connection_handlers.dart to resolve a VM service discovery race condition.
  • Routed handleHotReload and handleHotRestart through DTD service calls if DTD is active, VM service callbacks (s1.reloadSources with isolateId and s1.hotRestart) if available, or isolate-level extensions as a fallback.
  • Added dependency on dtd package to support direct Dart Tooling Daemon communication.

1.4.1 #

  • Refactored and optimized internal MCP tool handlers for widget tracking, memory diffing, and network capturing.
  • Parameterized location map parsers (_parseLocationsMap and _parseNewLocationsMap) to remove local duplicates and share code across rebuild tracking handlers.
  • Standardized class allocation diff tables and sorted delta logic into shared helpers in memory_handlers.dart.
  • Converted local size formatting (formatSize) in network_handlers.dart and memory_handlers.dart to a library-wide unified _formatBytes helper on FlutterAgentLensServer.
  • Consolidated rebuild tracking availability checks under _isTrackRebuildSupported().

1.4.0 #

  • Added a format parameter (markdown, json, dual) to verbose tools so clients can drop JSON and base64 payloads when they're not needed.
  • get_cpu_profile now filters out functions with 0 ticks before returning results, cutting payload size by ~99% on typical profiles.
  • Added includeRawNode to inspect_widget and includeRawResponse to get_object_referrers and stop_network_capture. Both default to false, skipping large raw VM payloads unless requested.
  • diff_heap_allocations now returns only the top 50 classes with allocation changes instead of the full list.
  • stop_tracking_rebuilds and get_widget_rebuild_counts cap rebuild lists to the top N active widgets.
  • Added includeExtensions to get_app_info (defaults to false). Omits the 60+ registered Flutter service extensions, saving ~3-4 KB per call.
  • Removed decorative separators (===, ---), markdown headings (###, **bold**), backtick wrapping, and column-alignment padding (.padLeft(), .padRight()) from all tool response output paths. Plain text labels replace them throughout.
  • Migrated compare_snapshots to the _serializeDualFormat path, adding format parameter support and structured JSON output.
  • All tool response sizes reduced by 15-40% with no semantic information removed.

1.3.0 #

  • Added stateful tracking tools: start_tracking_rebuilds / stop_tracking_rebuilds, start_profiling / stop_profiling, and start_network_capture / stop_network_capture.
  • Added the get_memory_snapshot tool to list active class allocations.
  • Added connection warnings when a Dart Tooling Daemon (DTD) URI is passed to connect.
  • Fixed hot reload and hot restart hangs by dynamically checking service namespaces.
  • Fixed isolate ID and library cache clearing after a hot restart.

1.2.0 #

  • Added take_screenshot tool to capture native or Skia device screenshots, with automatic fallback to native captures when Impeller is active.
  • Added hot_restart tool to trigger application state resets, with improved diagnostic messages when running without a host connection.
  • Added get_widget_tree tool to recursively retrieve the active widget tree with local project widget filtering.
  • Added memory snapshot tools (save_snapshot, compare_snapshots, list_snapshots) to cache and calculate class allocation differences.

1.1.0 #

  • Added the compare_layout_screenshots tool to capture, verify, and highlight visual differences in layout screens.
  • Added parameters to select the capture type (device or skia) and specify target devices.

1.0.0 #

  • Initial version.
19
likes
160
points
847
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Agent-first MCP server to debug, profile, and optimize running Flutter apps.

Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

args, dart_mcp, dtd, image, path, stream_channel, vm_service

More

Packages that depend on flutter_agent_lens