浏览器
MCP(模型上下文协议)服务器,允许LLM代理启动、导航、控制和读取Firefox浏览器的状态。通过stdio进行通信,可在macOS和Linux上运行。
先决条件
火狐
您的系统上必须安装Firefox。
- macOS:
brew install --cask firefox或从以下网址下载 mozilla.org - Linux(Debian/Ubuntu):
sudo apt install firefox或sudo snap install firefox - Linux(Fedora):
sudo dnf install firefox
壁虎驱动器
geckodriver是Firefox的WebDriver实现。它充当浏览器和Firefox之间的桥梁。
- macOS:
brew install geckodriver - Linux: 从下载最新版本 ,提取并将二进制文件放置在您的
PATH(例如。/usr/local/bin/):
# Example for Linux x86_64
curl -sL https://github.com/mozilla/geckodriver/releases/latest/download/geckodriver-v0.35.0-linux64.tar.gz | tar xz
sudo mv geckodriver /usr/local/bin/验证是否已安装:
geckodriver --versionRust工具链(待构建)
通过安装 rustup.rs 如果你没有:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh建筑
cargo build --release二进制文件将位于 target/release/browzer.
MCP配置
将浏览器添加到MCP客户端配置中。例如,在克劳德代码中(~/.claude.json):
{
"mcpServers": {
"browzer": {
"command": "/path/to/browzer"
}
}
}或者在项目层面 .mcp.json:
{
"mcpServers": {
"browzer": {
"command": "/path/to/browzer"
}
}
}可用工具
| 工具 | 说明 |
|---|---|
browser_launch | 通过geckodriver启动Firefox。支持 headless (bool)和 port (默认4444)参数。 |
browser_navigate | 导航到一个URL。返回最终的URL和页面标题。 |
browser_get_url | 获取当前页面URL |
browser_title | 获取当前页面标题。 |
browser_get_page_content | 将页面内容获取为可见文本(默认)或原始HTML(html: true). |
browser_click | 通过CSS选择器单击元素。 |
browser_type_text | 通过CSS选择器在输入元素中键入文本。支持 clear_first 选项。 |
browser_find_elements | 通过CSS选择器查找元素。返回每个匹配项的标记名称、文本、id、类、href和值。 |
browser_execute_js | 在浏览器中执行JavaScript。使用 return 以取回价值。 |
browser_screenshot | 对当前页面进行PNG截图(返回base64图像)。 |
browser_back | 返回浏览器历史记录。 |
browser_forward | 在浏览器历史记录中前进。 |
browser_wait_for_element | 等待与CSS选择器匹配的元素出现(可配置超时)。 |
browser_refresh | 重新加载当前页面。 |
browser_get_links | 获取页面上的所有链接及其href和文本。 |
browser_close | 关闭浏览器并停止geckodriver。 |
工作流程示例
典型的LLM代理交互可能如下:
browser_launch和headless: truebrowser_navigate到"https://example.com"browser_get_page_content阅读页面browser_find_elements和css_selector: "a"发现链接browser_click关于利益的联系browser_screenshot查看结果browser_close完成后
故障排除
“启动壁虎驱动程序失败” --geckodriver不在您的路径中。安装它(请参阅上面的先决条件)。
“无法连接到geckodriver” --geckodriver启动了,但Firefox无法启动。请确保已安装Firefox。在无头Linux服务器上,您可能需要一个虚拟帧缓冲区(xvfb)或使用 headless: true.
端口冲突 --如果端口4444正在使用中,请传递另一个 port 到 browser_launch.
许可证
麻省理工学院
