mcpField
F
Flintrail

Flintrail

ローカル
github.comブラウザ自動化1今日更新

Flintrail について

Flintrail は、AI エージェントが実際の Chrome ページを操作するための MCP ブラウザーサーバーです。操作をまとめて実行し、フローを記録して変数付きで LLM を介さず再生できます。また、現在のセッションを使ってサイト自身の API 呼び出しも再生します。

主な機能

  1. 01ブラウザー操作を一度にまとめて実行
  2. 02要素フィンガープリント付きのフロー記録
  3. 03変数を使った LLM 不要のフロー再生
  4. 04キャプチャしたサイト API 呼び出しの再生
  5. 05attach、launch、extension の各モード

活用シーン

  1. 01記録した定型ブラウザー作業の自動化
  2. 02サイト変更時に失敗した手順だけを修復
  3. 03異なる入力値でフローを繰り返し実行
  4. 04ログイン済みセッションを使ったサイトリクエストの再生

MCP 対応

Flintrail は MCP 経由でブラウザー操作、記録、再生、ネットワーク確認、タブ管理のツールを公開します。stdio と HTTP に対応し、クライアントはローカルサーバーまたは設定済みの HTTP エンドポイントに接続します。

設定

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

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

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

リポジトリ
パッケージ
mcpbflintrail.mcpb

ツール

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

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

詳細

Flintrail

AI エージェントのための最速ブラウザー。

実際の Chrome をリアルタイムで操作します。タスクを一度記録すれば、LLM を介さずにミリ秒単位で再生できます。
またはページを完全にスキップして、セッションを使ってサイト独自の API 呼び出しを再生できます。

CI MCP Chrome 拡張機能 Node 20+ MIT

Flintrail のデモ:操作を記録し、683 ms で再生、API 呼び出しを 114 ms で再生


なぜ Flintrail なのか

現在のブラウザー MCP サーバーでは、モデルが毎回すべての処理を行います。ページを読み取り、要素を選び、クリックし、再びページを読み取ります。クリックのたびにツール呼び出しが発生し、ツール呼び出しのたびにモデルのターンが必要となるため、数秒かかります。翌日に同じタスクを行う場合も、エージェントは再び同じコストをすべて支払います。

Flintrail は、JIT コンパイラーがコードを扱うようにブラウザーを扱います。

  1. ライブでは、エージェントがページを操作しますが、一連のアクションを 1 回の呼び出しにまとめ、クリック可能な参照を含む簡潔なスナップショットを取得します。
  2. 記録では、同じ呼び出しが複数の手掛かりを使った要素のフィンガープリントと {{variables}} とともにキャプチャされます。
  3. 再生では、フローがブラウザーの速度で実行され、ステップ間にモデルは入りません。サイトが変更された場合、実行は失敗したステップで正確に停止し、ページをエージェントに返すため、修正が必要なのはその部分だけです。
  4. API 再生では、Flintrail がサイト独自の fetch/XHR 呼び出しを検出し、同じ Cookie とセッションを使ってページ内から再生できます。レンダリングもクリックも不要です。

ベンチマーク

ベンチマーク

同じ 5 ステップのタスク(フィールドへの入力、チェックボックスの選択、ページの変更、API を呼び出すクライアントレンダリングのボタンのクリック、結果の待機)を、ヘッドレス Chromium で 10 回実行した場合の中央値です。数値はツール側の実時間のみです。実際のエージェントでは、すべてのツール呼び出しにモデルのターンも必要です。そのため、呼び出し回数を 7 回から 2 回に減らすと、さらに数秒節約できます。

斜線のバーは下限です。MCP もエージェントも使わず、Playwright スクリプトを直接実行した場合と同じクリックを行います。UI をクリックするツールはすべてこの下限に制約されるため、呼び出しごとの比率は控えめです。Flintrail がこの下限に上乗せする時間は呼び出しあたり約 50 ms、Playwright MCP では約 260 ms です。下限を下回る唯一の方法は、クリックをやめることです。それを実現するのが API 再生です。

再現するには、npm run bench を実行します(グローバルには何もインストールしません。Playwright MCP は bench/ の依存関係にのみ含まれます)。

アーキテクチャ

アーキテクチャ

インストール

git clone https://github.com/Soflutionltd/flintrail.git
cd flintrail && npm install && npm run build
Claude Desktop、Claude Code、Cursor(stdio)
{
  "mcpServers": {
    "flintrail": {
      "command": "node",
      "args": ["/absolute/path/to/flintrail/dist/cli.js"]
    }
  }
}

Claude Code:claude mcp add flintrail -- node /absolute/path/to/flintrail/dist/cli.js

あらゆるエージェント、あらゆるマシン(HTTP)
node dist/cli.js --http --host 127.0.0.1 --port 8931
# token is generated once in ~/.flintrail/token (or pass --token / FLINTRAIL_TOKEN)

クライアントは Authorization: Bearer <token> を指定して http://host:8931/mcp に接続します。マシンの外部に公開する場合は、TLS を使用するトンネルまたはリバースプロキシの背後に配置してください。

ブラウザモード

