Skip to content

Arenukvern/mcp_flutter

Repository files navigation

MCP Server + Flutter MCP Toolkit

For AI-Powered Development

License: MIT Flutter smithery badge Verified on MseeP All Contributors

Flutter Inspector Server MCP server

πŸ” 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

View Screenshots

πŸ“– Documentation

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!

πŸŽ‰ v2.2.0 released! πŸŽ‰

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.

⚠️ WARNING

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.

πŸš€ Getting Started

  • (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

🎯 AI Agent Tools

Core Flutter Tools

  • 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.
  • 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 Tools Registration πŸ†•

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

πŸ”’ 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.

MseeP.ai Security Assessment Badge

πŸ”§ Troubleshooting

  1. 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
  2. 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
  3. 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

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    β”‚<--->β”‚  mcp_toolkit (VM Svc.  β”‚<--->β”‚ MCP Server Dart β”‚
β”‚  (Debug Mode)   β”‚     β”‚  Extensions + Dynamic β”‚     β”‚                 β”‚
β”‚                 β”‚     β”‚  Tool Registration)   β”‚     β”‚                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

🀝 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!

Henry Mao
Henry Mao

πŸš‡
Marwen
Marwen

πŸ“–
Lawrence Sinclair
Lawrence Sinclair

πŸ“– πŸ›‘οΈ
Frank Fiegel
Frank Fiegel

πŸš‡
Harish Anbalagan
Harish Anbalagan

πŸ““ πŸ›
Torben Keller
Torben Keller

πŸ““ πŸ›

πŸ“– Learn More

Star History

Star History Chart

πŸ“„ License

MIT - Feel free to use in your projects!


Flutter and Dart are trademarks of Google LLC.