Web Recorder
БесплатноНе проверенRecords Chrome network requests and responses for LLM knowledge bases, and exposes query and browser control capabilities via MCP tools like list_sessions, navi
Описание
Records Chrome network requests and responses for LLM knowledge bases, and exposes query and browser control capabilities via MCP tools like list_sessions, navigate, and evaluate.
README
录制 Chrome 浏览器请求/响应作为大模型知识库,通过 MCP Server 暴露查询与浏览器控制能力。
- 录制:popup 手动开关,录当前 tab 或所有 tab 的所有请求/响应
- 存储:SQLite 单文件,按 session 组织
- 静态资源:录制时只存元数据,大模型按需 replay 重新请求拿响应体
- 动态资源:存请求体 + 响应体
- 查询:MCP 暴露 list_sessions / list_requests / get_request / get_response_body / search_requests / replay_static
- 控制:MCP 暴露 navigate / evaluate,大模型可主动操作浏览器
详细设计见 ../docs/superpowers/specs/2026-07-10-chrome-web-recorder-design.md。
安装
1. 编译并安装 service-go
cd service-go
bash build.sh # 交叉编译 4 平台二进制到 bin/
bash install.sh # macOS:安装 launchd 常驻服务
# 或 Linux:bash install-linux.sh
安装后:
- 二进制在
~/.webrecorder/bin/web-recorder-service - 监听
127.0.0.1:9130(HTTP)和9131(WS),开机自启 + 崩溃重启 - 数据库
~/.webrecorder/sessions.db - 日志
~/Library/Logs/webrecorder-service.log(macOS)或~/.webrecorder/webrecorder.log(Linux)
2. 加载 Chrome 扩展
- 打开
chrome://extensions/ - 右上角开启「开发者模式」
- 点「加载已解压的扩展程序」
- 选择
chrome-web-recorder/根目录(即本仓库根目录,含manifest.json)
3. 配置 Claude Code MCP
在 ~/.claude.json(或项目 .mcp.json)加:
{
"mcpServers": {
"web-recorder": {
"command": "/Users/<你的用户名>/.webrecorder/bin/web-recorder-service",
"args": []
}
}
}
args 为空(默认 MCP stdio 模式)。重启 Claude Code 后 MCP 工具可用。
使用
录制
- 点扩展图标打开 popup
- 输入会话名(留空用时间戳)
- 选范围(当前 tab / 所有)
- 可选:勾选过滤统计/广告域名,加额外屏蔽子串
- 点「开始录制」
- 在目标页面操作(导航、点击、提交等)
- 点「停止录制」
录制中页面右上角有红色浮标显示实时计数。
大模型查询
Claude Code 里直接调 MCP 工具:
list_sessions() # 列出所有会话
list_requests(session_id="sess_xxx") # 列出某会话的请求
get_request(request_id="req_xxx") # 拿单个请求详情
get_response_body(request_id="req_xxx") # 拿动态资源响应体
search_requests(session_id="sess_xxx", query="login") # 全文搜索
replay_static(request_id="req_xxx") # 重新请求静态资源
大模型控制浏览器
navigate(url="https://example.com") # 跳转
evaluate(script="document.title") # 执行 JS 拿返回值
navigate/evaluate 触发的请求也会录进当前 session(如果正在录制)。
验证
验证 service-go
curl -s http://127.0.0.1:9130/ping # 期望 pong
curl -s http://127.0.0.1:9130/config # 期望 {"http_port":9130,"ws_port":9131}
验证录制
# 录制一个会话后
sqlite3 ~/.webrecorder/sessions.db "SELECT id, name, request_count FROM sessions ORDER BY started_at DESC LIMIT 5"
sqlite3 ~/.webrecorder/sessions.db "SELECT method, url, resource_type FROM requests WHERE session_id='<某session_id>' LIMIT 10"
验证 MCP
在 Claude Code 里调 list_sessions,应返回最近会话列表。
故障排查
service-go 启动失败
查日志:
tail -f ~/Library/Logs/webrecorder-service.log # macOS
journalctl --user -u webrecorder -f # Linux
端口冲突
默认 9130/9131 被占用时,用环境变量改:
# 手动跑(改端口测试)
WEBRECORDER_HTTP_PORT=9140 WEBRECORDER_WS_PORT=9141 ~/.webrecorder/bin/web-recorder-service --http
若要让 launchd 常驻服务用新端口,编辑 ~/Library/LaunchAgents/com.xwx.webrecorder.plist,在 ProgramArguments 后加 EnvironmentVariables 字段:
<key>EnvironmentVariables</key>
<dict>
<key>WEBRECORDER_HTTP_PORT</key>
<string>9140</string>
<key>WEBRECORDER_WS_PORT</key>
<string>9141</string>
</dict>
改完 launchctl unload && launchctl load 重载。扩展会通过 GET /config 自动发现端口。
macOS 11 上崩溃
如果二进制在 macOS 11 上报 dyld: Symbol not found: _SecTrustCopyCertificateChain,说明编译时部署目标没设到 11.0。
原因(Go 1.25 已知问题):Go 1.25 默认用 internal linker,internal linking 下 mach-o 的 LC_BUILD_VERSION.minos 被 cmd/link 硬编码为 12.0.0,完全不读 MACOSX_DEPLOYMENT_TARGET 环境变量。必须在编译时加 -ldflags="-linkmode=external" 强制走 external linking(经 clang),clang 才会读取 MACOSX_DEPLOYMENT_TARGET=11.0 并生成 minos=11.0 的 LC_BUILD_VERSION。
当前 build.sh 已处理:同时设 MACOSX_DEPLOYMENT_TARGET=11.0、CGO_ENABLED=1、-ldflags="-linkmode=external",并用 otool 验证 LC_BUILD_VERSION.minos 字段(注意不是旧的 LC_BUILD_MACOSX_VERSION)。编译输出应看到:
✓ arm64: deployment target = 11.0.0
✓ amd64: deployment target = 11.0.0
如果你自己改 build.sh,注意这三者缺一不可,否则 macOS 11 会崩溃。
扩展浮标不出现
- 确认扩展已加载且启用
- 刷新目标页面(content script 在
document_start注入) - 检查 service worker console(
chrome://extensions/→ 扩展 → 「检查视图 service worker」)有无报错
MCP 工具不出现
- 确认 Claude Code 配置里 command 路径正确且二进制可执行
- 确认 service-go 以 MCP 模式启动(无
--http参数;MCP 模式由 Claude Code 拉起,与 launchd 的--http常驻实例是两个独立进程) - 重启 Claude Code
录制后数据库为空
- 确认 service-go 在跑(
curl http://127.0.0.1:9130/ping) - service worker console 检查
fetch('http://127.0.0.1:9130/record')是否报错 - 确认 popup 显示「录制中」状态
权限说明
| 权限 | 用途 |
|---|---|
webRequest |
监听请求/响应 |
storage |
存录制状态、过滤配置 |
alarms |
WS keep-alive |
tabs |
navigate |
scripting |
evaluate |
<all_urls> |
拦截任意 URL + WS 连本地 + evaluate 任意页面 |
安全提示
evaluate能执行任意 JS,等于完全控制当前页面(读 cookie、调 API、改 DOM)- service-go 默认仅监听
127.0.0.1,不要暴露到公网 - 录制数据含敏感字段(cookie/authorization),数据库文件注意保护
Установка Web Recorder
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/cchaofei/chrome-web-recorderFAQ
Web Recorder MCP бесплатный?
Да, Web Recorder MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Web Recorder?
Нет, Web Recorder работает без API-ключей и переменных окружения.
Web Recorder — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Web Recorder в Claude Desktop, Claude Code или Cursor?
Открой Web Recorder на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
Playwright
Browser automation, scraping, screenshots
автор: MicrosoftPuppeteer
Browser automation and web scraping.
автор: modelcontextprotocolopentabs-dev/opentabs
Plugin-based MCP server + Chrome extension that gives AI agents access to web applications through the user's authenticated browser session. 100+ plugins with a
автор: opentabs-devrobhunter/agentdeals
1,500+ developer infrastructure deals, free tiers, and startup programs across 54 categories. Search deals, compare vendors, plan stacks, and track pricing chan
автор: robhunterCompare Web Recorder with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории browse