モード用途方法
attach(デフォルト)デスクトップでの利用。ログイン済みセッションを維持します。専用のChrome for TestingにCDP経由で接続します。macOSでは、Flintrailがブラウザを検出し、必要に応じてローカルのデバッグポートを使って再起動します(タブは復元されます)。その後、バックグラウンドで専用のタブを開きます。
launchサーバー、CI、Dockerでの利用。FLINTRAIL_MODE=launchを指定すると、デフォルトでヘッドレスのChromiumを起動し、~/.flintrail/profileに永続プロファイルを保存します。
extensionデバッグポートを使わず、あらゆるユーザーが任意のChromiumブラウザで利用できます。FLINTRAIL_MODE=extensionを指定し、Flintrail拡張機能をインストールします。詳細は以下をご覧ください。

FLINTRAIL_ALLOW_ANY_BROWSER=1を指定しない限り、Flintrailは個人用ブラウザ(Brave、Edge、Opera、またはmacOSではChrome for Testing以外のブラウザ)への接続を拒否します。普段使いのブラウザはそのままお使いいただけます。

ブラウザ拡張機能

拡張機能を使うのが最も簡単です。コマンドラインフラグもデバッグポートも不要で、Chrome、Edge、Brave、Arc、またはChromium 125以降で動作します。

Flintrail拡張機能のポップアップ

  1. インストールします。 最新リリースからflintrail-extension-<version>.zipをダウンロードして解凍し、chrome://extensionsを開いてデベロッパーモードを有効にし、パッケージ化されていない拡張機能を読み込むをクリックしてフォルダーを選択します。(Chrome ウェブストアへの掲載を準備中です。)
  2. **拡張機能モードでFlintrailを実行します。**たとえば、Claude Desktopでは次のようにします。
    { "mcpServers": { "flintrail": { "command": "npx", "args": ["-y", "github:Soflutionltd/flintrail"], "env": { "FLINTRAIL_MODE": "extension" } } } }
    
  3. **接続します。**Flintrailアイコンをクリックし、~/.flintrail/tokenにあるトークンを貼り付けて、接続をクリックします。その後、拡張機能は自動的に再接続します。

仕組み:Flintrailは127.0.0.1:8932でリレーを起動します。拡張機能はトークンを使ってリレーに接続し、一度に1つのタブに対してchrome.debuggerでCDPコマンドを実行します。Playwrightからは通常のCDPブラウザとして認識されるため、すべてのツール、記録、再生がそのまま動作します。エージェントに表示されるのは、エージェント自身が開いたタブか、あなたがエージェントと共有で共有したタブだけです。タブの操作中にChromeが「このブラウザはデバッグされています」というバーを表示するのは、意図した動作です。

実演による学習

エージェントにタスクを説明する必要はありません。ポップアップにフロー名を入力し、記録を開始をクリックして、タブで自分でタスクを実行し、停止して保存をクリックします。拡張機能はエンジンが使用するものと同じ要素フィンガープリントで、クリック、入力、選択、チェックボックスの操作、Enterキーの入力を記録します。パスワードフィールドは記録されません。その後、次のようにします。

fl_flow_set_var("paybyphone-renew", 0, "plate")   # turn the typed plate into {{plate}}
fl_run("paybyphone-renew", { "plate": "AB-123-CD" })

これで、ユーザーもLLMも介さずに、各ステップを数ミリ秒でフローを実行できます。

拡張機能モードの制限:ブラウザレベルのCDP(ダウンロードフォルダー、権限、ウィンドウサイズ)は拡張機能では利用できないため、downloadはブラウザ標準のダウンロード手順で保存します。chrome.debuggerで操作されるバックグラウンドタブのダイアログは、応答前にChromeが閉じてしまいます。そのため、このモードでは{do:"dialog"}を使うと、ページ内から次のalert/confirm/promptに応答します。

ツール

ツール機能
fl_openURL をバックグラウンドタブで開き、[eN] の参照を含む簡潔なスナップショットを返します。
fl_act1 回の呼び出しで複数の操作を実行します:click、dblclick、hover、fill、type、select、check、press、upload、download、goto、back、wait、scroll、mouse、dialog、resize、eval、request。
fl_snapshotページを再読み込みして確認します:インタラクティブ要素、見出し、テキスト抜粋、同一オリジンのフレーム。
fl_extractページ内で JavaScript を実行し、結果を返します。
fl_networkサイト独自の API 呼び出しを、タイミング、本文、JSON サンプルとともに一覧表示します。
fl_screenshotタブ全体、または 1 つの要素(ref/selector)の JPEG スクリーンショットを、mouse で使用できる CSS ピクセル単位で取得します。
fl_consoleタブのコンソールエラーと未捕捉例外を表示します(level: "all" を指定すると警告とログも含まれます)。fl_act は新しいエラーが発生すると通知します。
fl_record_start / fl_record_stopワークフローを記録します。repairFrom を指定すると、正常なステップを保持したまま、残りを再記録します。
fl_run変数を使ってワークフローを LLM なしで再生します。
fl_run_many複数の変数セットを使って、並列タブでワークフローを再生します。
fl_flows / fl_flowワークフローを一覧表示し、1 つを検査します。
fl_flow_set_varデモで記録したワークフローの値を {{variable}} に変換します。
fl_extension拡張機能の接続状態を表示します。
fl_adoptすでに自分で開いたタブの制御を引き継ぎます。たとえば、手動でサインインした直後に使用します。
fl_tabs / fl_closeタブを管理します。
例
// one call, five actions
{ "tool": "fl_act", "tab": "t1", "actions": [
  { "do": "fill",  "ref": "e1", "value": "AA-111-AA", "var": "plate" },
  { "do": "check", "ref": "e3" },
  { "do": "click", "role": "button", "name": "Continue" },
  { "do": "click", "selector": "[data-testid=confirm]" },
  { "do": "wait",  "text": "active" }
]}

