MCP server for Doubao image generation - generates images from text prompts using Doubao's API
Project description
MCP Doubao 图像生成器 (MCP Doubao Image Generator)
一个 Model Context Protocol (MCP) 服务器,赋予 AI 助手使用豆包 Seedream 从文本提示生成图像的能力。
✨ 功能特性
- 豆包 Seedream 集成:使用豆包 Seedream API 从文本描述生成图像
- 多参数支持:支持尺寸、样式、质量和数量选项
- 专用提供商:专为豆包 Seedream 服务设计
- 跨平台:完美支持 Windows、Linux 和 macOS
- 易于集成:为 MCP 客户端提供简单配置
🚀 安装
使用 uvx (推荐)
uvx mcp-seedream@latest
使用 pip
pip install mcp-seedream@latest
从源码安装
git clone https://github.com/aardpro/mcp-seedream.git
cd mcp-seedream
pip install -e .
⚙️ 配置
配置
环境变量配置
在使用 MCP 服务器之前,您需要设置 ARK_API_KEY 环境变量。以下是不同操作系统的设置方法:
Windows (命令提示符)
set ARK_API_KEY=your-api-key-here
Windows (PowerShell)
$env:ARK_API_KEY="your-api-key-here"
Linux/macOS (Bash/Zsh)
export ARK_API_KEY="your-api-key-here"
永久设置 (Linux/macOS)
将以下行添加到您的 ~/.bashrc 或 ~/.zshrc 文件中:
export ARK_API_KEY="your-api-key-here"
永久设置 (Windows)
在 Windows 系统中,您可以通过以下方式永久设置环境变量:
- 打开“系统属性”对话框 (右键点击“此电脑” -> “属性”)
- 点击“高级系统设置”
- 点击“环境变量”
- 在“用户变量”部分点击“新建”
- 变量名:
ARK_API_KEY,变量值:您的 API 密钥
配置文件
服务器会从内部配置文件加载默认设置。如果需要自定义配置,请按照MCP客户端配置指南进行环境变量设置。
MCP 客户端配置
将以下内容添加到你的 MCP 客户端配置中(例如 Claude Desktop, Cursor):
选项 1: 使用 uvx
{
"mcpServers": {
"McpSeedream": {
"command": "uvx",
"args": ["mcp-seedream"]
}
}
}
选项 2: 使用 pip
{
"mcpServers": {
"McpSeedream": {
"command": "mcp-seedream"
}
}
}
选项 3: Windows 系统
{
"mcpServers": {
"McpSeedream": {
"command": "cmd",
"args": [
"/c",
"chcp 65001 >nul && uvx mcp-seedream"
]
}
}
}
选项 4: Linux/macOS:
{
"mcpServers": {
"McpSeedream": {
"command": "python",
"args": ["-m", "main"]
}
}
}
🛠️ 可用工具
generate_image
使用配置的 API 从文本提示生成图像。当用户明确或隐含地要求创建、生成、制作、绘制、设计或可视化任何类型的图像、图片、插图、图表、图形、艺术作品、照片、肖像、风景、场景、概念图、设计图、卡通、动漫、海报、封面、图标、徽标等视觉内容时,必须调用此工具。支持三种调用方式:1) 文本到图像(仅提示词) 2) 图像到图像(提示词+单个图像) 3) 多图像融合(提示词+多个图像)。支持本地图像文件路径和公共图像URL(本地文件将自动上传到MinIO)。
参数:
prompt(string, 必填): 描述要生成图像的文本model(string, 可选): 用于生成的模型 (覆盖默认值)n(integer, 可选): 生成图像的数量 (默认: 1, 最大: 10)size(string, 可选): 生成图像的尺寸 (默认: '2K')。对于豆包 API,使用 '2K', '4K' 或具体尺寸如 '1024x1024'style(string, 可选): 生成图像的风格 (默认: 'vivid')quality(string, 可选): 生成图像的质量 (默认: 'standard')image(string 或 string 数组, 可选): 用作图像生成参考的单个图像 URL 或图像 URL 数组sequential_image_generation(string, 可选): 启用 ('auto') 或禁用 ('disabled') 序列图像生成以创建相关图像 (默认: 'disabled')sequential_image_generation_options(object, 可选): 序列图像生成选项,包括 max_imagesattempts(integer, 可选): 生成图像的尝试次数。如果指定多次尝试,将使用相同的提示词和参考图像重复生成,直到达到指定次数 (默认: 1, 最大: 10)output_dir(string, 必填): 保存生成图像的目录。此参数必须由代理在每次函数调用时提供(不再全局配置)。target_filename(string, 可选): 生成图像的目标文件名。如果未提供,将使用时间戳和随机数字生成文件名
示例:
文生图:
{
"name": "generate_image",
"arguments": {
"prompt": "一只可爱的柴犬在公园里玩耍",
"size": "2K",
"style": "vivid",
"n": 1,
"output_dir": "./images"
}
}
图生图 (使用图像 URL):
{
"name": "generate_image",
"arguments": {
"prompt": "将背景改为海滩场景",
"image": "https://example.com/path/to/image.jpg",
"size": "2K",
"output_dir": "./images"
}
}
图生图 (使用本地图像文件):
{
"name": "generate_image",
"arguments": {
"prompt": "将背景改为海滩场景",
"image": "./path/to/local/image.jpg",
"size": "2K",
"output_dir": "./images"
}
}
多图融合:
{
"name": "generate_image",
"arguments": {
"prompt": "将这些元素合成一个场景",
"image": ["http://175.178.248.52:9000/ai-images/1704218400_12345.jpg", "http://175.178.248.52:9000/ai-images/1704218400_67890.png"],
"size": "2K",
"output_dir": "./images"
}
}
多图融合 (使用本地图像文件):
{
"name": "generate_image",
"arguments": {
"prompt": "将这些元素合成一个场景",
"image": ["./path/to/local/image1.jpg", "./path/to/local/image2.png"],
"size": "2K",
"output_dir": "./images"
}
}
序列图像生成:
{
"name": "generate_image",
"arguments": {
"prompt": "生成 4 张显示同一角色在不同季节的图像",
"size": "2K",
"sequential_image_generation": "auto",
"sequential_image_generation_options": {
"max_images": 4
},
"output_dir": "./images"
}
}
💡 使用示例
配置完成后,你可以直接让 AI 助手:
- "生成一张未来城市夜景的图像"
- "创建一幅奇幻城堡被浮空山脉环绕的插图"
- "制作一张机器人读书的卡通风格绘画"
💻 开发
设置开发环境
git clone https://github.com/aardpro/mcp-seedream.git
cd mcp-seedream
pip install -e ".[dev]"
运行测试
pytest
构建包
build && upload
rm -rf dist && pip install build && python -m build && pip install twine && twine upload dist/*
pip install build
python -m build
发布到 PyPI
pip install twine
twine upload dist/*
修改后的发布步骤
当对项目进行修改后,按照以下步骤发布更新版本:
- 在
pyproject.toml中增加版本号 - 安装构建依赖:
pip install build twine
- 构建包:
python -m build
- 本地测试构建的包(可选但推荐):
pip install dist/mcp_seedream-*.whl
- 上传到 PyPI:
twine upload dist/*
📂 项目结构
doubao-image-generator/
├── src/
│ └── main/
│ ├── __init__.py
│ ├── __main__.py
│ └── server.py
├── pyproject.toml
├── README.md
└── LICENSE
❓ 常见问题
配置问题
请确保首先使用环境变量配置 API 设置。ARK_API_KEY 是必需的:
对于 MCP 环境变量配置,参见上面配置部分的示例。
图像生成失败
如果图像生成失败,请检查:
- 您的 API 密钥是否有效且有足够的积分
- 提示词是否过长或包含禁止内容
- 请求的图像尺寸是否受您选择的 API 提供商支持
📄 许可证
MIT License - 详见 LICENSE 文件。
🤝 贡献
欢迎提交 Pull Request 来改进这个项目!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcp_seedream-1.1.9.tar.gz.
File metadata
- Download URL: mcp_seedream-1.1.9.tar.gz
- Upload date:
- Size: 14.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
da6a2df8bad5706e403a44d32d907b327231bee717e99b5bf70a091852b76daf
|
|
| MD5 |
024c4df53877c116380ba7a36ee7d57f
|
|
| BLAKE2b-256 |
5299d0c6bcb81da07e563d64101778094dac2e812603d32145a20b0c62660a06
|
File details
Details for the file mcp_seedream-1.1.9-py3-none-any.whl.
File metadata
- Download URL: mcp_seedream-1.1.9-py3-none-any.whl
- Upload date:
- Size: 15.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
06a976bd1392d067a9d23cfe7f5f94098f18998ac8c671a180439fb66a484715
|
|
| MD5 |
ab1d44ca4f07c98a0e4fa5f1f88acf40
|
|
| BLAKE2b-256 |
73a08a746eef2634c1fd9dfd5abfe43f3be2e8d98e592d9a772855651434a92b
|