MCP Server + Flutter MCP Toolkit について
flutter-mcp-toolkit は Flutter アプリ向けの MCP ツールキットで、Dart の MCP サーバーと Flutter パッケージで構成されています。実行中のアプリを AI エージェントが確認し、タップや入力、ホットリロード、ログ読み取りを行えます。閉じたデバッグループを求める Flutter 開発者向けです。
主な機能
- 01実行中のアプリのセマンティックスナップショットとスクリーンショット
- 02タップ、スクロール、入力、フォーム入力の操作
- 03ホットリロード、ホットリスタート、最近のログ参照
- 04アプリ側でカスタム MCP ツールを実行時に登録
- 05fmt_* ツール群とコマンドライン インターフェース
活用シーン
- 01デバッグ中に AI アシスタントが Flutter の UI 状態を確認
- 02CI で Flutter アプリに対してスクリプトによる検証を実行
- 03アプリ内の操作をエージェントから呼び出せるツールとして公開
MCP 対応
本プロジェクトは fmt_* ツールを MCP クライアントに公開する MCP サーバーです。mcp_toolkit パッケージを組み込んだ Flutter アプリは、実行時に独自の MCP ツールとリソースを登録することもできます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
- 📖 ドキュメント: docs.page/arenukvern/mcp_flutter
- 🤝 貢献: ガイド · コントリビューター · 行動規範 · セキュリティ
flutter-mcp-toolkit は、AI エージェント(Codex、Zed、Cursor、Intent、Claude Code、Cline など)向けの Dart 製 MCP サーバーと Flutter パッケージです。エージェントは実行中の Flutter アプリを検査し、セマンティックスナップショットを取得し、ウィジェットをタップし、フォームに入力し、ホットリロードを実行し、ログを読み取ることができます。アプリは MCP Toolkit を介して、実行時に独自の MCP ツールやリソースを登録することもできます。これらすべてを会話から離れることなく行えます。その結果、エージェントとアプリの間にクローズドループのフィードバックが生まれます。
さらに一歩進んで、このツールキットは宣言型自動化 API の連鎖へと進化しています。同じ「観察/実行/検証」の語彙が、インタラクティブな MCP(fmt_*)、CLI、プログラムによる Dart シナリオ(flutter_mcp_harness)、そしてokaのような宣言型のビルド+ライフサイクルランナーを通じて、すべて共通のAutomationDriverコントラクト上で機能します。自動化チェーンをご覧ください。(OpenAI はこのパターンをharness engineeringと呼んでいます。)
このツールキットは、実行中の Flutter アプリに対する共有ウィンドウと制御ループを AI アシスタントに提供します。これにより、推測に頼らず、状態を調べ、ユーザーのように操作し、ホットリロードを実行し、証跡を読み取り、アプリ独自のツールを使えるようになります。

