维护 macOS(展示应用 + 原生 intentcall)
本技能面向 flutter_test_app 这一“自用测试(dogfood)”应用,用于维护其 macOS 展示应用与原生 intentcall 钩子。平台相关文档位于 flutter_test_app/INTENTCALL_PLATFORM.md。
WebMCP 在 macOS 上的定位
WebMCP 的 modelContext 仅适用于 Web。macOS 自用测试用于验证以下能力:VM 扩展、动态注册表、原生调用(通过 app_links 的 intentcall://)以及视觉捕获(主机上的屏幕录制)。
若需进行 WebMCP 对齐评分,请单独运行 Web 迭代(flutter-mcp-toolkit-maintain-web)。
启动展示应用
make showcase-stop && make showcase
日志文件:.showcase/flutter_app.log
WebSocket URI:从日志中提取 ws://127.0.0.1:…/ws(默认 VM 端口为 8181):
grep -Eo 'ws://127\.0\.0\.1:[0-9]+/[A-Za-z0-9_=-]+/ws' .showcase/flutter_app.log | tail -1
停止:make showcase-stop。
代码生成与钩子
dart run mcp_server_dart/bin/flutter_mcp_toolkit.dart codegen sync \
--platform web,android,ios,macos,linux,windows \
--project-dir flutter_test_app
dart run mcp_server_dart/bin/flutter_mcp_toolkit.dart init intentcall-platform \
--project-dir flutter_test_app --check
相关目标与角色:
| 目标 | 角色 |
|---|---|
| macos/intentcall_codegen.sh | Xcode Run Script → codegen sync --platform macos |
| macos/Runner.xcodeproj | Run Script 阶段(如需手动操作,见脚本注释) |
| lib/main.dart | IntentCallInvokeLinkListener,用于 intentcall://invoke/… |
运行时验证
dart run mcp_server_dart/bin/flutter_mcp_toolkit.dart --save-images \
--output-dir .showcase/macos_iter validate-runtime \
--target "$MACOS_WS_URI" \
--flutter-device macos \
--timeout-ms 45000
权限(运行 CLI 的主机进程):
dart run mcp_server_dart/bin/flutter_mcp_toolkit.dart permissions status
dart run mcp_server_dart/bin/flutter_mcp_toolkit.dart permissions request
双平台自用测试
bash tool/evals/run_dogfood_eval.sh \
--ws-uri "$WEB_WS_URI" \
--macos --macos-ws-uri "$MACOS_WS_URI"
相关技能
- flutter-mcp-cli-runtime-validation — doctor、捕获后端、扩展
- flutter-mcp-toolkit-maintain-web — WebMCP 启用
- flutter-mcp-toolkit-dogfood-iterations — 评分标准与跟踪器