返回市场
MCP Flutter服务器

MCP Flutter服务器

作者:Arenukvern215 星标更新:2025-10-14

项目介绍

<div align="center">

MCP Server + Flutter MCP Toolkit

用于AI驱动的开发

License: MIT Flutter smithery badge Verified on MseeP All Contributors

</div> <a href="https://glama.ai/mcp/servers/qnu3f0fa20"> <img width="380" height="200" src="https://gips2.baidu.com/it/u=1267426417,642496746&fm=3081&app=3081&f=PNG?w=760&h=400" alt="Flutter Inspector Server MCP server" /> </a>

🔍 模型上下文协议(MCP)服务器,连接您的Flutter应用程序与AI编码助手,如Cursor、Claude、Cline、Windsurf、RooCode或其他支持MCP服务器的AI助手。

<!-- 媒体 -->

查看截图

<!-- 媒体结束 -->

📖 文档

[!NOTE] 存在一个官方的Flutter团队的MCP服务器,它暴露了Dart工具。

本项目的主要目标是通过在Flutter应用中创建它们来利用MCP服务器工具的力量,使用动态MCP工具注册。请参阅简短YouTube视频了解其工作原理。请参阅快速开始以获取更多详细信息。请参阅原始动机

此外,次要目标是稳定并完善在开发中有用的工具(因此它特别针对AI助手,例如:它不仅返回错误,还会提示AI如何处理这些错误)请参阅MCP_RPC_DESCRIPTION.md

请在问题中分享您的反馈、想法和建议!

希望这对您有用,

祝您一天愉快!

此MCP服务器与官方Dart MCP服务器的主要区别:

🎉 v2.5.0 发布!🎉

  • 新工具:hot_restart_flutter,从MCP执行VM服务热重启。
  • VM服务集成方法hotRestart(),具有命名空间服务发现回退。

非常感谢CommentakMedia为Hot Restart工具和文档提交PR!https://github.com/Arenukvern/mcp_flutter/pull/67

请参阅CHANGELOG.md以获取更多详细信息。

⚠️ 警告

转储RPC方法(如dump_render_tree),可能会导致大量令牌使用或上下文过载。因此,现在它们默认禁用,但可以通过--dumps标志启用。

有关命令行选项的更多详细信息,请参阅mcp_server_dart README

🚀 快速开始

  • (实验性)您可以尝试安装MCP服务器并使用您的AI代理进行配置。使用以下提示:请使用此链接安装MCP服务器:https://github.com/Arenukvern/mcp_flutter/blob/main/llm_install.md

  • 使用Cursor:https://www.youtube.com/watch?v=pyDHaI81uts

  • 使用VSCode + Cline:使用提示请使用此链接安装MCP服务器:https://github.com/Arenukvern/mcp_flutter/blob/main/llm_install.md

  • 快速开始可在QUICK_START.md中找到

  • 配置选项可在CONFIGURATION.md中找到

🎯 AI代理工具

核心Flutter工具

  • get_app_errors [资源|工具] - 从您的Flutter应用检索精确且简洁的错误信息 使用

    • 仅使用错误的简短描述。应过滤重复的错误,避免向代理上下文窗口填充相同的错误。
    • 使用错误监视器捕获Dart VM错误。在Flutter应用中捕获的所有错误都可以通过请求从MCP服务器获得。

    已测试于: ✅ macOS,✅ iOS 未测试于: 🚧 Android,🤔 Windows,🤔 Linux,❌ Web 请参阅问题

  • view_screenshot [资源|工具] - 捕获正在运行的应用程序的截图。 配置

    • 使用--images标志启用
    • 将使用PNG压缩优化图像大小。
  • get_view_details [资源|工具] - 屏幕尺寸、像素比。可能解锁代理使用小部件选择的能力。将返回应用中每个视图的详细信息。

动态工具注册 🆕

动态注册功能:

Flutter应用现在可以在运行时注册自定义工具和资源。请参阅简短YouTube视频了解其工作原理。请参阅动态工具注册文档以获取更多详细信息。

所有工具默认使用端口8181,除非指定了其他端口。您可以通过提供特定端口号来覆盖此设置。

📚 请参阅MCP_RPC_DESCRIPTION以获取更多信息

🔒 安全

通常,由于您使用MCP服务器连接到处于调试模式的Flutter应用,因此应该是安全的。然而,我仍然建议您查阅ARCHITECTURE.md了解其工作原理,并根据需要修改以提高安全性。

此MCP服务器已由MseeP.ai验证。

MseeP.ai 安全评估徽章

🔧 故障排除

  1. 连接问题

    • 确保您的Flutter应用正在调试模式下运行
    • 验证Flutter应用和MCP服务器中的端口是否匹配
    • 检查该端口是否未被其他进程占用
  2. AI工具未检测到检查器

    • 在更改配置后重新启动AI工具
    • 验证配置JSON语法
    • 检查工具的日志以查找连接错误
  3. 动态工具未出现

    • 确保mcp_toolkit包已在您的Flutter应用中正确初始化
    • 检查是否使用MCPToolkitBinding.instance.addEntries()注册了工具
    • 使用listClientToolsAndResources验证注册
    • 添加新工具后热重载您的Flutter应用

Flutter MCP服务器已注册到Smithery的注册表中,使其可通过标准化接口被其他AI工具发现和使用。

集成架构

