π Model Context Protocol (MCP) server that connects your Flutter apps with AI coding assistants like Cursor, Claude, Cline, Windsurf, RooCode or any other AI assistant that supports MCP server
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 . See how it works in short YouTube video. See Quick Start for more details. See original motivation behind the idea.
Also, secondary goal is to stabilize and polish tools which are useful in development (so it would be specifically targeted for AI Assistants, for example: it will return not only the errors, but prompt for AI how to work with that error) see more in MCP_RPC_DESCRIPTION.md
Please share your feedback, ideas and suggestions in issues!
Hope it will be useful for you,
Have a nice day!
Major Changes:
- Dart-based MCP Server now is the main server: Typescript server removed, and
mcp_server_dart
is the main server. - Dynamic Tools Registration: Flutter apps can now register custom tools at the MCP server. See how it works in short YouTube video. See Dynamic Tools Registration Docs for more details.
See more details in CHANGELOG.md.
Dump RPC methods (like dump_render_tree
), may cause huge amount of tokens usage or overload context. Therefore now they are disabled by default, but can be enabled via --dumps
flag.
See more details about command line options in mcp_server_dart README.
-
(Experimental) You can try to install MCP server and configure it using your AI Agent. Use the following prompt:
Please install MCP server using this link: https://github.com/Arenukvern/mcp_flutter/blob/main/llm_install.md
-
with Cursor: https://www.youtube.com/watch?v=pyDHaI81uts
-
with VSCode + Cline: use prompt
Please install MCP server using this link: https://github.com/Arenukvern/mcp_flutter/blob/main/llm_install.md
-
Quick Start is available in QUICK_START.md
-
Configuration options are available in CONFIGURATION.md
-
get_app_errors
[Resource|Tool] - Retrieves precise and condensed error information from your Flutter app Usage:- Uses only short description of the error. Should filter duplicate errors, to avoid flooding Agent context window with the same errors.
- Uses Error Monitor to capture Dart VM errors. All errors captured in Flutter app, and then available by request from MCP server.
Tested on: β macOS, β iOS Not tested on: π§ Android, π€ Windows, π€ Linux, β Web See issue
-
view_screenshot
[Resource|Tool] - Captures screenshots of the running application. Configuration:- Enable with
--images
flag - Will use PNG compression to optimize image size.
- Enable with
-
get_view_details
[Resource|Tool] - size of screen, pixel ratio. May unlock ability for an Agent to use widget selection. Will return details about each view in the app.
Dynamic Registration Features:
Flutter apps can now register custom tools and resources at runtime. See how it works in short YouTube video. See Dynamic Tools Registration Docs for more details.
All tools default to using port 8181 if no port is specified. You can override this by providing a specific port number.
π Please see more in MCP_RPC_DESCRIPTION
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.
-
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
-
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
mcp_toolkit
package is properly initialized in your Flutter app - Check that tools are registered using
MCPToolkitBinding.instance.addEntries()
- Use
listClientToolsAndResources
to 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.
βββββββββββββββββββ βββββββββββββββββββββββββ βββββββββββββββββββ
β β β Flutter App with β β β
β Flutter App β<--->β mcp_toolkit (VM Svc. β<--->β MCP Server Dart β
β (Debug Mode) β β Extensions + Dynamic β β β
β β β Tool Registration) β β β
βββββββββββββββββββ βββββββββββββββββββββββββ βββββββββββββββββββ
Contributions are welcome! Please feel free to submit pull requests or report issues on the GitHub repository.
Huge thanks to all contributors for making this project better!
Henry Mao π |
Marwen π |
Lawrence Sinclair π π‘οΈ |
Frank Fiegel π |
Harish Anbalagan π π |
Torben Keller π π |
- Flutter DevTools Documentation
- Dart VM Service Protocol
- Flutter DevTools RPC Constants (I guess and hope they are correct:))
MIT - Feel free to use in your projects!
Flutter and Dart are trademarks of Google LLC.