基于火山引擎Seedream 4.0 API的MCP(模型上下文协议)工具包提供了诸如文本生成图像、图像生成图像、多图像融合以及图像生成等功能。
致谢 该项目基于tengmmvp/Seedream_MCP进行增强开发,感谢原作者的贡献!
增强功能:
- ✨ 七牛云自动上传及公网访问
- 🎨 提示词模板系统(8个预设模板)
- 📸 Raycast AI Markdown图像渲染支持
- 💾 优化的图像保存与管理
git clone <repository-url>
cd Seedream_MCP
pip install -e .
创建.env文件:
# 必需配置
ARK_API_KEY=your_api_key_here
# 可选配置
ARK_BASE_URL=https://ark.cn-beijing.volces.com/api/v3
SEEDREAM_MODEL_ID=doubao-seedream-4-0-250828
SEEDREAM_DEFAULT_SIZE=2K
SEEDREAM_DEFAULT_WATERMARK=false
SEEDREAM_TIMEOUT=60
SEEDREAM_API_TIMEOUT=60
SEEDREAM_MAX_RETRIES=3
LOG_LEVEL=INFO
LOG_FILE=logs/seedream_mcp.log
# 自动保存配置
SEEDREAM_AUTO_SAVE_ENABLED=true
SEEDREAM_AUTO_SAVE_BASE_DIR=./seedream_images
SEEDREAM_AUTO_SAVE_DOWNLOAD_TIMEOUT=30
SEEDREAM_AUTO_SAVE_MAX_RETRIES=3
SEEDREAM_AUTO_SAVE_MAX_FILE_SIZE=52428800
SEEDREAM_AUTO_SAVE_MAX_CONCURRENT=5
SEEDREAM_AUTO_SAVE_DATE_FOLDER=true
SEEDREAM_AUTO_SAVE_CLEANUP_DAYS=30
# 七牛云配置(可选,用于上传图片到七牛云存储)
QINIU_ACCESS_KEY=your_access_key
QINIU_SECRET_KEY=your_secret_key
QINIU_BUCKET_NAME=your_bucket_name
QINIU_DOMAIN=https://your-domain.com
注意 配置七牛云后,生成的图像将自动上传至七牛云,并在返回结果中提供公网可访问的Markdown图像链接。详情见七牛云集成文档。
在您的MCP客户端配置文件中添加以下配置:
Raycast AI / Claude Desktop / Cline 等:
{
"mcpServers": {
"seedream": {
"command": "python",
"args": [
"/你的路径/Seedream_MCP/main.py"
],
"env": {
"ARK_BASE_URL": "https://ark.cn-beijing.volces.com/api/v3"
}
}
}
}
配置文件位置:
~/Library/Application Support/com.raycast.macos/mcp.json~/Library/Application Support/Claude/claude_desktop_config.json.vscode/settings.json 或用户设置重要提示:
/你的路径/Seedream_MCP/main.py 翻译为英文并替换为您实际的项目路径。配置好MCP客户端后,您可以直接通过自然语言对话生成图像:
您说?
帮我生成一张图片:一只可爱的小恐龙,友好的表情,卡通风格
AI回复:
✅ 图像生成成功!
seedream_images/2025-11-18/text_to_image/...您说?
潮流派对,关键词:可口可乐
AI回复:
✅ 图像生成成功!
您说?
公众号封面,主题:AI 技术革新
AI回复:
✅ 图像生成成功!
只需声明模板名称和关键词:
| 模板名称 | 使用方式 | 适用场景 |
|---|---|---|
| 🎨 潮流派对 | 潮流派对,关键词:XXX | 运营活动,艺术字体 |
| 📱 官方账号封面 | 官方账号封面,主题:XXX | 官方账号图片(21:9) |
| 🎭 中国风 | 中国风,主题:XXX | 中国风设计 |
| 🌸 清新文艺 | 清新文艺,主题:XXX | 文艺清新风格 |
| 🎮 赛博朋克 | 赛博朋克,主题:XXX | 科技未来风格 |
| 🏮 新年庆典 | 新年庆典,主题:XXX | 节日庆典 |
| 💼 商务简约 | 商务简约,主题:XXX | 商务场景 |
| 🎨 水彩插画 | 水彩插画,主题:XXX | 手绘插画风格 |
python -m seedream_mcp.server
import asyncio
from seedream_mcp import SeedreamClient, SeedreamConfig
async def main():
# 加载配置
config = SeedreamConfig.from_env()
# 创建客户端
client = SeedreamClient(config)
try:
# 文生图(启用自动保存)
result = await client.text_to_image(
prompt="一只可爱的小猫咪,卡通风格",
size="2K",
watermark=False,
auto_save=True,
custom_name="cute_cat"
)
print(f"生成的图像URL: {result['image_url']}")
print(f"本地保存路径: {result['local_path']}")
print(f"Markdown引用: {result['markdown']}")
# 图生图
result = await client.image_to_image(
prompt="将这张图片转换为油画风格",
image="path/to/image.jpg",
size="2K",
auto_save=True
)
print(f"转换后的图像URL: {result['image_url']}")
print(f"本地保存路径: {result['local_path']}")
finally:
await client.close()
if __name__ == "__main__":
asyncio.run(main())
内置8个专业提示词模板,只需声明模板名称+关键词即可生成相应风格的图像:
配置七牛云后,生成的图像将自动上传至七牛云存储:
根据文本描述生成图像。
参数
prompt(必填):文本描述,建议不超过300个汉字或600个英文单词size(可选):图像尺寸,可选值:1K, 2K, 4K,默认2Kwatermark(可选):是否添加水印,默认falseresponse_format(可选):响应格式,可选值:image, URL, b64_json,默认imageauto_save(可选):是否自动保存图像至本地,默认使用全局配置save_path(可选):自定义保存路径,未指定时使用默认路径custom_name(可选):自定义文件名前缀自然语言示例:
帮我生成一张图片:一只可爱的小猫咪,卡通风格
或使用提示词模板:
潮流派对,关键词:可口可乐
根据参考图像和文本指令生成新图像。
参数
prompt(必填):图像编辑指令image(必填):参考图像URL或本地文件路径size(可选):输出图像尺寸,默认2Kwatermark(可选):是否添加水印,默认falseresponse_format(可选):响应格式,可选值:image, URL, b64_json,默认imageauto_save(可选):是否自动保存图像至本地,默认使用全局配置save_path(可选):自定义保存路径,未指定时使用默认路径custom_name(可选):自定义文件名前缀示例
{
"prompt": "将这张图片转换为油画风格",
"image": "https://example.com/image.jpg",
"size": "2K",
"watermark": false,
"auto_save": true,
"custom_name": "oil_painting"
}
结合多个参考图像特征生成新图像。
参数
prompt(必填):融合指令描述images(必填):多个参考图像URL或文件路径数组(2-5张)size(可选):输出图像尺寸,默认2Kauto_save(可选):是否自动保存图像至本地,默认使用全局配置save_path(可选):自定义保存路径,未指定时使用默认路径custom_name(可选):自定义文件名前缀示例
{
"prompt": "将这些图片融合成一个艺术作品",
"images": [
"https://example.com/image1.jpg",
"https://example.com/image2.jpg",
"https://example.com/image3.jpg"
],
"size": "4K",
"auto_save": true,
"custom_name": "fusion_art"
}
生成与一组内容相关的图像序列。
参数
prompt(必填):图像生成描述max_images(可选):最大图像数量(1-10),默认3images(可选):参考图像数组size(可选):图像尺寸,默认2Kauto_save(可选):是否自动保存图像至本地,默认使用全局配置save_path(可选):自定义保存路径,未指定时使用默认路径custom_name(可选):自定义文件名前缀示例
{
"prompt": "科幻城市景观,未来主义风格",
"max_images": 4,
"size": "2K",
"auto_save": true,
"custom_name": "sci_fi_city"
}
| 环境变量 | 描述 | 默认值 | 是否必需 |
|---|---|---|---|
ARK_API_KEY | 火山引擎API密钥 | - | ✅ |
ARK_BASE_URL | API基础URL | https://ark.cn-beijing.volces.com/api/v3 | ❌ |
SEEDREAM_MODEL_ID | 模型ID | doubao-seedream-4-0-250828 | ❌ |
SEEDREAM_DEFAULT_SIZE | 默认图像尺寸 | 2K | ❌ |
SEEDREAM_DEFAULT_WATERMARK | 默认水印设置 | true | ❌ |
SEEDREAM_TIMEOUT | 请求超时(秒) | 60 | ❌ |
SEEDREAM_API_TIMEOUT | API超时(秒) | 60 | ❌ |
SEEDREAM_MAX_RETRIES | 最大重试次数 | 3 | ❌ |
LOG_LEVEL | 日志级别 | INFO | ❌ |
LOG_FILE | 日志文件路径 | logs/setteam-mcp.log | ❌ |
SEEDREAM_AUTO_SAVE_ENABLED | 启用自动保存 | true | ❌ |
SEEDREAM_AUTO_SAVE_BASE_DIR | 自动保存基本目录 | /seedream_images | ❌ |
SEEDREAM_AUTO_SAVE_DOWNLOAD_TIMEOUT | 下载超时(秒) | 30 | ❌ |
SEEDREAM_AUTO_SAVE_MAX_RETRIES | 下载最大重试次数 | 3 | ❌ |
SEEDREAM_AUTO_SAVE_MAX_FILE_SIZE | 最大文件大小(字节) | 52428800 | ❌ |
SEEDREAM_AUTO_SAVE_MAX_CONCURRENT | 最大并发下载数 | 5 | ❌ |
SEEDREAM_AUTO_SAVE_DATE_FOLDER | 创建日期文件夹 | true | ❌ |
SEEDREAM_AUTO_SAVE_CLEANUP_DAYS | 自动清理天数 | 30 | ❌ |
自动保存功能解决了生成图像URL在24小时后过期的问题,并提供了永久可用的本地图像存储。
# 启用自动保存的文生图
result = await client.text_to_image(
prompt="美丽的风景画",
auto_save=True,
custom_name="landscape"
)
# 返回结果包含:
# - image_url: 原始图片URL
# - local_path: 本地保存路径
# - markdown: Markdown引用格式
# - save_result: 保存操作的详细信息
images/
├── 2024-01-15/
│ ├── text_to_image/
│ │ ├── landscape_20240115_143022_abc123_2K.png
│ │ └── portrait_20240115_143045_def456_