┌─────────────────┐     ┌───────────────────────┐     ┌─────────────────┐
│                 │     │  Flutter 应用程序带   │     │                 │
│  Flutter 应用   │<--->│  mcp_toolkit (VM 扩展 + │<--->│ Dart MCP 服务器 │
│  (调试模式)     │     │  动态工具注册)        │     │                 │
│                 │     │                       │     │                 │
└─────────────────┘     └───────────────────────┘     └─────────────────┘

🤝 贡献

欢迎贡献!请随时提交拉取请求或在GitHub仓库报告问题。

✨ 贡献者

非常感谢所有贡献者使这个项目变得更好!

<!-- https://allcontributors.org/docs/en/bot/usage --> <!-- ALL-CONTRIBUTORS-LIST:START - 不要删除或修改此部分 --> <!-- prettier-ignore-start --> <!-- markdownlint-disable --> <table> <tbody> <tr> <td align="center" valign="top" width="14.28%"><a href="https://calclavia.com"><img src="https://avatars.githubusercontent.com/u/1828968?v=4?s=100" width="100px;" alt="Henry Mao"/><br /><sub><b>Henry Mao</b></sub></a><br /><a href="#infra-calclavia" title="基础设施(托管、构建工具等)">🚇</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/marwenbk"><img src="https://avatars.githubusercontent.com/u/18284646?v=4?s=100" width="100px;" alt="Marwen"/><br /><sub><b>Marwen</b></sub></a><br /><a href="#doc-marwenbk" title="文档">📖</a></td> <td align="center" valign="top" width="14.28%"><a href="http://eastagile.com"><img src="https://avatars.githubusercontent.com/u/2829939?v=4?s=100" width="100px;" alt="Lawrence Sinclair"/><br /><sub><b>Lawrence Sinclair</b></sub></a><br /><a href="#doc-lwsinclair" title="文档">📖</a> <a href="#security-lwsinclair" title="安全">🛡️</a></td> <td align="center" valign="top" width="14.28%"><a href="https://glama.ai"><img src="https://avatars.githubusercontent.com/u/108313943?v=4?s=100" width="100px;" alt="Frank Fiegel"/><br /><sub><b>Frank Fiegel</b></sub></a><br /><a href="#infra-punkpeye" title="基础设施(托管、构建工具等)">🚇</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/Harishwarrior"><img src="https://avatars.githubusercontent.com/u/38380040?v=4?s=100" width="100px;" alt="Harish Anbalagan"/><br /><sub><b>Harish Anbalagan</b></sub></a><br /><a href="#userTesting-Harishwarrior" title="用户测试">📓</a> <a href="#bug-Harishwarrior" title="错误报告">🐛</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/torbenkeller"><img src="https://avatars.githubusercontent.com/u/33001558?v=4?s=100" width="100px;" alt="Torben Keller"/><br /><sub><b>Torben Keller</b></sub></a><br /><a href="#userTesting-torbenkeller" title="用户测试">📓</a> <a href="#bug-torbenkeller" title="错误报告">🐛</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/rednikisfun"><img src="https://avatars.githubusercontent.com/u/53967674?v=4?s=100" width="100px;" alt="Isfun"/><br /><sub><b>Isfun</b></sub></a><br /><a href="#userTesting-rednikisfun" title="用户测试">📓</a> <a href="#bug-rednikisfun" title="错误报告">🐛</a> <a href="#research-rednikisfun" title="研究">🔬</a> <a href="#code-rednikisfun" title="代码">💻</a></td> </tr> <tr> <td align="center" valign="top" width="14.28%"><a href="https://github.com/cosystudio"><img src="https://avatars.githubusercontent.com/u/149987661?v=4?s=100" width="100px;" alt="Cosy Studio"/><br /><sub><b>Cosy Studio</b></sub></a><br /><a href="#userTesting-cosystudio" title="用户测试">📓</a> <a href="#bug-cosystudio" title="错误报告">🐛</a> <a href="#research-cosystudio" title="研究">🔬</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/lukemmtt"><img src="https://avatars.githubusercontent.com/u/1598289?v=4?s=100" width="100px;" alt="Luke Memet"/><br /><sub><b>Luke Memet</b></sub></a><br /><a href="#userTesting-lukemmtt" title="用户测试">📓</a> <a href="#research-lukemmtt" title="研究">🔬</a> <a href="#maintenance-lukemmtt" title="维护">🚧</a> <a href="#tutorial-lukemmtt" title="教程">✅</a></td> <td align="center" valign="top" width="14.28%"><a href="https://commentatk-media.com"><img src="https://avatars.githubusercontent.com/u/70331129?v=4?s=100" width="100px;" alt="Commentatk Media"/><br /><sub><b>Commentatk Media</b></sub></a><br /><a href="#code-CommentakMedia" title="代码">💻</a> <a href="#maintenance-CommentakMedia" title="维护">🚧</a> <a href="#doc-CommentakMedia" title="文档">📖</a></td> <td align="center" valign="top" width="14.28%"><a href="https://www.linkedin.com/in/umitarslan/"><img src="https://avatars.githubusercontent.com/u/4801240?v=4?s=100" width="100px;" alt="Umit Arslan"/><br /><sub><b>Umit Arslan</b></sub></a><br /><a href="#code-arslanmit" title="代码">💻</a> <a href="#maintenance-arslanmit" title="维护">🚧</a></td> </tr> </tbody> </table> <!-- markdownlint-restore --> <!-- prettier-ignore-end --> <!-- ALL-CONTRIBUTORS-LIST:END -->

📖 更多学习

星标历史

星标历史图表

📄 许可

MIT - 欢迎在您的项目中使用!


Flutter 和 Dart 是 Google LLC 的商标。