Skip to content

Add a "dart.mcpServer" setting that allows controls whether to enable the Dart MCP server (default: true) #5555

Closed

Description

@DanTup

Edit: This flag is now not-experimental but still opt-in. The DTD URI tool provided by Dart-Code does not require the flag to be set.


Currently the MCP server registration is behind an undocumented flag ("dart.experimentalMcpServer": true) and if that flag is set, we will assume it's available for anything >= 3.9.0-0.

When the MCP server is considered ready to ship, we should change this to not require the experimental flag for that version (but probably still allow it to be set for versions between 3.9.0-0 and whatever the release version is to avoid breaking anyone still using pre-release/beta).

@jakemac53 can you let me know when you're happy for this to be done (and confirm the version number we shouldn't require the flag for).

Activity

  1. added this to the v3.114.0 milestone on Jun 18, 2025
  2. added
    is enhancementAn enhancement or improvement that should be listed in release notes but is not a bug fix.
    in aiRelates to AI, such as use of the MCP APIs
    on Jun 18, 2025
  3. jakemac53 commented on Jun 18, 2025

    @jakemac53

    @kenzieschmoll is the plan is to ship without the experiment flag for 3.9.0, or do we want to wait one stable release?

  4. DanTup commented on Jun 18, 2025

    @DanTup
    MemberAuthor

    Just to be clear, the flag this issue relates to is the one in Dart-Code that controls whether we advertise the MCP server in the VS Code API which is not the same as (but we might choose to remove at the same time as) the experimental flag you need to pass to the MCP server.

    The flag here would be removed (or actually just made unnecessary) as part of a Dart-Code release, at which point we'd base it on the version number of the selected SDK.

  5. kenzieschmoll commented on Jun 18, 2025

    @kenzieschmoll

    is the plan is to ship without the experiment flag for 3.9.0, or do we want to wait one stable release?

    If we can get the server ready in time, yes we should target 3.9.0. We can remove the --experimental-mcp-server flag (or probably better to change the default value to true and then deprecate it so that the change is not breaking).

    For the VS Code setting "dart.experimentalMcpServer": true, I think the right thing to do is what you said Danny: to make this default and non-required for Dart >= 3.9.0 also. This also assumes the VS code API for this is stable?

  6. DanTup commented on Jun 18, 2025

    @DanTup
    MemberAuthor

    This also assumes the VS code API for this is stable?

    Yep, it is - the registerTool API was in a long time ago, and the MCP registration was in the stable release that went out earlier this month.

    to make this default and non-required for Dart >= 3.9.0

    sgtm - though depending on timing, should we do this for the final beta (or even whatever the current beta is?), so we're not enabling anything new just for the stable release?

  7. changed the title [-]Remove the need for experimentalMcpServer flag[/-] [+]Add a "dart.mcpServer" setting that allows opting-in to registering the Dart MCP server with VS Code[/+] on Jun 30, 2025
  8. DanTup commented on Jun 30, 2025

    @DanTup
    MemberAuthor

    I updated this issue to be adding a non-experimental (but defaulted to false) "dart.mcpServer". The DTD URI tool also no longer requires this flag.

  9. added
    relies on sdk changesSomething that requires changes in the Dart/Flutter SDK to ship before it will become available
    on Jun 30, 2025
  10. changed the title [-]Add a "dart.mcpServer" setting that allows opting-in to registering the Dart MCP server with VS Code[/-] [+]Add a "dart.mcpServer" setting that allows controls whether to enable the Dart MCP server (default: true)[/+] on Aug 28, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    in aiRelates to AI, such as use of the MCP APIsis enhancementAn enhancement or improvement that should be listed in release notes but is not a bug fix.relies on sdk changesSomething that requires changes in the Dart/Flutter SDK to ship before it will become available

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions