dart_mcp_server 1.0.2 copy "dart_mcp_server: ^1.0.2" to clipboard
dart_mcp_server: ^1.0.2 copied to clipboard

An MCP server for Dart projects, exposing various developer tools to AI models.

1.0.2 #

  • Send a SIGKILL to the analysis server if it doesn't respond to a SIGTERM in time.

1.0.1 #

  • Minor changes to improve pub score.

1.0.0 #

  • Package is now shipped on pub instead of through the SDK. The dart mcp-server command will continue to work as an alias for dart run dart_mcp_server@.
  • Support reading DART_ROOT environment variable to set the Dart SDK root.
  • Always enable roots fallback, and merge them with client roots that are set (if any).
  • Add a tool for making arbitrary vm service method calls to connected apps.
  • Move binary to bin/dart_mcp_server.dart to be compatible with dart run.
  • Add support for enabling analytics when running as a package based on the DASH__TOOL environment variable. Analytics will not be tracked if this is not set.

0.1.3 (Dart SDK 3.12.0) #

  • Add additional analytics for initialization events, and various list* method calls. This will help understand how the server is being used by different clients, and what features clients support.
  • Add a tool for running ripgrep on package dependencies.
  • Add categories for MCP features, allowing enabling/disabling tools by category or name.
    • This replaces the now deprecated --tools and --exclude-tool flags, but both are still supported for backward compatibility. --tools=dart now becomes --disable=flutter and --exclude-tool is just an alias for --disable.
  • Add timeout option to launch_app.
  • Add args parameter to launch_app to support passing additional flags to flutter run (e.g. --flavor, --dart-define, --dart-define-from-file). Managed flags (--print-dtd, --machine, --device-id, --target, -d, -t) are blocked and must be passed via their dedicated parameters instead.
  • The read_package_uris tool now supports resolving the package-root: scheme to read package structure beyond the lib/ directory.
  • The read_package_uris tool now returns flattened text and image Content payloads when traversing directories and symlinks rather than ResourceLinks or embedded resources. This has better support across all clients.
  • Expose set_frame_sync command in the flutter_driver tool, allowing agents to disable frame synchronization for apps with continuous animations (Rive, Lottie, etc.) that cause tap/waitFor to time out (issue #391).
  • Fix nested finder JSON serialization for Ancestor/Descendant finders in the flutter_driver tool (issue #345).
  • Fix analyze_files returning false "No errors" when paths parameter is specified.
  • Merge get_selected_widget, get_widget_tree, set_widget_selection_mode into widget_inspector tool.
  • Merge hover, signatureHelp, resolveWorkspaceSymbol into lsp tool.
  • Disable all tools that can easily be done on the CLI by default, as well as get_active_location. These can be re-enabled by passing --enable cli or --enable <tool-name>.
  • Add support for auto-fixing diagnostics returned by analyze_files.
  • Updated server instructions to encourage listing resources, using the tools to read and grep package contents, and to explain package-root: URIs.
  • Disable by default the launch_app, and associated tools (list_running_apps, get_app_logs, list_devices, stop_app). These can be re-enabled by passing --enable flutter_app_lifecycle (to enable all of them) or --enable <tool-name> (to enable specific ones). Agents tend to do better just using the CLI to manage the app lifecycle, and it is more flexible.
  • Fixed the web_server device for launch_app to return just the URI that should be opened in a browser, we do not get a DTD or Vm Service URI until the app is actually connected, which was causing timeouts.
  • Compact the output of the analyze_files tool to reduce token usage.
  • Start analysis server instances lazily, and time them out after 10 minutes of inactivity.
  • Enable set_semantics command for flutter_driver.
  • Add listDtdUris subcommand for the dtd tool.

0.1.2 (Dart SDK 3.11.0) #

  • Add --tools=dart|all argument to allow enabling only vanilla Dart tools for non-flutter projects.
  • Include the device name and target platform in the list_devices tool.
  • Fix analyze tool handling of invalid roots.
  • Fix erroneous SDK version error messages when connecting to a VM Service instead of DTD URI.
  • Add a tool for reading package: URIs. Results are returned as embedded resources or resource links (when reading a directory).
  • Add additionalProperties: false to most schemas so they provide better errors when invoked with incorrect arguments.
  • Add DartMcpServer.samplingRequest service extension method to send a sampling request over DTD.
  • Fix the timeout parameter for the flutter_driver tool to be a String, matching the underlying expected type (issue #330).

0.1.1 (Dart SDK 3.10.0) #

  • Change tools that accept multiple roots to not return immediately on the first failure.
  • Add failure reason field to analytics events so we can know why tool calls are failing.
  • Add a flutter_driver command for executing flutter driver commands on a device.
  • Allow for multiple package arguments to pub add and pub remove.
  • Require dart_mcp version 0.3.1.
  • Add support for the flutter_driver screenshot command.
  • Change the widget tree to the full version instead of the summary. The summary tends to hide nested text widgets which makes it difficult to find widgets based on their text values.
  • Add an --exclude-tool command line flag to exclude tools by name.
  • Add the abillity to limit the output of analyze_files to a set of paths.
  • Stop reporting non-zero exit codes from command line tools as tool errors.
  • Add descriptions for pub tools, add support for pub deps and pub outdated.
  • Fix a bug in hot_reload (#290).
  • Add the list_devices, launch_app, get_app_logs, and list_running_apps tools for running Flutter apps.
  • Add the hot_restart tool for restarting running Flutter apps.
  • Add extra log output to failed launches, and allow AI to specify the maxLines of log output.
  • Convert launch_app to use --machine output to capture the DTD URI.
  • Remove a reference to "screenshot" for a generic error that occurs for more than just screenshots.
  • Mark the "root" parameter for create_project required.

0.1.0 (Dart SDK 3.9.0) #

  • Add documentation/homepage/repository links to pub results.
  • Handle relative paths under roots without trailing slashes.
  • Fix executable paths for dart/flutter on windows.
  • Pass the provided root instead of the resolved root for project type detection.
  • Be more flexible about roots by comparing canonicalized paths.
  • Create the working dir if it doesn't exist.
  • Add the --platform and --empty arguments to the flutter create tool.
  • Invoke dart/flutter in a more robust way.
  • Remove qualifiedNames from the pub dev api search.
  • Flutter/Dart create tool.
  • Limit the tokens returned by the runtime errors tool/resource.
  • Add RootsFallbackSupport mixin.
  • Fix error handling around stream listeners.
  • Add a 'pub-dev-search' mcp tool.
  • Drop pubspec-parse, use yaml instead.
  • Handle failing to listen to vm service streams during startup.
  • Add tool for enabling/disabling the widget selector.
  • Add a tool to get the active cursor location.
  • Add hover tool support.
  • Add a test command and project detection.
  • Add signature_help tool.
  • Add runtime errors resource and tool to clear errors.
  • Require roots for all CLI tools.
  • Require roots to be set for analyzer tools.
  • Add debug logs for when DTD sees Editor.getDebugSessions get registered.
  • Add tool annotations to tools.
  • Implement a tool to resolve workspace symbols based on a query.
  • Add a dart pub tool.
  • Update analyze tool to use LSP, simplify tool.
  • Add tool for getting the selected widget.
  • Handle missing roots capability better.
  • Add get_widget_tree tool.
  • Add a tool for getting runtime errors.
  • Add Dart CLI tool support.
  • Add a hot reload tool.
  • Add basic analysis support.
  • Add the beginnings of a Dart tooling MCP server.
  • Instruct clients to prefer MCP tools over running tools in the shell.
  • Reduce output size of run_tests tool to save on input tokens.
  • Add --log-file argument to log all protocol traffic to a file.
  • Improve error text for failed DTD connections as well as the tool description.
  • Add support for injecting an Analytics instance to track usage.
  • Listen to the new DTD ConnectedApp service instead of the Editor.DebugSessions service, when available.
  • Screenshot tool disabled until https://github.com/flutter/flutter/issues/170357 is resolved.
  • Add arg_parser.dart public library with minimal deps to be used by the dart tool.