内容
<p align="center">
<img src="https://raw.githubusercontent.com/zen-mcp/browser/refs/heads/main/logo.png" alt="Zen 浏览器 MCP logo" width="300" />
</p>
<h1 align="center">Zen 浏览器 MCP</h1>
<p align="center">
用于浏览器自动化的 MCP 服务器,支持 Playwright 和 browser-use。
</p>
<p align="center">
<a href="https://github.com/zen-mcp/browser/actions/workflows/ci.yml"><img alt="持续集成" src="https://img.shields.io/github/actions/workflow/status/zen-mcp/browser/ci.yml?branch=main&label=ci&style=for-the-badge" /></a>
<a href="https://github.com/zen-mcp/browser/actions/workflows/docs.yml"><img alt="文档" src="https://img.shields.io/github/actions/workflow/status/zen-mcp/browser/docs.yml?branch=main&label=docs&style=for-the-badge" /></a>
<a href="https://github.com/zen-mcp/browser/actions/workflows/release.yml"><img alt="发布" src="https://img.shields.io/github/actions/workflow/status/zen-mcp/browser/release.yml?label=release&style=for-the-badge" /></a>
<a href="https://github.com/zen-mcp/browser/releases"><img alt="最新发布" src="https://img.shields.io/github/v/release/zen-mcp/browser?sort=semver&style=for-the-badge" /></a>
<a href="LICENSE"><img alt="许可证" src="https://img.shields.io/github/license/zen-mcp/browser?style=for-the-badge" /></a>
<a href="https://hub.docker.com/r/zenkiet/browser"><img alt="Docker 拉取次数" src="https://img.shields.io/docker/pulls/zenkiet/browser?label=docker&logo=docker&style=for-the-badge" /></a>
<a href="https://github.com/zen-mcp/browser/stargazers"><img alt="GitHub 星标" src="https://img.shields.io/github/stars/zen-mcp/browser?style=for-the-badge" /></a>
</p>
## 什么是 Zen 浏览器 MCP?
Zen 浏览器 MCP 是一个 MCP 服务器,通过 HTTP/SSE 提供无头 Chromium 浏览器。它结合了直接的 Playwright 风格工具,用于确定性的浏览器步骤,以及用于更高级别的多步骤任务的 `browser-use` 代理流程。
它设计为首先从 Docker 运行,浏览器工件通过受控的 `/data` 卷写入。
## 为什么使用 Zen 浏览器 MCP?
当网站没有提供干净的 API 时,浏览器自动化非常有用,但直接在主机上运行代理浏览器会增加风险。Zen 浏览器 MCP 将浏览器运行时保留在容器中,并仅保留您通过 `${DATA_PATH}/browser-mcp:/data` 显式绑定的文件。
Docker 隔离减少了主机暴露,但它不是一个完整的数据丢失预防系统。请像处理任何自动化工作流一样,谨慎处理凭证、下载、截图和访问的页面。
## 快速开始
复制示例环境文件:
```bash
cp .env.example .env
```
设置您的提供商、模型、端口和数据路径:
```text
OPENAI_API_KEY=您的提供商密钥
OPENAI_BASE_URL=https://您的提供商示例.com/v1
MODEL_NAME=gpt-5.4-mini
BROWSER_MCP_TAG=latest
BROWSER_MCP_PORT=8000
DATA_PATH=./data
```
启动 MCP 服务器:
```bash
docker compose up
```
Compose 文件运行 `zen-mcp/browser:${BROWSER_MCP_TAG}`,映射 `${BROWSER_MCP_PORT}:8000`,并通过 `${DATA_PATH}/browser-mcp:/data` 保留运行时文件。
有关完整的环境参考,请参阅 [配置文档](https://zenkiet.github.io/browser-mcp/configuration/)。
## 它能做什么?
- 导航页面、滚动、等待选择器或文本,并检查可见文本。
- 点击元素、在输入框中输入内容和按下键盘按键。
- 捕获全页或元素的截图作为工件。
- 列出和检索运行时数据目录中的文件。
- 使用 `browser-use` 代理指令运行复杂的浏览器任务。
- 通过 `OPENAI_BASE_URL` 使用任何 OpenAI 兼容的提供商。
## 文档
完整文档可在 [zenkiet.github.io/browser-mcp](https://zenkiet.github.io/browser-mcp/) 上找到。
## 贡献
克隆仓库并安装 Python 依赖项:
```bash
git clone https://github.com/zen-mcp/browser.git
cd browser
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
```
运行验证检查:
```bash
python3 -m compileall -q src tests main.py
python3 -m unittest discover -s tests -p "test_*.py"
docker build -t browser-mcp:ci .
```
对于文档更改:
```bash
cd docs
yarn install --frozen-lockfile
yarn build
```
打开一个包含聚焦更改和运行的检查的拉取请求。
## 许可证
在 [Apache License 2.0](LICENSE) 下许可。
<p align="center">
<strong>如果 Zen 浏览器 MCP 有助于您的代理以更低的风险浏览,请给我点星。</strong>
</p>
<p align="center">
<a href="https://github.com/zen-mcp/browser/stargazers"><img alt="给此仓库点星" src="https://img.shields.io/github/stars/zen-mcp/browser?label=Star%20this%20repo&style=social" /></a>
</p>