flutter-mcp-cli-runtime-validation について
`flutter-mcp-toolkit` と簡潔なコマンドライン手順で、実行中の Flutter アプリを検証するスキルです。スクリーンショット、レイアウト情報、アプリのエラーを確認し、設定やキャプチャの失敗への対処も示します。
主な機能
- 012段階のランタイム検証
- 02Doctor による事前チェック
- 03スクリーンショットとレイアウトの確認
- 04アプリエラーの取得
- 05キャプチャのフォールバックと再試行
活用シーン
- 01Flutter アプリの変更後の検証
- 02スクリーンショット取得とレイアウトメタデータの確認
- 03ツールキット計装の不足の診断
- 04変更前後の視覚的証拠の比較
MCP 対応
`flutter-mcp-toolkit` とその MCP ツールキット拡張を使い、実行中の Flutter アプリを検査・検証します。
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ arenukvern/ mcp_flutter --skill flutter-mcp-cli-runtime-validationインストール後、Claude Code で/flutter-mcp-cli-runtime-validationを入力して読み込まれたか確認します。
詳細
Flutter MCP CLI ランタイム検証
最小限のオペレーター手順で、flutter-mcp-toolkit を介してエージェント形式のランタイム検証を行う必要がある場合は、このスキルを使用してください。
2 ステップのフロー
- Flutter アプリをデバッグモードで起動します。
- CLI コマンドを 1 つ実行します。
dart run mcp_server_dart/bin/flutter_mcp_toolkit.dart --save-images --output-dir .flutter_mcp/runtime_validation validate-runtime \
--target ws://127.0.0.1:8181/<token>/ws \
--timeout-ms 10000 \
--post-reload-delay-ms 500 \
--after-reload
同じコマンドでスキルをインストールすることもできます。
dart run mcp_server_dart/bin/flutter_mcp_toolkit.dart validate-runtime \
--target ws://127.0.0.1:8181/<token>/ws \
--install-skill
このフローにおける権限の動作:
validate-runtimeはビジュアルキャプチャのみ読み取り/書き込みを行い、既定ではauto_request_onceを使用します。doctorは読み取り専用のままです。- macOS では、画面収録の権限は
flutter-mcp-toolkitを実行しているホストプロセスに付与されます。 - Web の場合:
desktop_windowは macOS では ScreenCaptureKit を使用し、その後 Chrome CDP(Page.captureScreenshot)を使用します。Linux/Windows では、リモートデバッグに接続できる場合、CDP を使用します。検出に失敗した場合は、--web-browser-debugging-portを指定してください。Web ターゲットでは、macOS ホストのdesktop_windowを誤って選択しないよう、--flutter-device chromeを指定してください。 - Executor は、ホストキャプチャを 1 回再試行します(スクリーンショットのペイロードでは
desktopCaptureRetried)。それでもdesktop_windowが失敗した場合(プラットフォームビューが検出された場合を含む)、validate-runtimeはflutter_layerで 1 回再試行します。data.summary.captureFallbackUsedを確認してください。 - URI が 1 つだけ必要な場合は、
validate-runtime --targetの代わりに、グローバルオプション--vm-service-uriに VM URI を渡すことができます。
validate-runtime で確認すること
- Doctor の事前チェックで重要な項目がすべて合格すること。
- 必須のツールキット拡張機能が存在すること:
ext.mcp.toolkit.app_errorsext.mcp.toolkit.view_detailsext.mcp.toolkit.view_screenshotsext.mcp.toolkit.inspect_widget_at_point
- スクリーンショットをキャプチャできること。
- ビューの詳細(レイアウトメタデータ)を取得できること。
- アプリのエラーを取得できること。
--after-reloadが有効な場合、リロード後のスクリーンショットも取得できること。
出力の処理
- 自動化の合否判定には
data.summaryを使用します。 - プラットフォームビューのルーティングには
data.summary.capturePlatformViewsDetectedとcaptureFocusAttemptedを使用します。 data.summary.captureFallbackUsedを使用して、desktop_windowの失敗後にflutter_layerによる再試行が行われたかどうか(プラットフォームビューが検出された場合を含む)を確認します。- ステップごとのエビデンスと再試行には
data.stepsを使用します。 - セットアップを妨げている要因の説明には
data.doctor.checksを使用します。 --save-imagesが有効な場合、保存されたスクリーンショットのパスにはdata.summary.screenshotFilesを使用します。--save-imagesが有効な場合は、ステップデータからスクリーンショットファイルの URL を読み取ります。- ビジュアルデバッグレポートを作成するには、次のコマンドも実行します:
exec --name capture_ui_snapshot --args '{"errorsCount":4,"compress":true,"includeViewDetails":true,"includeErrors":true}'exec --name inspect_widget_at_point --args '{"x":<int>,"y":<int>}'
失敗時のルール
- ツールキット拡張機能が不足している場合は、作業を停止し、具体的な修正方法を添えて計測の不足を報告します:
- アプリの依存関係に
mcp_toolkitを追加します。 MCPToolkitBinding.instance.bootstrapFlutter(...)または同等の手動初期化がrunAppの前に実行されることを確認します。- アプリをホットリスタートするか、再実行します。
- アプリの依存関係に
- 明示的に指定した最初の URI への接続に失敗した場合、再試行可能な接続エラーであれば自動的に再試行されます。
- スクリーンショットが真っ白な場合は、アプリのウィンドウが表示されていることを確認して再試行します。
- macOS のビジュアルキャプチャが拒否された場合は、次を使用します:
dart run mcp_server_dart/bin/flutter_mcp_toolkit.dart permissions statusdart run mcp_server_dart/bin/flutter_mcp_toolkit.dart permissions requestdart run mcp_server_dart/bin/flutter_mcp_toolkit.dart permissions open-settings
- アプリに計測を追加できない場合は、スクリーンショット/レイアウト/エラーの検査に成功したと主張しないでください。
ビジュアル QA とソースマッピングのルール
- 変更前後のスクリーンショットのエビデンスを必ず比較します。
- 報告するビジュアル上の問題ごとに、座標と
inspect_widget_at_pointの出力を提示します。 - 可能な場合は、
get_app_errorsの最上位スタックフレーム(file、line、column)を使って、不具合をソースに対応付けます。 - 明示的に要求されない限り、
debug_dump_*は使用しないでください。
課題となるケース(必ず明示してください)
- デバッグアプリが起動していない場合:
vm_target_reachableでdoctorが重大なエラーを報告します。続行する前に、アプリの起動を依頼してください。 - ターゲット URI/トークンが間違っている場合:接続先の不一致として扱い、正確な
app.debugPort.wsUriを使って再試行してください。 - ツールキットを追加しても拡張機能が見つからない場合:ホットリロードでは不十分なことが多く、ホットリスタートまたは完全な再実行が必要です。
- 変更できないアプリ(ツールキットを追加できない場合):推測で補わず、検査を利用できないと報告してください。
コメント
Markdown 対応