用途:对运行中的 Flutter 应用进行只读状态检查,包括屏幕显示内容、最近错误、可用调试目标、VM 元数据与组件树细节。不用于驱动交互,交互请用 interact 技能。未建立连接时先用 discover_debug_apps;需要知道屏幕上有哪些组件时先用 semantic_snapshot。
主要能力:discover_debug_apps 列出活动调试目标及其 WebSocket URI;get_app_errors 获取最近错误(含消息、堆栈、时间戳);get_screenshots 截取所有视图截图;get_view_details 返回尺寸、设备像素比与显示 ID;get_vm 返回 VM 版本、isolate、pid 等;get_extension_rpcs 列出已注册扩展 RPC;semantic_snapshot 返回紧凑的可交互组件无障碍树,节点带稳定 ref(如 s_0)与 snapshot_id;inspect_widget_at_point 按全局逻辑坐标定位最深组件;capture_ui_snapshot 合并截图、视图详情与错误;connect_debug_app 显式选择目标。
用法要点:语义快照返回 interactionSurface,可为 flutter_widgets、hybrid 或 game_canvas;过滤快照的 ref 与完整快照一致,可传给交互工具,snapshot_id 用于检测过期。macOS 上截图建议 mode: flutter_layer 以避免录屏权限失败。截图无输出目录时返回 base64 ImageContent,配置目录后返回 meta.fileUrls。批量检查示例:flutter-mcp-toolkit batch --steps '[{"name":"semantic_snapshot"},{"name":"get_app_errors","args":{"count":5}},{"name":"get_screenshots","args":{"mode":"flutter_layer","compress":true}}]'。
适用场景:检查界面显示、定位错误、查看调试目标、按坐标识别组件、保存截图。
限制:仅读取不交互;应用需处于调试模式且已调用 MCPToolkitBinding.initialize();多个目标时需提供 connection.targetId,否则报 connection_selection_required;可能返回 vm_service_unavailable、permission_denied、subtree_root_not_found、unknown_field、invalid_argument 等错误。其余信息暂未提供。