返回 MCP 目录
public公开dns本地运行

seedream_mcp

基于MCP协议的豆包Seedream 4.0文生图服务器,支持AI图片生成、自动下载和本地存储,可集成到Claude Code中使用

article

README

🚀 MCP Doubao Seedream 4.0 - 豆包图片生成 MCP 服务器

这是一个基于 Model Context Protocol (MCP) 的文生图服务器,采用豆包 Seedream 4.0 模型,可直接集成到 Claude Code 中使用,为用户提供便捷的图片生成体验。

🚀 快速开始

环境要求

  • Python 3.11+
  • uv(推荐)或 pip
  • Claude Code

安装

# 克隆项目
git clone <your-repo-url>
cd seedream_mcp

# 方法一:使用 uv(推荐)
uv sync

# 方法二:使用 pip
pip install -r requirements.txt

注意requirements.txt 通过以下命令生成:

uv export --format requirements.txt --output-file requirements.txt

配置

ARK_API_KEY 可以从火山方舟控制台(https://www.volcengine.com/product/ark)获取。 设置豆包 API 密钥环境变量:

export ARK_API_KEY="your-api-key-here"

或在 Claude Code 配置中设置:

{
  "mcpServers": {
    "mcp-doubao": {
      "command": "uv",
      "args": ["run", "python", "-m", "mcp_doubao.server"],
      "cwd": "/path/to/your/seedream_mcp",
      "env": {
        "ARK_API_KEY": "your-api-key-here"
      }
    }
  }
}

测试运行

# 测试服务器
uv run python -m mcp_doubao.server

# 测试图片生成(可选)
uv run python -c "
import asyncio
import sys
sys.path.append('src')
from mcp_doubao.tools import handle_generate_images

async def test():
    result = await handle_generate_images({
        'prompt': '一只可爱的小猫',
        'output_dir': './test_images'
    })
    print(result[0].text)

asyncio.run(test())
"

接入 Claude Code

详细接入步骤请查看 INTEGRATION_GUIDE.md

方法一:使用启动脚本(推荐)

使用项目提供的启动脚本,自动设置虚拟环境和 Python 路径:

{
  "mcpServers": {
    "mcp-doubao": {
      "type": "stdio",
      "command": "/path/to/your/seedream_mcp/start_mcp_server.sh",
      "env": {
        "ARK_API_KEY": "your-api-key-here"
      }
    }
  }
}

方法二:使用 uv 命令

claude mcp add-json mcp-doubao '{
  "type": "stdio",
  "command": "uv",
  "args": ["run", "python", "-m", "mcp_doubao.server"],
  "cwd": "/path/to/your/seedream_mcp",
  "env": {
    "ARK_API_KEY": "your-api-key-here"
  }
}'

✨ 主要特性

  • 🎨 AI 图片生成:基于豆包 Seedream 模型的文生图功能
  • 📁 自动下载:生成的图片自动下载到指定目录
  • 🔧 灵活配置:支持多种尺寸、水印控制、批量生成
  • 🚀 即插即用:通过 MCP 协议无缝集成到 Claude Code
  • 💾 本地存储:图片保存到本地,便于后续使用

💻 使用示例

基础用法

在 Claude Code 中直接用自然语言请求:

请生成一张樱花飞舞的图片

高级用法

生成3张不同风格的山水画,4K分辨率,保存到artwork文件夹,不要水印

工具参数

| 参数 | 类型 | 默认值 | 说明 | |------|------|--------|------| | prompt | string | 必填 | 图片描述文本 | | num_images | int | 1 | 生成数量 (1 - 3) | | size | string | "2K" | 尺寸 ("1K"/"2K"/"4K" 或具体像素如 "2048x2048") | | watermark | bool | false | 是否添加水印 | | output_dir | string | "." | 保存目录 | | image_paths | array | [] | 可选的参考图片路径列表 (1 - 10张) | | sequential_image_generation | string | "disabled" | 组图模式 ("auto"/"disabled") | | max_images | int | 3 | 组图模式下最大生成数量 (1 - 15) |

