你是否曾经希望自己的AI助手能够与网页进行交互,同时又追求极致的性能和稳定性?今天要介绍的开源项目Rod-MCP工具,正是基于Go语言和Rod库构建的浏览器自动化MCP服务器。它专为LLMs设计,提供了丰富的网页交互能力,如点击、截图、生成PDF等,同时具备出色的性能和简洁的配置。
项目基本信息
| 信息项 | 详情 |
|---|---|
| 项目名称 | Rod-MCP工具 |
| GitHub地址 | https://github.com/go-rod/rod-mcp |
| 项目描述 | Rod-MCP 通过使用 Rod 为您的应用程序提供浏览器自动化功能。该服务器提供了许多有用的 MCP 工具,使大型语言模型能够与网页进行交互,例如点击、截屏、将页面保存为 PDF 等。 |
| 作者 | go-rod |
| 开源协议 | MIT License |
| 开源状态 | 公开状态 |
| Languages | Go 100.0% |
| 支持平台 | Windows / macOS / Linux |
| 最后更新 | 2026-04-23 |
一、项目介绍
Rod-MCP工具是一个基于Go语言和Rod库实现的MCP服务器。Rod是一个受Puppeteer启发的Go语言浏览器自动化库,以高性能和稳定性著称。这个MCP服务器将Rod的能力封装成了标准的MCP工具,让AI助手能够通过简单的工具调用,完成复杂的浏览器自动化任务。
与基于Node.js的Puppeteer MCP不同,Rod-MCP工具拥有Go语言的原生性能优势:启动更快、内存占用更低、并发处理能力更强。它提供了以下核心能力:
- 元素点击
- 截图
- 生成PDF
- 更多交互能力(可根据需要扩展)
这个项目特别适合对性能有要求、或者已经在使用Go技术栈的团队。
二、核心优势
Go语言原生性能
基于Go语言编写,相比Node.js版本的浏览器自动化工具,具有更低的启动延迟和内存占用。单二进制文件部署,无需运行时依赖。
功能丰富
提供了完整的网页交互能力:
- 元素点击、填写表单
- 截图(全页面或特定元素)
- 将页面保存为PDF
- 支持无头/图形界面模式
易于配置
通过YAML配置文件集中管理:
- 浏览器可执行文件路径
- 无头模式开关
- 临时文件目录
- 沙箱模式开关
- 代理服务器设置
专为LLMs设计
工具接口设计充分考虑了LLMs的调用习惯,参数简洁明了。
开源且采用MIT协议
代码完全公开,采用宽松的MIT开源协议,可自由使用和修改。
三、适用场景
开发者学习和参考
对于想学习Go语言MCP服务器开发,或者研究Rod库应用的开发者,这是一个很好的范例项目。
高性能自动化测试
如果你需要高频次运行浏览器自动化测试,Go语言的性能优势会非常明显。
PDF生成服务
Rod-MCP工具支持将网页保存为PDF,可以用于生成报告、文档快照等场景。
企业级应用开发
在企业环境中,如果需要集成浏览器自动化到Go语言后端,这个项目可以作为基础组件。
日常工作和效率提升
与Claude Desktop等客户端结合后,你可以用自然语言指挥AI完成浏览器操作。
四、安装教程
系统要求
| 工具 | 用途 | 下载/安装方式 |
|---|---|---|
| Go | 编译和运行环境 | [https://go.dev/dl/] (版本要求:1.23 或以上) |
| Git | 下载项目代码 | [https://git-scm.com/] |
| Chrome/Chromium | 浏览器自动化目标 | 官方下载 |
详细安装步骤
第一步:克隆项目并编译
git clone https://github.com/go-rod/rod-mcp.git
cd rod-mcp
go mod tidy
go build编译完成后,会在当前目录生成可执行文件rod-mcp(Windows下为rod-mcp.exe)。
第二步:创建配置文件
创建一个YAML配置文件,例如rod-mcp.yaml:
serverName: "Rod Server"
headless: false # 是否以无头模式运行
browserTempDir: "./rod/browser"
noSandbox: false
# proxy: "socks5://127.0.0.1:1080" # 可选:代理设置
# browserBinPath: "/path/to/chrome" # 可选:指定Chrome路径第三步:配置MCP客户端
对于Claude Desktop,找到配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
添加以下配置:
{
"mcpServers": {
"rod-mcp": {
"command": "/你的绝对路径/rod-mcp",
"args": ["-c", "/你的绝对路径/rod-mcp.yaml"]
}
}
}注意:请将/你的绝对路径/替换为实际路径。在Windows上,路径中需要使用双反斜杠或正斜杠。
第四步:重启Claude Desktop
保存配置文件后,完全退出并重启Claude Desktop。
验证安装
配置完成后,在Claude Desktop中尝试输入:“使用rod-mcp截图https://example.com”。如果服务器正常工作,Claude会调用相应的工具,并返回截图。
五、使用示例
配置完成后,你就可以在MCP客户端中使用自然语言来调用Rod-MCP工具了。注意,具体的工具名称和参数可能需要参考项目的完整文档,以下示例基于一般性的Rod功能推断。
示例1:导航并截图
用户指令:“使用rod-mcp打开https://github.com并截取全页面截图”
AI会调用相应的截图工具,参数可能类似于:
{
"url": "https://github.com",
"fullPage": true
}示例2:点击元素
用户指令:“在https://example.com上点击id为‘submit’的按钮”
AI会调用点击工具:
{
"url": "https://example.com",
"selector": "#submit"
}示例3:生成PDF
用户指令:“将https://example.com/article保存为PDF”
AI会调用PDF生成工具:
{
"url": "https://example.com/article",
"path": "article.pdf"
}示例4:填写表单
用户指令:“在https://example.com/login的username字段填写‘myuser’,password字段填写‘mypass’”
AI可能会依次调用填写工具:
{
"selector": "#username",
"value": "myuser"
}示例5:使用代理
如果你需要通过代理访问网站,可以在配置文件中设置:
proxy: "socks5://127.0.0.1:1080"重启服务器后,所有浏览流量都会通过代理。
六、常见问题
问题1:编译时提示“go: go.mod file not found”
解决方案:请确保你在项目的根目录(包含go.mod文件的目录)下运行go build命令。
问题2:运行可执行文件时提示“Permission denied”
解决方案:在Linux/macOS上,需要给可执行文件添加执行权限:
chmod +x rod-mcp问题3:浏览器无法启动,提示找不到Chrome
解决方案:
- 确保系统已安装Chrome或Chromium
- 在配置文件中通过
browserBinPath指定Chrome可执行文件的具体路径
问题4:Claude Desktop中看不到rod-mcp工具
解决方案:
- 确认配置文件中的路径是绝对路径,并且可执行文件存在
- 检查JSON格式是否正确
- 完全退出并重启Claude Desktop
问题5:无头模式下截图内容不完整
解决方案:某些网页需要特定的视口大小才能正确渲染。尝试在非无头模式(headless: false)下运行观察效果,或者研究Rod-MCP是否支持设置视口尺寸。
七、总结
Rod-MCP工具是一个基于Go语言和Rod库的浏览器自动化MCP服务器。它的最大优势在于性能:Go语言的并发模型和编译型特性,使得它在启动速度、内存占用和处理能力上都优于基于Node.js的同类工具。
这个项目的核心价值在于:
- 高性能:适合高频次、大规模的浏览器自动化任务
- 易部署:单二进制文件,无需Node.js运行时
- Go生态:与Go语言后端服务无缝集成
- 配置灵活:YAML配置文件集中管理所有参数
需要注意的是:Rod-MCP工具目前文档相对较少,具体的工具列表和参数可能需要查看源码或等待项目完善。如果你熟悉Go语言,也可以直接阅读tools/目录下的代码来了解可用功能。
如果你对性能有较高要求,或者你的技术栈以Go为主,Rod-MCP工具是一个非常值得尝试的选择。
无头模式默认是false,这点和很多工具相反,需要注意。
我在Linux服务器上部署,内存占用只有20MB左右,很省资源。
能不能支持多标签页?目前文档没有明确说明。
Rod库本身支持多标签页,这个MCP应该也可以,可能需要看具体实现。
Go 1.23是必须的,旧版本编译会报错。