一个基于 FastMCP 框架的多平台智能图像生成适配器,通过浏览器插件与多个AI平台深度集成,提供统一的 MCP (Model Context Protocol) 服务接口,支持无限次调用不同平台的文生图和图生图功能。
- 🚀 FastMCP 框架:基于现代 MCP 协议,提供标准化的服务接口
- 🎨 多平台支持:支持豆包、通义千问等多个AI平台
- 🔄 多客户端支持:支持多个浏览器实例同时连接,智能负载均衡
- ⚡ 高效任务调度:轮询算法分配任务,支持并发处理
- 🛡️ 可靠性保障:任务超时管理、自动重连、连接状态监控
- 📸 智能图片处理:自动图片上传、参考图片处理、图片比例调整
- 🎯 图片管理:内置图片收集、预览、批量下载功能
- 📊 实时监控:完整的连接状态和任务状态查询接口
- 🔧 灵活配置:支持自动刷新、Cookie 管理等个性化设置
-
MCP 服务器 (
McpServer/)- FastMCP 框架提供标准 MCP 接口
- WebSocket 服务器处理浏览器插件连接
- 任务队列管理和负载均衡
- 连接状态监控和异常处理
-
浏览器插件集合
- 豆包代理 (
DoubaoMcpBrowserProxy/):集成豆包客户端 - 通义千问代理 (
QwenMcpBrowserProxy/):集成通义千问客户端 - 自动化文生图和图生图指令输入
- 智能图片上传和参考图片处理
- 图片 URL 实时收集和监控
- 用户界面增强功能
- 豆包代理 (
- 平台地址: https://www.doubao.com
- 功能: 文生图、图生图
- 特点: 高质量图像生成,支持多种风格
- 平台地址: https://chat.qwen.ai
- 功能: 文生图、图生图
- 特点: 强大的中文理解能力,支持多种比例
default.mp4
- Python: 3.8 或更高版本
- 浏览器: 支持 Chrome 扩展的 Chromium 内核浏览器
- AI平台: 豆包客户端、通义千问网页版
- 操作系统: Windows / macOS / Linux
# 克隆项目
git clone https://github.com/HuChundong/Omni-Adapter.git
cd Omni-Adapter
# 安装 Python 依赖
cd McpServer
pip install -r requirements.txt- 打开浏览器扩展页面 (
chrome://extensions/) - 开启右上角的"开发者模式"
- 点击"加载已解压的扩展程序"
- 选择
DoubaoMcpBrowserProxy目录
- 打开浏览器扩展页面 (
chrome://extensions/) - 开启右上角的"开发者模式"
- 点击"加载已解压的扩展程序"
- 选择
QwenMcpBrowserProxy目录
为获得最佳体验,建议在豆包客户端快捷方式中添加启动参数:
"豆包客户端路径" --silent-debugger-extension-api示例:
"C:\Program Files\Doubao\app\Doubao.exe" --silent-debugger-extension-api- 访问 https://chat.qwen.ai
- 登录你的账号
- 确保插件已正确安装并激活
# 在 McpServer 目录下启动服务
python server.py服务启动后将提供:
- WebSocket 服务:
ws://localhost:8080(浏览器插件连接) - MCP 服务:
http://localhost:8081(MCP 客户端连接)
注意: 如果部署在服务器上,请将
localhost替换为实际的服务器IP地址,并确保防火墙允许相应端口的访问。
在 MCP 客户端中配置服务地址:
http://192.168.2.192:8081/mcp
工具名称: draw_image
功能: 根据文本提示词生成图片
参数:
prompt(string): 文生图提示词,描述你希望生成的图片内容ratio(string, optional): 图片比例,默认为 "2:3"platform(string, optional): 指定平台,可选 "doubao" 或 "qwen",默认为 "doubao"
支持的比例:
- "1:1" - 正方形
- "2:3" - 竖版(默认)
- "3:2" - 横版
- "16:9" - 宽屏
- "9:16" - 竖屏
- "4:3" - 标准横版
- "3:4" - 标准竖版
返回格式:
{
"status": "success",
"image_urls": ["https://...", "https://..."],
"platform": "doubao"
}工具名称: edit_image
功能: 根据参考图片和文本提示词生成或编辑图片
参数:
prompt(string): 图片编辑的文本描述,描述你希望对参考图片进行的修改reference_picture(string): 参考图片的网络地址URL,必须是可访问的HTTP或HTTPS链接ratio(string, optional): 生成图片的宽高比例,默认为 "2:3"platform(string, optional): 指定平台,可选 "doubao" 或 "qwen",默认为 "doubao"
返回格式:
{
"status": "success",
"image_urls": ["https://...", "https://..."],
"platform": "qwen"
}注意事项:
reference_picture必须是有效的图片URL,支持常见格式:jpg, jpeg, png, gif, webp- 图片URL必须是公开可访问的,不能需要认证
- 建议图片大小不超过10MB,分辨率建议在1024x1024以内
工具名称: get_connection_status
功能: 获取服务器连接状态和任务信息
返回信息:
- 连接的客户端数量和状态
- 当前任务队列情况
- 系统运行状态
- 各平台连接状态
- 自动接收 MCP 服务器发送的文生图和图生图指令
- 智能图片上传:自动下载并上传参考图片到对应平台
- 模拟用户在AI平台中输入提示词和图片比例
- 实时监控生成的图片并收集 URL
- 实时预览: 弹窗显示所有收集到的图片
- 单独下载: 选择特定图片进行下载
- 批量下载: 一键下载所有图片
- 列表管理: 清空图片列表,重新开始收集
在插件选项页面 (chrome://extensions/ → 插件详情 → 扩展程序选项) 中可配置:
- 自动刷新: 任务完成后是否自动刷新页面
- Cookie 管理: 是否自动清除 Cookie (保持匿名状态)
- 平台选择: 默认使用的AI平台
在 McpServer/server.py 中可调整以下参数:
# 服务器配置
SERVER_HOST = "0.0.0.0" # 服务器监听地址
WS_PORT = 8080 # WebSocket 端口
MCP_PORT = 8081 # MCP 服务端口
# 任务配置
DEFAULT_TIMEOUT = 120.0 # 默认任务超时时间(秒)
MAX_TASKS = 50 # 任务队列最大长度- 轮询负载均衡: 任务自动分配给空闲客户端
- 超时保护: 120秒任务超时,自动释放资源
- 状态监控: 实时监控客户端连接和任务状态
- 异常恢复: 客户端断开时自动清理相关任务
- 图片处理: 自动下载参考图片并上传到对应平台
- 比例控制: 支持多种图片比例,满足不同场景需求
-
插件无法连接服务器
- 检查服务器是否启动 (
python server.py) - 确认端口 8080 未被占用
- 检查防火墙设置
- 检查服务器是否启动 (
-
任务超时或失败
- 确保AI平台正常运行
- 检查网络连接稳定性
- 尝试重新刷新平台页面
-
图片无法下载
- 检查浏览器下载权限
- 确认图片 URL 有效性
- 尝试清除浏览器缓存
查看服务器日志:
# 服务器日志会显示详细的连接和任务信息
python server.py查看浏览器控制台:
// 在AI平台页面按F12,查看Console输出
// 搜索 "[Script]" 或 "[WebSocket]" 相关日志- 隐私保护: 插件会自动清除 Cookie,每次使用都是匿名状态
- 页面刷新: 为确保功能正常,插件可能会自动刷新平台页面
- 单任务限制: 每个客户端同时只能处理一个图像生成任务
- 网络依赖: 需要稳定的网络连接以确保服务正常
- 本项目仅供学习研究使用
- 请遵守各AI平台的服务条款和使用协议
- 禁止用于任何商业用途
- 禁止生成违法违规内容
- 建议同时连接客户端数量不超过 5 个
- 大量并发请求可能影响AI平台服务稳定性
- 定期重启服务以清理资源占用
Omni-Adapter/
├── McpServer/ # MCP 服务器
│ ├── server.py # 主服务文件
│ ├── requirements.txt # Python 依赖
│ └── docker-compose.yml # Docker 配置
├── DoubaoMcpBrowserProxy/ # 豆包浏览器插件
│ ├── manifest.json # 插件配置
│ ├── content.js # 内容脚本
│ ├── background.js # 后台脚本
│ └── settings-panel.js # 设置面板
├── QwenMcpBrowserProxy/ # 通义千问浏览器插件
│ ├── manifest.json # 插件配置
│ ├── content.js # 内容脚本
│ ├── background.js # 后台脚本
│ └── settings-panel.js # 设置面板
└── README.md
- 创建新的浏览器插件目录
- 实现平台特定的交互逻辑
- 在MCP服务器中添加平台识别
- 更新文档和配置
可以加Omni-bot的开发者交流群,请注明omni-bot,机器人会自动通过,每天自动通过人数有限,请耐心等待
(如果项目对你有用,也可以请我喝杯咖啡 ☕️ ~)
欢迎提交 Issue 和 Pull Request!贡献前请确保:
- 代码符合项目规范
- 添加必要的测试用例
- 更新相关文档
- 通过所有现有测试
本项目采用 MIT 协议开源。详情请查看 LICENSE 文件。
本项目仅供学习和研究使用,请勿用于商业用途。使用本项目产生的任何后果由使用者自行承担。作者不对项目造成的任何损失承担责任。
感谢豆包和通义千问强大的文生图模型为本项目提供技术支持。