その後、fl_run("permit", { "plate": "ZZ-999-ZZ" }) を実行すると、1 秒もかからずに同じ操作を繰り返します。

// files, native dialogs, coordinates, mobile width
{ "tool": "fl_act", "tab": "t1", "actions": [
  { "do": "upload", "ref": "e4", "files": ["/Users/me/statement.csv"], "var": "statement" },
  { "do": "dialog", "accept": true },
  { "do": "click", "role": "button", "name": "Delete" },
  { "do": "mouse", "x": 640, "y": 380 },
  { "do": "resize", "width": 390, "height": 844 }
]}

upload は、非表示のものも含めたファイル入力欄のほか、ファイル選択ダイアログを開くボタンやドロップゾーンでも動作します。ダイアログはデフォルトで閉じられ、すべて結果に報告されます。新しいコンソールエラーも同様に報告されます。

再生時に要素を再特定する仕組み

記録された各ステップには、壊れやすいセレクターではなくフィンガープリントが保存されます。フィンガープリントには、テスト ID、安定した ID、name 属性、ARIA ロールとアクセシブル名、プレースホルダー、リンク先、表示テキスト、短い CSS パスが含まれます。再生時、Flintrail は安定性の高いものから順に試し、完全に一致する要素が 1 つだけ見つかった時点で採用します。その要素だけを待機し、ネットワークがアイドル状態になるのを待つことはありません。

セキュリティ

  • パスワードがワークフローに書き込まれることはありません。記録中はパスワード欄をスキップし、セッションにログインしたままにしてください。
  • ワークフローは ~/.flintrail/flows にプレーンな JSON として保存されるため、簡単に確認してバージョン管理できます。
  • HTTP トランスポートにはベアラートークンが必要です(定時間比較を使用)。デフォルトでは 127.0.0.1 にバインドされます。
  • eval と request はページ内で、ページ自身の権限を使って実行され、それ以上の権限はありません。

設定

変数デフォルト
FLINTRAIL_MODEattachattach、launch、または extension
FLINTRAIL_RELAY_PORT8932拡張機能が接続するローカルポート
FLINTRAIL_CDP_URLhttp://127.0.0.1:9222接続先のブラウザー
FLINTRAIL_PORT9222Flintrail が Chrome for Testing を起動するときに使用するデバッグポート
FLINTRAIL_CHROMEautoブラウザーの実行ファイル
FLINTRAIL_HEADLESS1起動モードでウィンドウを表示するには 0
FLINTRAIL_HOME~/.flintrailワークフロー、プロファイル、トークン
FLINTRAIL_DOWNLOADS~/Downloads/Flintrailダウンロードの保存先
FLINTRAIL_TOKENgeneratedHTTP ベアラートークンおよび拡張機能トークン

開発

npm install
npx playwright-core install chromium   # once, for tests
npm test                               # build + 19 end-to-end tests over real MCP, extension included
npm run pack:extension                 # flintrail-extension-<version>.zip
npm run bench                          # benchmark vs Playwright MCP

ロードマップ

  • 拡張機能を Chrome Web Store と Edge Add-ons に掲載します。
  • キャプチャした呼び出しが安全に再生できる場合、記録済みの UI ステップを API ステップに自動昇格します。
  • よく使うサイト向けの共有ワークフローライブラリ。
  • 再生失敗時のビジュアル差分。

フランス語

Flintrail は AI エージェント向けのブラウジング MCP サーバーです。専用の実際の Chrome(個人用ブラウザーではありません)を操作し、複数のアクションを 1 回の呼び出しで連続実行します。タスクを初回に記録して、その後は AI を使わず数百ミリ秒で自動再生するか、セッションを使ってサイトの API 呼び出しを直接再生します。当社のベンチマークでは、同じタスクに Playwright MCP では 2.4 秒かかるのに対し、Flintrail の API モードでは 0.11 秒です。

Chrome 拡張機能により、誰でも簡単に利用できます。インストールしてトークンを貼り付ければ、エージェントがブラウザーを操作します。さらに、タスクを自分で 1 回実行してエージェントに覚えさせることもできます(Start recording ボタン)。その後は Flintrail が自動で再生します。パスワードが記録されることはありません。

ライセンス

MIT © 2026 Soflution Ltd

コメント

MCP は初めてですか?

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

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