mcpField
F
Flintrail

Flintrail

本地服务
github.com浏览器自动化1今天更新

关于 Flintrail

Flintrail 是供 AI Agent 使用的浏览器 MCP 服务,可操控真实 Chrome、录制任务并在无需 LLM 参与时重放。它还能利用页面会话重放网站自身的 API 请求,并在流程出错时定位失败步骤。

主要功能

  1. 01批量执行浏览器操作
  2. 02录制并重放带变量的流程
  3. 03用元素指纹重新定位页面元素
  4. 04重放页面内的 API 请求
  5. 05检查页面快照、网络和控制台
  6. 06通过浏览器扩展连接 Chromium

适用场景

  1. 01自动重复执行网页表单流程
  2. 02使用现有登录会话操作网站
  3. 03对多组变量并行重放流程
  4. 04失败后只修复流程中的问题步骤

MCP 相关

Flintrail 提供 MCP 工具以操控 Chrome、录制和重放浏览器流程,并检查页面与网络活动。支持 stdio 和带令牌认证的 Streamable HTTP 连接。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库
安装包
mcpbflintrail.mcpb

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Flintrail

面向 AI Agent 的最快浏览器。

实时驱动真实的 Chrome。只需录制一次任务,即可在毫秒内重放,无需让大模型参与其中。
或者跳过整个页面,使用你的会话重放网站自身的 API 调用。

CI MCP Chrome 扩展 Node 20+ MIT

Flintrail 演示:录制一个流程,在 683 毫秒内重放,并在 114 毫秒内重放其 API 调用


为什么选择它

如今的浏览器 MCP 服务让模型每次都要处理所有事情:读取页面、选择一个元素、点击、再次读取页面。每次点击都是一次工具调用,而每次工具调用都要经过一次大模型调用,耗时数秒。明天再执行同一任务,Agent 又得付出全部代价。

Flintrail 对待浏览器的方式,就像 JIT 编译器对待代码一样:

  1. 实时操作:Agent 驱动页面,但会将整套操作序列合并为一次调用,并获得带有可点击引用的精简快照。
  2. 录制:捕获相同的调用,并记录多线索元素指纹和 {{variables}}。
  3. 重放:流程以浏览器的速度运行,步骤之间无需经过大模型。网站发生变化时,运行会在确切的失败步骤停止,并将页面交还给 Agent,使其只需修复这一部分。
  4. API 重放:Flintrail 会捕获网站自身的 fetch/XHR 调用,并能在页面内使用相同的 Cookie 和会话重放这些调用。无需渲染,也无需点击。

基准测试

基准测试

相同的 5 步任务(填写字段、勾选复选框、翻页、点击会调用 API 的客户端渲染按钮、等待结果),运行 10 次取中位数,使用无头 Chromium。数据仅统计工具端的运行耗时。在真实的 Agent 中,每次工具调用还要经过一次大模型调用,因此从 7 次调用减少到 2 次,还能额外节省数秒。

带斜线的柱条表示下限:与原始 Playwright 脚本执行相同的点击操作,不使用 MCP,也不使用 Agent。任何通过 UI 点击的工具都受此下限约束,因此每次调用的比率提升有限。Flintrail 在此下限之上每次调用约增加 50 毫秒,Playwright MCP 则约增加 260 毫秒。唯一低于此下限的方法是不再点击,这正是 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

任意 Agent、任意机器(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(默认)你的桌面环境。保留已登录的会话。通过 CDP 连接到专用的 Chrome for Testing。在 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 Web Store 上架正在进行中。)
  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 上启动一个中继服务。扩展使用令牌连接到该服务,并通过 chrome.debugger 逐个标签页执行 CDP 命令。Playwright 会看到一个普通的 CDP 浏览器,因此所有工具、录制和回放功能都无需修改即可使用。Agent 只能看到自己打开的标签页,或你通过与 Agent 共享共享的标签页。驱动标签页时,Chrome 会按设计显示“正在调试此浏览器”提示栏。

通过演示进行教学

你无需向 Agent 解释任务。在弹出窗口中输入流程名称,点击开始录制,然后在标签页中亲自执行任务,最后点击停止并保存。扩展会使用引擎所用的相同元素指纹记录点击、输入、选择、复选框操作和 Enter 键操作,并且绝不会记录密码字段。然后:

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

现在,无需你参与,也无需大模型,流程即可自行运行,每个步骤只需几毫秒。

扩展模式的限制:扩展无法使用浏览器级 CDP 功能(下载文件夹、权限、窗口大小),因此 download 会通过浏览器的常规下载流程保存文件。对于通过 chrome.debugger 驱动的后台标签页,Chrome 会在任何人能够响应之前关闭对话框;因此在此模式下,{do:"dialog"} 会改为在页面内响应下一个 alert / confirm / prompt。

工具

工具功能
fl_open在后台标签页中打开 URL,并返回带有 [eN] 引用的精简快照。
fl_act在一次调用中执行多项操作: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获取标签页的 JPEG 截图,或某个元素(ref / selector)的截图;坐标以 CSS 像素为单位,可用于 mouse。
fl_console获取标签页的控制台错误和未捕获的异常(level: "all" 会添加警告和日志)。出现新的错误时,fl_act 会予以提示。
fl_record_start / fl_record_stop录制工作流;repairFrom 会保留已成功的步骤,并重新录制其余部分。
fl_run使用变量重放工作流,无需 LLM。
fl_run_many在并行标签页中为多组变量重放工作流。
fl_flows / fl_flow列出工作流,查看单个工作流。
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" }) 就能在不到一秒内重放。

// 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 会按稳定性从高到低依次尝试,并选择首个唯一匹配的元素;它只等待该元素,而不会等待网络空闲。

安全

  • 工作流中绝不会写入密码。录制时会跳过密码字段;请保持会话处于登录状态。
  • 工作流以纯 JSON 格式保存在 ~/.flintrail/flows 中,便于查看和进行版本控制。
  • HTTP 传输需要 bearer token(采用恒定时间比较),且默认绑定到 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 bearer token 和扩展程序令牌

开发

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 Agent 使用的浏览导航 MCP 服务。它控制专用的真实 Chrome(绝不会使用您的个人浏览器),可在一次调用中串联多个操作,首次执行时记录任务,之后即可独立重放,无需 AI,只需几百毫秒;也可以直接使用您的会话重放网站的 API 调用。在我们的基准测试中,同一任务使用 Playwright MCP 需要 2.4 秒,而 Flintrail 的 API 模式仅需 0.11 秒。

Chrome 扩展让所有人都能使用这些功能:安装扩展、粘贴令牌,Agent 就能控制浏览器。更棒的是,您可以亲自执行一次任务来教会它(点击 Start recording 按钮),之后 Flintrail 就能独立重放。密码绝不会被记录。

许可证

MIT © 2026 Soflution Ltd

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。