mcpField
M
MCP Server + Flutter MCP Toolkit

MCP Server + Flutter MCP Toolkit

ローカル
docs.page開発ツール3942 週間前に更新

MCP Server + Flutter MCP Toolkit について

flutter-mcp-toolkit は Flutter アプリ向けの MCP ツールキットで、Dart の MCP サーバーと Flutter パッケージで構成されています。実行中のアプリを AI エージェントが確認し、タップや入力、ホットリロード、ログ読み取りを行えます。閉じたデバッグループを求める Flutter 開発者向けです。

主な機能

  1. 01実行中のアプリのセマンティックスナップショットとスクリーンショット
  2. 02タップ、スクロール、入力、フォーム入力の操作
  3. 03ホットリロード、ホットリスタート、最近のログ参照
  4. 04アプリ側でカスタム MCP ツールを実行時に登録
  5. 05fmt_* ツール群とコマンドライン インターフェース

活用シーン

  1. 01デバッグ中に AI アシスタントが Flutter の UI 状態を確認
  2. 02CI で Flutter アプリに対してスクリプトによる検証を実行
  3. 03アプリ内の操作をエージェントから呼び出せるツールとして公開

MCP 対応

本プロジェクトは fmt_* ツールを MCP クライアントに公開する MCP サーバーです。mcp_toolkit パッケージを組み込んだ Flutter アプリは、実行時に独自の MCP ツールとリソースを登録することもできます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

flutter-mcp-toolkit

MCP Toplist

AI アシスタントから、実行中の Flutter アプリを検査して操作します。

skills.sh pub: mcp_toolkit Contract Gates intentcall eval gates skill-assets-drift Docs Ask DeepWiki License: MIT Flutter smithery badge Official MCP Registry All Contributors README の画像 maintained with Skill Steward

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-mcp-toolkit を説明する水彩タッチのコミック風インフォグラフィック:fmtk をインストールし、Flutter アプリに追加して、AI エージェントを接続し、検査、タップ、リロードを行い、クローズドループのフィードバックを通じて変更を検証します。 このツールキットは、実行中の 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 ガイドを参照してください。

公式ストアへの登録を申請するメンテナーの方は、マーケットプレイス登録手順書を参照してください。全体の一覧は、マーケットプレイスでの配布をご覧ください。

ドキュメント

公開パッケージ

パッケージPub.dev役割
mcp_toolkitpub package pub points実行時の MCP ツール/リソースとツールキットのブートストラップ用 Flutter アプリパッケージです。
flutter_mcp_toolkit_corepub package pub pointsDart のみで構成された共有のコマンド/結果/機能タイプです。
flutter_mcp_toolkit_capability_kernelpub package pub points組み合わせ可能な MCP ユニット向けの機能カーネルコントラクトです。
flutter_mcp_toolkit_capability_corepub package pub pointsサーバー側の fmt_* 機能の実装です。

サーバーバイナリは mcp_server_dart にあり、GitHub Release のアーティファクトを通じて flutter-mcp-toolkit、fmtk、および flutter-mcp-toolkit-server として配布されます。pub.dev パッケージではありません。

自動化チェーン

ライフサイクルの各部分は異なるサーフェスが担い、すべてが共通の AutomationDriver コントラクト(universal_automation_* ファミリー)を通じて、同じ ext.mcp.toolkit.* 拡張機能を操作します。

階層サーフェス最適な用途
対話型 MCPfmt_* ツールチャットによるデバッグと検証
CLIflutter-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による検証を受けています。

MseeP.ai Security Assessment Badge

🔧 トラブルシューティング

  1. 接続の問題

    • Flutter アプリがデバッグモードで実行されていることを確認します
    • Flutter アプリと MCP サーバーの両方でポートが一致していることを確認します
    • ほかのプロセスがそのポートを使用していないことを確認します
    • 明示的にターゲットを指定する最も安全な方法は、arguments.connection.uri を使い、Flutter マシンの app.debugPort.wsUri の値をそのまま貼り付けることです
    • 応答に connection_selection_required が含まれている場合は、availableTargets にある URI のいずれかを使って arguments.connection.targetId を指定して再試行するか、arguments.connection.uri を直接設定します
  2. AI ツールがインスペクターを検出しない

    • 設定を変更した後、AI ツールを再起動します
    • 設定 JSON の構文を確認します
    • 接続エラーがないか、ツールのログを確認します
  3. 動的ツールが表示されない

    • Flutter アプリで mcp_toolkit パッケージが正しく初期化されていることを確認します
    • MCPToolkitBinding.instance.addEntries() を使ってツールが登録されていることを確認します
    • fmt_list_client_tools_and_resources を使って登録を確認します
    • 新しいツールを追加した後、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をご覧ください。

Henry Mao
Henry Mao

🚇
Marwen
Marwen

📖
Lawrence Sinclair
Lawrence Sinclair

📖 🛡️
Frank Fiegel
Frank Fiegel

🚇
Harish Anbalagan
Harish Anbalagan

📓 🐛
Torben Keller
Torben Keller

📓 🐛
Isfun
Isfun

📓 🐛 🔬 💻
Cosy Studio
Cosy Studio

📓 🐛 🔬
Luke Memet
Luke Memet

📓 🔬 🚧 ✅
Commentatk Media
Commentatk Media

💻 🚧 📖
Umit Arslan
Umit Arslan

💻 🚧
Joel Kitching
Joel Kitching

💻 🚧
Jean-Luc Thumm
Jean-Luc Thumm

🚧
Miguel Casagrande
Miguel Casagrande

💻 🚧
drown0315
drown0315

💻 🚧 🐛
druyang
druyang

💻 🚧 🐛
dipsy
dipsy

💻 🚧 🐛
wenyue
wenyue

💻 🚧
Christophe
Christophe

📖 📦

📖 詳細情報

Star の推移

Star の推移を示すグラフ

📄 ライセンス

MIT - プロジェクトで自由にお使いください!


Flutter と Dart は Google LLC の商標です。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。