Flutter
MCP server and MCP Toolkit for Flutter and Dart VM - supports dynamic tooling
Installation
npx mcp-flutterAsk AI about Flutter
Powered by Claude Β· Grounded in docs
I know everything about Flutter. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
flutter-mcp-toolkit is a Dart MCP server + Flutter package that lets AI Agents (Codex, Zed, Cursor, Intent, Claude Code, Cline, etc..) take (semantic snapshots, tap widgets, type into forms, hot-reload, and read logs from a Flutter app) or create its own tools and resources at runtime using MCP Toolkit β without leaving the conversation and work with Flutter apps in closed feedback loop - see example of it described in OpenAI Agentic Harness.

Get started in 4 steps
# 1. Install the binary
curl -fsSL https://raw.githubusercontent.com/Arenukvern/mcp_flutter/main/install.sh | bash
# 2. Add the toolkit to your Flutter app
cd my-flutter-app
flutter-mcp-toolkit codegen-init # adds flutter_mcp_toolkit + emits main.dart snippet
# 3. Install skills for your AI agent
flutter-mcp-toolkit init claude-code # or: cursor | codex | cline | all
# 4. Run
flutter run --debug
That's it. Your AI agent can now inspect and drive the running app.
Documentation
- Docs for AI Agent and Human - wiki + llms.txt
- Migrating v2 β v3 β
fmt_*MCP tools, binaries, client config keys,validate-runtime. - Why this repo matters β what it is, why it exists.
- CLI vs MCP β pick the right mode.
- Feature map β the 27 tools.
- AI agent setup - for AI Agents.
- Architecture β for contributors.
- Quick Start, Configuration, MCP RPC description
What it does
The toolkit exposes 27 MCP tools (under the fmt_* capability prefix) across four categories:
- Inspection β semantic snapshot, view details, errors, screenshots, VM info
- Interaction β tap, scroll, type, fill forms, hot-reload, navigate, wait_for
- Debug β recent logs, evaluate Dart expressions
- Lifecycle β discover apps, hot-reload, hot-restart
See the flutter-mcp-toolkit-{guide,inspect,control,debug} skills for the full
reference (installed by flutter-mcp-toolkit init).
Dynamic Tools Registration
Flutter apps can register custom tools and resources at runtime. See how it
works in this short YouTube video.
The same arguments.connection targeting is supported by the CLI's exec,
batch, daemon command/execute, daemon watch/start, and snapshot step args.
[!NOTE] There is official MCP Server for Flutter from Flutter team which exposes Dart tooling. The main goal of this project is to bring power of MCP server tools by creating them in Flutter app, using dynamic MCP tools registration and close feedback loop for AI Agent. See how it works in short YouTube video. See Quick Start for more details. See original motivation behind the idea.
β οΈ Note on Dump RPCs
Dump RPC methods (like dump_render_tree) can produce huge token output and
are disabled by default. Enable with --dumps. See
mcp_server_dart README for the full flag surface.
π Security
Generally, since you use MCP server to connect to Flutter app in Debug Mode, it should be safe to use. However, I still recommend to review how it works in ARCHITECTURE.md, how it can be modified to improve security if needed.
This MCP server is verified by MseeP.ai.
π§ Troubleshooting
-
Connection Issues
- Ensure your Flutter app is running in debug mode
- Verify the port matches in both Flutter app and MCP server
- Check if the port is not being used by another process
- Safest explicit targeting: use
arguments.connection.uriand paste exact Flutter machineapp.debugPort.wsUri - If response includes
connection_selection_required, retry witharguments.connection.targetIdusing one URI fromavailableTargets(or setarguments.connection.uridirectly)
-
AI Tool Not Detecting Inspector
- Restart the AI tool after configuration changes
- Verify the configuration JSON syntax
- Check the tool's logs for connection errors
-
Dynamic Tools Not Appearing
- Ensure
flutter_mcp_toolkitpackage is properly initialized in your Flutter app - Check that tools are registered using
MCPToolkitBinding.instance.addEntries() - Use
fmt_list_client_tools_and_resourcesto verify registration - Hot reload your Flutter app after adding new tools
- Ensure
The Flutter MCP Server is registered with Smithery's registry, making it discoverable and usable by other AI tools through a standardized interface.
Integration Architecture
βββββββββββββββββββ βββββββββββββββββββββββββ βββββββββββββββββββ
β β β Flutter App with β β β
β Flutter App β<--->β flutter_mcp_toolkit β<--->β flutter-mcp- β
β (Debug Mode) β β (VM Svc. Extensions β β toolkit-server β
β β β + Dynamic Tools) β β β
βββββββββββββββββββ βββββββββββββββββββββββββ βββββββββββββββββββ
π€ Contributing
Contributions are welcome! Please feel free to submit pull requests or report issues on the GitHub repository.
β¨ Contributors
Huge thanks to all contributors for making this project better!
π Learn More
- Flutter DevTools Documentation
- Dart VM Service Protocol
- Flutter DevTools RPC Constants (I guess and hope they are correct:))
Star History
π License
MIT - Feel free to use in your projects!
Flutter and Dart are trademarks of Google LLC.

