
Dart-Code.flutter (v3.137.20260601, 13.97M installs) is the official Flutter VS Code extension by Google. Flutter 3.44 shipped an MCP server that lets GitHub Copilot, Cursor, Claude Code, and Codex CLI call 15+ live development tools — hot reload, widget inspector, runtime error fetch, and more — directly against your running app. Enable it with a single settings flag: "dart.mcpServer": true.
dart analyze is happy.Dart-Code.flutter (v3.137.20260601) · 13.97M installs · Free · VS Code Marketplaceflutter run, watch the emulatorCmd+, / Ctrl+,), search for dart.mcpServer, and enable it — or add this line to your settings.json:{
"dart.mcpServer": true
}mcp.json to write for GitHub Copilot in VS Code..cursor/mcp.json in your project root:{
"mcpServers": {
"dart": {
"command": "dart",
"args": ["mcp-server"]
}
}
}| Tool | What it does |
|---|---|
hot_reload | Triggers hot reload on the running app |
hot_restart | Full restart — clears state |
get_runtime_errors | Fetches live exceptions from the running app |
widget_inspector | Reads the current widget tree |
analyze_files | Runs dart analyze and returns diagnostics |
pub_dev_search | Searches pub.dev for packages |
run_tests | Runs the test suite |
lsp | Hover docs, signature help, symbol resolution |
read_package_uris | Resolves package URIs safely |
"In a big leap forward for AI-assisted development, we are launching Agentic Hot Reload: The MCP server and your favorite coding agent will now automatically find and connect to running Dart and Flutter applications."
hot_reload, the app updates, and the agent calls get_runtime_errors to see whether anything broke — all without you touching the keyboard.
/mcp command confirming the Dart MCP server is connected with tools including hot_reload, widget_inspector, and get_runtime_errors. 2
hot_reload directly; the emulator reflects each update without manual intervention. 4"Your coding agent can now automatically hot reload, eliminating the friction of having to manually find and copy Dart Tooling Daemon (DTD) connection URIs."
this._field as a named initializing formal parameter. The workaround meant duplicating field names in the constructor signature:// Before Dart 3.12 — verbose workaround
class Hummingbird {
final String _petName;
final int _wingbeatsPerSecond;
Hummingbird({required String petName, required int wingbeatsPerSecond})
: _petName = petName, _wingbeatsPerSecond = wingbeatsPerSecond;
}this._fieldName directly. The compiler strips the leading underscore to derive the public parameter name: 4// Dart 3.12 — one constructor line
class Hummingbird {
final String _petName;
final int _wingbeatsPerSecond;
// ✅ IDE shows named params as: petName, wingbeatsPerSecond
Hummingbird({required this._petName, required this._wingbeatsPerSecond});
}
// Call site unchanged:
Hummingbird(petName: 'Dash', wingbeatsPerSecond: 75)petName, wingbeatsPerSecond) while the backing fields stay private. No extension update required beyond having Dart 3.12.android/gradle.properties: 6android.builtInKotlin=false
android.newDsl=falsefirebase_remote_config, device_info_plus, sentry_flutter, audioplayers, and flutter_reactive_ble. 5 If your build fails on a specific plugin, file an issue with that plugin's maintainer.| Extension ID | Dart-Code.flutter |
| Current version | 3.137.20260601 |
| Dart extension | Dart-Code.dart-code (auto-installed) |
| Installs | 13.97M |
| Rating | 4.86 / 5 (98 reviews) |
| Minimum VS Code | 1.75.0 (Flutter ext); 1.101.0 (Dart ext) |
| Minimum SDK | Dart 3.2 / Flutter 3.16 |
| MCP server requires | Dart-Code extension v3.114+ |
| License | MIT |
| Publisher | Dart Code (Google, verified) |
docs.flutter.dev
github.com
blog.flutter.dev
dart.dev
somniosoftware.com
docs.flutter.dev
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.