dart_mcp_server 1.0.2
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-servercommand will continue to work as an alias fordart run dart_mcp_server@. - Support reading
DART_ROOTenvironment 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.dartto be compatible with dart run. - Add support for enabling analytics when running as a package based on the
DASH__TOOLenvironment 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
categoriesfor MCP features, allowing enabling/disabling tools by category or name.- This replaces the now deprecated
--toolsand--exclude-toolflags, but both are still supported for backward compatibility.--tools=dartnow becomes--disable=flutterand--exclude-toolis just an alias for--disable.
- This replaces the now deprecated
- Add
timeoutoption tolaunch_app. - Add
argsparameter tolaunch_appto support passing additional flags toflutter 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_uristool now supports resolving thepackage-root:scheme to read package structure beyond thelib/directory. - The
read_package_uristool now returns flattened text and imageContentpayloads when traversing directories and symlinks rather thanResourceLinks or embedded resources. This has better support across all clients. - Expose
set_frame_synccommand in theflutter_drivertool, allowing agents to disable frame synchronization for apps with continuous animations (Rive, Lottie, etc.) that causetap/waitForto time out (issue #391). - Fix nested finder JSON serialization for Ancestor/Descendant finders in the
flutter_drivertool (issue #345). - Fix
analyze_filesreturning false "No errors" whenpathsparameter is specified. - Merge
get_selected_widget,get_widget_tree,set_widget_selection_modeintowidget_inspectortool. - Merge
hover,signatureHelp,resolveWorkspaceSymbolintolsptool. - 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 clior--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_serverdevice forlaunch_appto 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_filestool to reduce token usage. - Start analysis server instances lazily, and time them out after 10 minutes of inactivity.
- Enable
set_semanticscommand for flutter_driver. - Add
listDtdUrissubcommand for thedtdtool.
0.1.2 (Dart SDK 3.11.0) #
- Add
--tools=dart|allargument 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: falseto most schemas so they provide better errors when invoked with incorrect arguments. - Add
DartMcpServer.samplingRequestservice extension method to send a sampling request over DTD. - Fix the
timeoutparameter 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 addandpub 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-toolcommand line flag to exclude tools by name. - Add the abillity to limit the output of
analyze_filesto 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 depsandpub outdated. - Fix a bug in hot_reload (#290).
- Add the
list_devices,launch_app,get_app_logs, andlist_running_appstools for running Flutter apps. - Add the
hot_restarttool for restarting running Flutter apps. - Add extra log output to failed launches, and allow AI to specify the maxLines of log output.
- Convert
launch_appto use--machineoutput 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_projectrequired.
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_treetool. - 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_teststool to save on input tokens. - Add
--log-fileargument 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
Analyticsinstance to track usage. - Listen to the new DTD
ConnectedAppservice instead of theEditor.DebugSessionsservice, when available. - Screenshot tool disabled until https://github.com/flutter/flutter/issues/170357 is resolved.
- Add
arg_parser.dartpublic library with minimal deps to be used by the dart tool.