📚 详细文档

项目结构

seedream_mcp/
├── src/mcp_doubao/
│   ├── __init__.py          # 模块初始化
│   ├── server.py            # MCP 服务器入口
│   ├── tools.py             # 工具定义和处理
│   ├── doubao_client.py     # 豆包 API 客户端
│   ├── downloader.py        # 图片下载器
│   ├── config.py            # 配置常量
│   └── types.py             # 数据类型定义
├── start_mcp_server.sh      # Claude Code 启动脚本(推荐使用)
├── scripts/
│   └── run_stdio.sh         # 备用启动脚本
├── examples/
│   └── prompts.txt          # 示例提示词
├── tests/                   # 测试文件
├── .venv/                   # Python 虚拟环境
├── pyproject.toml          # 项目配置
├── README.md               # 项目说明
└── INTEGRATION_GUIDE.md    # 接入指南

技术实现

MCP 协议

基于 Model Context Protocol 1.14.1+ 实现,提供标准化的工具接口。

API 集成

  • SDK:volcengine-python-sdk[ark] 4.0.21+
  • 模型:doubao-seedream-4-0-250828
  • 端点:https://ark.cn-beijing.volces.com/api/v3

图片下载

  • HTTP 客户端:httpx 0.28.1+
  • 文件命名:image_001.jpeg, image_002.jpeg...(自动避免覆盖)
  • 格式支持:JPEG, PNG, WebP 等
  • 防覆盖:如果文件已存在,自动添加数字后缀

开发说明

启动脚本功能

start_mcp_server.sh 脚本的特性:

  • 自动环境设置:自动使用项目的 .venv 虚拟环境
  • 路径配置:自动设置 PYTHONPATH 到项目的 src 目录
  • 工作目录:自动切换到项目根目录
  • 环境变量:可通过 Claude Code 配置传入 ARK_API_KEY

本地开发

# 使用启动脚本(推荐)
./start_mcp_server.sh

# 或使用 uv 命令
uv run python -m mcp_doubao.server

# 运行测试
uv run python -m pytest tests/

# 代码格式化
uv run ruff format src/

# 更新 requirements.txt(添加新依赖后)
uv export --format requirements.txt --output-file requirements.txt

扩展功能

现有架构支持轻松扩展:

  • 添加新的图片参数(引导参数、种子等)
  • 支持图生图功能
  • 增加数据库记录
  • 添加配额管理

故障排除

常见问题

  1. 导入错误:确保所有依赖已正确安装
  2. API 错误:检查 ARK_API_KEY 环境变量是否正确设置
  3. 权限错误:确保输出目录有写入权限
  4. 图片覆盖:系统会自动避免覆盖现有图片,生成唯一文件名

调试模式

# 启用详细日志
PYTHONPATH=src uv run python -c "
import logging
logging.basicConfig(level=logging.DEBUG)
# ... 你的测试代码
"

依赖项

核心依赖:

  • mcp>=1.14.1 - Model Context Protocol
  • volcengine-python-sdk[ark]>=4.0.21 - 豆包 API SDK
  • httpx>=0.28.1 - HTTP 客户端

🔧 技术细节

本项目基于 Model Context Protocol 1.14.1+ 实现了标准化的工具接口,通过 volcengine-python-sdk[ark] 4.0.21+ 与豆包 API 进行交互。在图片下载方面,使用了 httpx 0.28.1+ 作为 HTTP 客户端,能够自动避免文件覆盖,支持多种图片格式。项目的启动脚本 start_mcp_server.sh 可以自动设置虚拟环境和 Python 路径,方便开发和使用。同时,项目的架构设计支持轻松扩展新功能,如添加图片参数、支持图生图等。

📄 许可证

本项目基于 MIT 许可证开源。

贡献

欢迎提交 Issue 和 Pull Request!

更新日志

v0.1.0 (2024-09-23)

  • ✨ 初始版本发布
  • 🎨 支持基础图片生成功能
  • 📁 自动图片下载
  • 🔧 MCP 协议集成
  • 💾 本地文件存储
help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端