|
|
用火山视窗写了一个 MCP 服务端,让 Cursor / Claude 真正长出"浏览器的手脚"
开源地址:https://github.com/AI-XiaoDao/ai-browser-mcp | MIT 协议 | v3.2.0
实际界面(欢迎页控制台 / 真实 CEF 浏览器窗口 / 启动控制台日志):
01-欢迎页控制台.png
(281.56 KB, 下载次数: 0, 售价: 1 金钱)
02-浏览器窗口.png
(266.98 KB, 下载次数: 0, 售价: 1 金钱)
03-控制台窗口.png
(29.29 KB, 下载次数: 0, 售价: 1 金钱)
一、为什么折腾这个
现在 Cursor、Claude Desktop、Cline、Trae 这些 AI 编程助手都支持 MCP(Model Context Protocol),理论上可以调用外部工具了。但真用起来会发现一个断层:
- 让 AI 帮我抓个页面数据 —— 它只能给我一段代码,让我自己跑;
- 让 AI 帮我分析某个网站的 JS 加密 —— 它看不到真实运行环境,只能猜;
- 让 AI 帮我填个表单、点个按钮 —— 它没有手。
现有的浏览器自动化 MCP 方案(Playwright / Puppeteer 那一套)大多是 Node 驱动,要装环境、装依赖,而且能力基本停在"导航 + 点击 + 取值",网络层、内核层、逆向层都够不着。
所以就用火山视窗 + FBrowser CEF 内核自己写了一个:把一整个真实浏览器内核包成一个本地 MCP 服务端,AI 助手连上来就能直接开浏览器、跑 JS、下断点、抓包、改请求。
二、它能干什么(334 个工具)
| 类别 | 数量 | 代表工具 | | 系统/元工具 | 9 | ping、mcp_status、mcp_result、batch(≤200 条批量) | | 导航 / 页面 | 10 | navigate、get_url、get_title、reload | | JS 执行 | 4 | evaluate、execute_js、console_eval、inject(持久 V8) | | DOM 操作 | 14 | dom_query、dom_click、snapshot、element_action | | 填表 RPA | 10 | fill_set_value、fill_click、fill_form(批量填表) | | 网络抓包 | 5 | network、network_body、collect、network_export(HAR) | | 资源拦截 | 1 | intercept(modify / block / redirect / replace_file) | | Cookie / 代理 | 8 | get_cookies、set_cookie、set_proxy、set_s5_proxy | | 断点调试 | 15 | debugger_flow、debugger_auto、set_breakpoint、inspect | | JS 逆向 | 34 | reverse_hook、reverse_scan_crypto、reverse_call_fn | | 指纹伪装 | 45+ | fingerprint、antidetect_presets、vip_fingerprint_* | | 内核层 | 15 | kernel_scheme、kernel_cert、kernel_auth、kernel_reactor | | 输入交互 | 14 | mouse_*、key_event、touch_* | | 窗口 / 系统 | 15 | window_info、file_dialog、ipc_* | | 工作流 | 4 | workflow_list、workflow_run、workflow_stop |
v3.2.0 做过一轮全量真机核验:311 个通过 / 23 个受控跳过 / 0 失败,35 秒跑完一轮,全程零冷重启。
三、跑起来只要三步
1. 下载解压(Windows x64 约 160MB,win32 约 140MB)
Releases 页面:https://github.com/AI-XiaoDao/ai-browser-mcp/releases
2. 启动
双击 AI-Fbowser-Mcp.exe,浏览器访问 http://127.0.0.1:9222/health 看到 {"status":"ok"} 就是好了。不用装 Node 环境、不用配依赖。
3. 接到 AI 助手上(以 Cursor 为例)
- {
- "mcpServers": {
- "ai-browser": {
- "command": "node",
- "args": ["D:/你的路径/mcp_bridge.js"]
- }
- }
- }
复制代码
懒得手写的话,直接开 http://127.0.0.1:9222/ 欢迎页,上面有一键复制配置;也支持 auto_install_agents 自动写入 Cursor / Claude / Codex / Cline / Windsurf。
四、几个实际用起来的样子
▸ 一步爬虫
不用先导航再等待再取值,一个工具全干完:
- browser_scrape {
- url: "https://example.com/list",
- extract_selector: ".item .title",
- wait_selector: ".item"
- }
复制代码
▸ 抓接口而不是扒 HTML
很多时候数据在 XHR 里,扒 DOM 是走弯路:
- browser_network { detail_enable: true } // 开始记录
- // ……手动或自动操作页面……
- browser_network { list: true } // 直接拿到请求列表和响应体
复制代码
▸ 批量操作
200 条指令打包一次发,减少来回:
- batch {
- commands: [
- { name: "browser_navigate", arguments: { url: "..." } },
- { name: "browser_wait", arguments: { selector: "#app" } },
- { name: "browser_get_text", arguments: { selector: "h1" } }
- ]
- }
复制代码
▸ JS 逆向 / 断点调试
这块是纯 JS 注入方案做不了的:断点 → 看调用栈 → 求值 → 导出加密函数,`debugger_flow` 把这些串成一条命令;`reverse_scan_crypto` 能扫常见加密算法特征,`reverse_hook` 可以挂指定函数看参数进出。混淆代码也能先过一遍 `reverse_detect_obfuscator`。
▸ 同步 / 异步
轻量读操作默认同步返回;重操作返回 task_id,用 mcp_result 轮询。嫌麻烦就加 max_ms 让服务端阻塞等你,或 async_only:true 强制异步。
五、技术架构
- Cursor / Claude Desktop ←→ mcp_bridge.js (stdio 桥接)
- │
- ▼
- 127.0.0.1:9222 (HTTP/WS JSON-RPC)
- │
- MCP_Server.wsv (MCP 引擎 / 工具注册 / 路由)
- ├── Core — 导航 / JS / DOM / CDP / 截图 / 拦截
- ├── Form — FBrowser 填表框架
- ├── VIP — 指纹 / 代理 / 高级键鼠 / CDP
- ├── Kernel — 内核层:自定义协议 / 证书 / 认证 / 下载 / IPC
- ├── Reverse — JS 逆向:Hook / 断点 / 堆 / 混淆检测
- ├── System — 系统 / 进程 / 窗口
- ├── Workflow — JSON 工作流引擎
- ├── HTTP — HTTP / WebSocket 路由
- └── Events — 浏览器事件 Hook 系统
- │
- FBrowser CEF (libcef.dll)
复制代码
六、给同样用中文编程的朋友
这项目的意义不只是"又一个 MCP 服务端",而是:它整个是用火山视窗写的。
`src/` 下 16 个 `.wsv` 全部开源——MCP 协议解析、JSON-RPC 路由、CEF 内核调用、CDP 协议对接、事件 Hook 系统,都是中文编程写出来的,编译出来运行时零依赖。想学 CEF 开发、想学怎么把 CEF 包成服务端、想看 MCP 协议在中文编程里怎么落地,直接扒源码比看英文文档快得多。
至少我自己翻遍了能找到的资料,火山 + CEF + MCP 这条路上没什么现成范例,所以索性把踩过的坑都留在代码里了。
七、几个说明
- 隐私:纯本地服务,监听 127.0.0.1:9222,数据不出本机;
- 协议:MIT,源码和文档全开放,可商用、可二次开发;
- 平台:目前只有 Windows(x64 / win32);
- 反馈:有问题直接回帖或者提 Issue,我基本都在。
关于作者
这个项目是我自己写的,发在这儿是因为社区里用中文编程 + CEF 的人不少,应该用得上,也算交个朋友。用得上的话给个 Star 就是最大的支持;用不上或者觉得哪里做得不对,欢迎直接拍砖。
GitHub:https://github.com/AI-XiaoDao/ai-browser-mcp |
|