SuperAPI AI 工具集

flutter-mcp

通用与其它

查看项目

更新于 10-15 17:17

技能介绍

用途:当用户提到运行中的 Flutter 应用(debug 模式),并希望检查、截图、交互或热重载时使用;也适用于用户粘贴 VM service URI(如 ws://127.0.0.1:8181/.../ws)或提到 8181 端口,以及需要用运行前后截图证明代码改动生效的场景。

必要前置:任何依赖 VM 的调用前先执行 doctor(或 flutter-mcp-toolkit doctor --json)检查环境、端口与应用可达性。确认目标应用具备所需扩展:ext.mcp.toolkit.app_errors、ext.mcp.toolkit.view_details、ext.mcp.toolkit.view_screenshots、ext.mcp.toolkit.inspect_widget_at_point。缺失时应停止并报告,不要猜测:在 pubspec.yaml 添加 mcp_toolkit,确保在 runApp 前运行 MCPToolkitBinding.instance..initialize()..initializeFlutterToolkit();,并热重启(hot restart)而非热重载。

工具命名:v3.0.0+ 所有 MCP 工具使用 fmt_ 前缀(如 fmt_tap_widget、fmt_hot_reload_and_capture),调用时前缀必填。

交互流程:fmt_semantic_snapshot 返回 s_0..s_N 引用与 snapshot_id;随后用 fmt_tap_widget、fmt_enter_text、fmt_scroll、fmt_swipe、fmt_long_press、fmt_drag 操作引用,并始终传入 snapshotId;屏幕外目标用 fmt_reveal_search;读状态用 fmt_evaluate_dart_expression;代码修改后用 fmt_hot_reload_and_capture 一次获得重载状态、截图、新快照与错误。

错误处理:错误结构为 {code, message, details, descriptor, recovery},需解析 error.descriptor;常见码包括 connection_selection_required、target_not_found、stale_snapshot、tool_not_found。

视觉 QA:以运行前后截图为依据,结合 fmt_inspect_widget_at_point 与 fmt_get_app_errors 定位问题;除非明确要求,不要使用 fmt_debug_dump_*。

限制:macOS 需给运行 flutter-mcp-toolkit 的进程授予屏幕录制权限,可用 flutter-mcp-toolkit permissions status/request/open-settings 处理;无法插桩的应用(第三方二进制、受限环境)应报告该技能不可用。相关技能包括 flutter-mcp-toolkit-custom-tools 与 flutter-mcp-toolkit-guide。