4 つのステップで始めましょう
# 1. Install the binary
curl -fsSL https://raw.githubusercontent.com/Arenukvern/mcp_flutter/main/install.sh | bash
# Installs flutter-mcp-toolkit plus the short fmtk alias for repeated CLI loops.
# 2. Add the toolkit to your Flutter app
cd my-flutter-app
flutter-mcp-toolkit codegen-init # adds mcp_toolkit + emits main.dart snippet
# 3. Install skills for your AI agent
flutter-mcp-toolkit init claude-code # or: cursor | codex | cline | agents-skills | all
# Alternative (skills only): npx skills add Arenukvern/mcp_flutter -a cursor -y
# 4. Run
flutter run --debug
これで完了です。AI エージェントが実行中のアプリを調べて操作できるようになり、アプリから実行時にカスタム MCP ツールを公開することもできます(下記の動的ツール登録をご覧ください)。
📰 ニュース
-
2026-10-02 — 6.0.0 をリリース:invoke 層(ADR-0017)では、アプリのインテントレジストリを唯一のアクションソースとします。ハーネスドライバーは
driver.actions()でアクションを一覧表示し、スキーマ検証済みの引数でInvokeActionを呼び出します。IntentAutomationAction.customはヒントを振り分け、あらゆる Web サーフェス(Jaspr、プレーンな JS)はwindow.__mcpActionsを介して連携します。pub.dev のflutter_mcp_harnessは 0.2.x、MCP レジストリのサーバーは 6.0.0 です。 -
2026-10-01 — このツールキットは、宣言型自動化 API の連鎖へと進化しています。ユニバーサルな
AutomationDriverコントラクト(universal_automation_*)、プログラムから利用できるflutter_mcp_harnessパッケージ、ビルドとライフサイクルを実行する oka で構成されます。新着:自動化チェーンガイドとflutter-mcp-automation-chainスキル。 -
2026-07-11 - v4 の新しいライブデモを収録:Grok Build CLI による v4 のセマンティックスナップショットなど、IntentCall の機能を活用した v4 — WebMCP プロジェクション
-
2026-05-26 — v3.1.0:プラットフォームビューのキャプチャルーティング、macOS/iOS シミュレーターのホストスクリーンショット、Web CDP タブキャプチャ(SCK → CDP → flutter_layer)、クロスプラットフォームのショーケースプラットフォームビュー。
マーケットプレイスからインストール
| プラットフォーム | コマンド/リンク |
|---|---|
| 任意のエージェント(推奨) | flutter-mcp-toolkit init <agent> — AI エージェントのセットアップを参照してください |
| Claude Code(git カタログ) | /plugin marketplace add Arenukvern/mcp_flutter を実行してから、flutter-mcp-toolkit をインストールします |
| Codex(git カタログ) | codex plugin marketplace add Arenukvern/mcp_flutter |
| Cursor(ローカルプラグイン) | flutter-mcp-toolkit init cursor |
| スキルのみ | npx skills add Arenukvern/mcp_flutter -a <agent> -y(init または手動の JSON で MCP を追加します) |
| MCP レジストリ | 公式 MCP レジストリ — サーバー io.github.Arenukvern/flutter-mcp-toolkit(OCI イメージ:ghcr.io/arenukvern/flutter-mcp-toolkit)、Smithery、MseeP |
Docker/MCP レジストリからのインストール
公式レジストリは GHCR から OCI イメージを提供しています。任意の MCP クライアントから参照してください。
{
"mcpServers": {
"flutter-mcp-toolkit": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"--network=host",
"ghcr.io/arenukvern/flutter-mcp-toolkit:6.0.0"
]
}
}
}
フラグ、バージョンの固定、ネットワークに関する注意事項については、Docker ガイドを参照してください。
公式ストアへの登録を申請するメンテナーの方は、マーケットプレイス登録手順書を参照してください。全体の一覧は、マーケットプレイスでの配布をご覧ください。
ドキュメント
- AI エージェントと人間向けのドキュメント - wiki + llms.txt
- v2 から v3 への移行 —
fmt_*MCP ツール、バイナリ、クライアント設定キー、validate-runtime。 - プロジェクションとコンポジションへの移行 — WebMCP の自動登録の削除、
bootstrapFlutterパラメーターの削除、intentcall の名称変更。 - MCPCallEntry から AgentCallEntry への移行 —
MCPCallEntryの削除、AgentCallEntry、プラットフォームのcodegen sync、fmt_migrate_agent_entries。 - IntentCall の利用者向けガイド — ホスト型
intentcall_*の依存関係ポリシー、利用者向けの証明ゲート、mcp_flutterと上流の IntentCall アーキテクチャの境界。 - このリポジトリが重要な理由 — これは何か、なぜ存在するのか。
- CLI と MCP — 適切なモードを選択します。
- 自動化チェーン — チェーンが存在する理由、MCP/CLI/ハーネス/oka の階層選択と最初のループ。
- 機能マップ — 31 個のツール。
- AI エージェントのセットアップ - AI エージェント向け。
- マーケットプレイスでの配布 — Claude、Cursor、Codex、skills.sh。
- アーキテクチャ — コントリビューター向け。
- クイックスタート、設定、MCP RPC の説明
公開パッケージ
サーバーバイナリは mcp_server_dart にあり、GitHub
Release のアーティファクトを通じて flutter-mcp-toolkit、fmtk、および
flutter-mcp-toolkit-server として配布されます。pub.dev パッケージではありません。
自動化チェーン
ライフサイクルの各部分は異なるサーフェスが担い、すべてが共通の
AutomationDriver
コントラクト(universal_automation_* ファミリー)を通じて、同じ
ext.mcp.toolkit.* 拡張機能を操作します。
| 階層 | サーフェス | 最適な用途 |
|---|---|---|
| 対話型 MCP | fmt_* ツール | チャットによるデバッグと検証 |
| CLI | flutter-mcp-toolkit / fmtk | スクリプトや CI での単発コマンド |
| Dart によるプログラム制御 | packages/harness — pub.dev の flutter_mcp_harness | コードとしてチェックインできる、繰り返し実行可能なシナリオ |
| ビルドとライフサイクル | oka | 宣言型のデバイスビルド、管理対象の開発セッション |
ガイド:自動化チェーン ·
スキル:flutter-mcp-automation-chain。
showcase/ フォルダーには、スタック全体をエンドツーエンドでテストするサンプルが含まれています。最小限の計測機能付き Flutter アプリ
(showcase/flutter_demo)と静的ウェブページ
(showcase/web_demo)があり、それぞれチェックイン済みのコンポジションルートによってライブで操作されます。
make drive-flutter # instrumented tier: ToolkitDriver over the VM service
make drive-web # browser tier: CdpDriver over CDP (headless Chrome)
packages/harness は Flutter 階層向けの共通コントラクト
(ToolkitDriver)を実装しているため、観察・操作・検証の共通語彙で、Flutter アプリ、ブラウザー、OS ネイティブのターゲットを扱えます。これは oka が使用するものと同じパイプライン構成スタイルです。
開発サポート
| ニーズ | まずはこちら |
|---|---|
| コードやドキュメントへの貢献 | CONTRIBUTING.md · 貢献ガイド |
| コントリビューターの追加やクレジット表記 | コントリビューターガイド · .all-contributorsrc |
| 脆弱性の報告 | SECURITY.md |
| ローカルの変更を検証 | steward probe --json --profile quick · make check-contracts |
| リリースの管理 | リリーストレインのメモ · flutter-mcp-toolkit-repo-maintainer |
| エージェントスキルのインストールや更新 | AI エージェントのセットアップ · マーケットプレイスでの配布 |
機能
デフォルトのツールキットサーフェスでは、4 つのカテゴリにわたって fmt_* 機能プレフィックスの MCP ツールを 31 個公開しています(--dumps デバッグツールを有効にすると 35 個になります)。
- 検査 — セマンティックスナップショット、ビューの詳細、エラー、スクリーンショット、VM 情報
- 操作 — タップ、スクロール、入力、フォームへの入力、ホットリロード、ナビゲーション、wait_for
- デバッグ — 最近のログ、Dart 式の評価
- ライフサイクル — アプリの検出、ホットリロード、ホットリスタート
全リファレンスについては、flutter-mcp-toolkit init または npx skills add Arenukvern/mcp_flutter でインストールされる
flutter-mcp-toolkit-{guide,inspect,control,debug} スキルを参照してください。
インストール方法:AI エージェントのセットアップ。
動的ツール登録
Flutter アプリでは、実行時にカスタムツールとリソースを登録できます。仕組みについては、こちらの短い YouTube 動画をご覧ください。同じ arguments.connection によるターゲット指定は、CLI の exec、batch、デーモンの command/execute、デーモンの watch/start、およびスナップショットのステップ引数でサポートされています。
メモ
Flutter チームによる、Dart のツール機能を公開する公式の Flutter 用 MCP サーバーがあります。 このプロジェクトの主な目的は、動的な MCP ツール登録を使って Flutter アプリ内にツールを作成し、AI エージェントとのフィードバックループを緊密にすることで、MCP サーバーツールの力を引き出すことです。仕組みについては、こちらの短い YouTube 動画をご覧ください。詳しくはクイックスタートをご覧ください。このアイデアの当初の動機もご覧ください。
⚠️ ダンプ RPC に関する注意
dump_render_tree などのダンプ RPC メソッドは大量のトークン出力を生成する可能性があるため、デフォルトでは無効になっています。--dumps を指定すると有効にできます。すべてのフラグについては、mcp_server_dart READMEをご覧ください。
🔒 セキュリティ
一般に、MCP サーバーを使ってデバッグモードの Flutter アプリに接続するため、安全に使用できるはずです。ただし、必要に応じてセキュリティを向上させる方法も含め、ARCHITECTURE.mdで仕組みを確認することをおすすめします。
この MCP サーバーはMseeP.aiによる検証を受けています。
🔧 トラブルシューティング
-
接続の問題
- Flutter アプリがデバッグモードで実行されていることを確認します
- Flutter アプリと MCP サーバーの両方でポートが一致していることを確認します
- ほかのプロセスがそのポートを使用していないことを確認します
- 明示的にターゲットを指定する最も安全な方法は、
arguments.connection.uriを使い、Flutter マシンのapp.debugPort.wsUriの値をそのまま貼り付けることです - 応答に
connection_selection_requiredが含まれている場合は、availableTargetsにある URI のいずれかを使ってarguments.connection.targetIdを指定して再試行するか、arguments.connection.uriを直接設定します
-
AI ツールがインスペクターを検出しない
- 設定を変更した後、AI ツールを再起動します
- 設定 JSON の構文を確認します
- 接続エラーがないか、ツールのログを確認します
-
動的ツールが表示されない
- Flutter アプリで
mcp_toolkitパッケージが正しく初期化されていることを確認します MCPToolkitBinding.instance.addEntries()を使ってツールが登録されていることを確認しますfmt_list_client_tools_and_resourcesを使って登録を確認します- 新しいツールを追加した後、Flutter アプリをホットリロードします
- Flutter アプリで
Flutter MCP Server は Smithery のレジストリに登録されているため、標準化されたインターフェースを通じて、ほかの AI ツールから検出・利用できます。
統合アーキテクチャ
┌─────────────────┐ ┌───────────────────────┐ ┌─────────────────┐
│ │ │ Flutter App with │ │ │
│ Flutter App │<--->│ mcp_toolkit │<--->│ flutter-mcp- │
│ (Debug Mode) │ │ (VM Svc. Extensions │ │ toolkit-server │
│ │ │ + Dynamic Tools) │ │ │
└─────────────────┘ └───────────────────────┘ └─────────────────┘
🤝 コントリビューション
コントリビューションを歓迎します。CONTRIBUTING.md(メンテナーによるリリース、バイナリのチェックサム)とコントリビューションガイドをご覧ください。プルリクエストや課題はこちら:GitHub。
✨ コントリビューター
このプロジェクトをより良いものにしてくださったすべてのコントリビューターに、心から感謝します!
この一覧は all-contributors を使って管理されています。
誰かを追加するには、.all-contributorsrcを更新して README の表を再生成するか、プルリクエストから all-contributors ボット/CLI を使用してください。
詳しくは、docs/contributing/contributors.mdxをご覧ください。
📖 詳細情報
Star の推移
📄 ライセンス
MIT - プロジェクトで自由にお使いください!
Flutter と Dart は Google LLC の商標です。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
