Skip to main content

MCP server for Doubao image generation - generates images from text prompts using Doubao's API

Project description

MCP Doubao 图像生成器 (MCP Doubao Image Generator)

English | 中文

一个 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 系统中,您可以通过以下方式永久设置环境变量:

  1. 打开“系统属性”对话框 (右键点击“此电脑” -> “属性”)
  2. 点击“高级系统设置”
  3. 点击“环境变量”
  4. 在“用户变量”部分点击“新建”
  5. 变量名:ARK_API_KEY,变量值:您的 API 密钥

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_images
  • 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/*

修改后的发布步骤

当对项目进行修改后,按照以下步骤发布更新版本:

  1. pyproject.toml 中增加版本号
  2. 安装构建依赖:
    pip install build twine
    
  3. 构建包:
    python -m build
    
  4. 本地测试构建的包(可选但推荐):
    pip install dist/mcp_seedream-*.whl
    
  5. 上传到 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 环境变量配置,参见上面配置部分的示例。

图像生成失败

如果图像生成失败,请检查:

  1. 您的 API 密钥是否有效且有足够的积分
  2. 提示词是否过长或包含禁止内容
  3. 请求的图像尺寸是否受您选择的 API 提供商支持

📄 许可证

MIT License - 详见 LICENSE 文件。

🤝 贡献

欢迎提交 Pull Request 来改进这个项目!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_seedream-1.1.3.tar.gz (12.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_seedream-1.1.3-py3-none-any.whl (13.7 kB view details)

Uploaded Python 3

File details

Details for the file mcp_seedream-1.1.3.tar.gz.

File metadata

  • Download URL: mcp_seedream-1.1.3.tar.gz
  • Upload date:
  • Size: 12.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for mcp_seedream-1.1.3.tar.gz
Algorithm Hash digest
SHA256 6b28b60f1696d9bae93374d0b08dd797a130e5c2e160cf823e9828c206a7a296
MD5 e0309f55c48991070054141fdc5ab10e
BLAKE2b-256 fce7eb8054d17fdb0b731a9aa3aeaa170ff90cd9cc9698bd08a020ac1b2ac9d1

See more details on using hashes here.

File details

Details for the file mcp_seedream-1.1.3-py3-none-any.whl.

File metadata

  • Download URL: mcp_seedream-1.1.3-py3-none-any.whl
  • Upload date:
  • Size: 13.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for mcp_seedream-1.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 910e0ecf0959e643e7ccee3ccad579272635f14a232c21d07f6b10d8415dc4e4
MD5 67dca9a38831283a720414baf570df66
BLAKE2b-256 d8154a607908e82c24472f77742e3f92e17d38dca9dfc1b6c7e80d6b18bc2824

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page