web-recorder
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@web-recorderlist my recorded sessions"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
WebRecorder
录制 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 工具可用。
Related MCP server: cdp-bridge
使用
录制
点扩展图标打开 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 显示「录制中」状态
权限说明
权限 | 用途 |
| 监听请求/响应 |
| 存录制状态、过滤配置 |
| WS keep-alive |
| navigate |
| evaluate |
| 拦截任意 URL + WS 连本地 + evaluate 任意页面 |
安全提示
evaluate能执行任意 JS,等于完全控制当前页面(读 cookie、调 API、改 DOM)service-go 默认仅监听
127.0.0.1,不要暴露到公网录制数据含敏感字段(cookie/authorization),数据库文件注意保护
This server cannot be deployed
Maintenance
Related MCP Connectors
Stealth web browser for agents: search, fetch, click, download and type in persistent MCP sessions.
Hyperbrowser MCP — wraps the Hyperbrowser AI-agent browsing API
Live browser debugging for AI assistants — DOM, console, network via MCP.
Scrape, crawl and search the web for AI agents via MCP.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to control the Google Chrome browser through a Node.js WebSocket bridge and a dedicated browser extension. It provides tools for capturing screenshots, executing JavaScript, managing tabs, and extracting page content via the MCP protocol.2-
- AlicenseAqualityAmaintenanceConnects MCP clients to real browser sessions via a Chromium plugin, enabling LLMs to read, scan, automate, and navigate web pages using the user's existing browser state.10297MIT
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to control and interact with a Chrome browser via MCP, providing tools for navigation, screenshots, clicking, form filling, content extraction, and tab management.-
- AlicenseNot gradedqualityBmaintenanceA continuously-recording Chromium daemon exposed over MCP, enabling AI agents to query past network, console, and DOM activity and control a headed browser.780,568 npm1MIT