mcpField
F
Flintrail

Flintrail

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

Flintrail について

Flintrailは、AIエージェント向けのブラウザーMCPサーバーです。実際のChromeを操作し、タスクを記録してLLMを介さずに再生できます。ページのセッションを使ったAPIリクエストの再生や、失敗した手順の特定にも対応します。

主な機能

  1. 01ブラウザー操作の一括実行
  2. 02変数付きフローの記録と再生
  3. 03フィンガープリントによる要素の再特定
  4. 04ページ内からのAPIリクエスト再生
  5. 05スナップショット、通信、コンソールの確認
  6. 06ブラウザー拡張機能でChromiumに接続

活用シーン

  1. 01Webフォームの操作を繰り返し自動化
  2. 02ログイン済みセッションを使ったサイト操作
  3. 03異なる変数でフローを並行再生
  4. 04失敗した手順だけを修復

MCP 対応

Flintrailは、Chromeの操作、ブラウザーフローの記録と再生、ページやネットワークの確認を行うMCPツールを提供します。stdioと、トークン認証付きのStreamable 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 つのサーバーを複数のクライアントで再利用できます。