doubao-mcp
by xiaodao00266
README.md
# doubao-mcp
豆包 MCP Server — 通过网页版豆包(web.doubao.com)提供**零 API 成本**的视觉与问答能力。
基于 CDP + Playwright 接管独立 profile 的 Chrome,在豆包网页版上传图片提问、抓取 AI 回复返回,不需要豆包 API Key。
## 能力
| 工具 | 说明 |
|------|------|
| `vision_analyze` | 图片识别/分析(上传图片到豆包网页版提问并取回复) |
| `video_analyze` | 视频分析(下载/本地 → 抽帧烧时间戳 → 拼图分块 → 豆包识别,可选本地转写) |
| `ask_doubao` | 纯文本问答(复用豆包会话,支持多轮上下文) |
| `daemon_start` | 启动 Chrome daemon(独立 profile,端口 9223,幂等) |
| `daemon_status` | 检查 daemon 运行状态 |
| `daemon_stop` | 关闭 Chrome daemon |
## 工作原理
```
Claude Code ──MCP stdio──> server.py ──> doubao_vision.py ──CDP──> Chrome (独立 profile)
video_analyze.py │
web.doubao.com(网页版)
```
- Chrome 以 `--remote-debugging-port=9223` 启动独立 profile,登录态持久化
- 图片通过 filechooser 事件上传,回复通过 DOM 特征(`data-streaming` 等)等待生成完成后提取
- 纯网页操作,**无 API 成本**,仅需可登录豆包的 Chrome
## 环境要求
- Python 3.10+
- Chrome(自动探测 `CHROME_PATH` 环境变量或常见安装路径)
- 可选:`ffmpeg`/`ffprobe`(视频抽帧)、`yt-dlp`(在线视频下载)、faster-whisper(音频转写)
## 安装
```bash
pip install fastmcp playwright websocket-client
# 可选功能依赖
pip install pillow # 视频帧时间戳烧录
pip install faster-whisper # 音频转写
```
## 使用
### 1. 作为 MCP server(Claude Code 等)
```json
{
"mcpServers": {
"doubao-mcp": {
"command": "python",
"args": ["/path/to/doubao-mcp/server.py"]
}
}
}
```
### 2. HTTP 模式(调试)
```bash
python server.py --port 8080
```
### 3. 直接 CLI 调用(不含 MCP)
```bash
# 启动 Chrome daemon(首次需手动登录豆包一次,登录态持久化)
python doubao_mcp/doubao_vision.py --start
# 图片识别
python doubao_mcp/doubao_vision.py --image photo.jpg --question "请描述这张图片"
# 视频分析(本地文件或 URL)
python doubao_mcp/video_analyze.py --video demo.mp4
```
## 配置
- **Chrome 路径**:设置环境变量 `CHROME_PATH` 指定 Chrome 可执行文件
- **CDP 端口**:默认 `9223`,见 `doubao_vision.py` 中的 `CDP_PORT`
- **登录态**:独立 profile 位于 `~/.claude/doubao-vision-profile`,首次使用 `daemon_start` 后手动登录一次即可
## 常见问题
- **退出码 1(CDP 不可达)**:daemon 未启动,先运行 `daemon_start`
- **退出码 2(未登录)**:打开豆包页面手动登录一次
- **退出码 5(超时)**:豆包生成较慢,增大 `--timeout`
- **退出码 6(安全过滤)**:回复为空,可能是风控或内容被过滤
## License
MIT
This server cannot be deployed
Maintenance
ActivitySlowing
ResponsivenessNo issues