Skip to main content
Glama
156554395

Doubao Image/Video Generation MCP Server

by 156554395

豆包图片/视频生成 MCP 服务器

一个支持豆包图片生成和视频生成的 MCP (Model Context Protocol) 服务器

npm version License: MIT

功能

  • 图片生成: 使用豆包 Seedream 模型生成高质量图片

  • 视频生成: 使用豆包 Seedance 模型生成视频

  • 任务查询: 查询视频生成任务状态

Related MCP server: Seedream 4.0 MCP Server

获取 API Key

  1. 访问 火山引擎豆包大模型平台

  2. 注册/登录账号

  3. 在控制台获取 API Key

创建推理接入点

  1. 访问 火山引擎控制台

  2. 进入「开通管理」页面,参与「协作奖励计划」享免费资源包

  3. 授权图片生成接入点(Doubao-Seedream-4.5 模型)

  4. 授权视频生成接入点(Doubao-Seedance-1.0-lite-t2v 模型)

  5. 进入「安全管理」页面,点击内容安全,复制接入点 ID 到配置文件

PS: 图像生成和视频生成配置不同的接入点

安装

本地安装

cd doubao-image-video-mcp
pnpm install
pnpm build

配置

Claude Code 中使用 (推荐)

在 Claude Code 配置文件中添加:

macOS/Linux: ~/.claude/config.json Windows: %APPDATA%\claude\config.json

{
  "mcpServers": {
    "doubao-giv": {
      "command": "npx",
      "args": ["-y", "doubao-image-video-mcp@latest"],
      "env": {
        "DOUBAO_API_KEY": "your_api_key_here",
        "DOUBAO_IMAGE_ENDPOINT_ID": "ep-20241227-xxxxxxxxxxxxx",
        "DOUBAO_VIDEO_ENDPOINT_ID": "ep-20241227-xxxxxxxxxxxxx"
      }
    }
  }
}

通用 MCP 客户端配置

{
  "mcpServers": {
    "doubao-giv": {
      "command": "npx",
      "args": ["-y", "doubao-image-video-mcp@latest"],
      "env": {
        "DOUBAO_API_KEY": "your_api_key_here",
        "DOUBAO_IMAGE_ENDPOINT_ID": "ep-20241227-xxxxxxxxxxxxx",
        "DOUBAO_VIDEO_ENDPOINT_ID": "ep-20241227-xxxxxxxxxxxxx"
      }
    }
  }
}

使用 npx -y 可以自动安装最新版本,无需手动管理本地文件。

本地开发配置

如果从源码运行:

{
  "mcpServers": {
    "doubao-giv": {
      "command": "node",
      "args": ["/absolute/path/to/doubao-image-video-mcp/dist/index.js"],
      "env": {
        "DOUBAO_API_KEY": "your_api_key_here",
        "DOUBAO_IMAGE_ENDPOINT_ID": "ep-20241227-xxxxxxxxxxxxx",
        "DOUBAO_VIDEO_ENDPOINT_ID": "ep-20241227-xxxxxxxxxxxxx"
      }
    }
  }
}

环境变量

环境变量

必需

默认值

说明

DOUBAO_API_KEY

-

API 密钥

DOUBAO_IMAGE_ENDPOINT_ID

-

图片生成推理接入点 ID

DOUBAO_VIDEO_ENDPOINT_ID

-

视频生成推理接入点 ID

DOUBAO_DEFAULT_IMAGE_MODEL

doubao-seedream-4-5

默认图片生成模型

DOUBAO_DEFAULT_VIDEO_MODEL

doubao-seedance-1.0-lite-t2v

默认视频生成模型

重要:必须在火山引擎控制台创建推理接入点并配置接入点 ID,直接使用模型名称可能因权限问题导致调用失败。

支持的工具

1. generate_image

生成单张图片。

参数:

  • prompt (必需): 图片描述文本

  • model (可选): 模型选择,默认 doubao-seedream-4-5

  • size (可选): 图片尺寸,默认 2560x1440

  • image_url (可选): 参考图片 URL (图生图)

  • ref_image_urls (可选): 多张参考图片 URL 数组 (多图融合)

  • req_key (可选): 请求标识

2. generate_video

生成视频(异步任务)。

参数:

  • prompt (必需): 视频描述文本 (最大 500 字符)

  • model (可选): 模型选择,默认 doubao-seedance-1.0-lite-t2v

  • video_duration (可选): 视频时长 (秒),默认 5

  • fps (可选): 帧率,默认 24

  • resolution (可选): 分辨率,默认 1080p

  • first_frame_image_url (可选): 首帧图片 URL (图生视频)

  • ref_image_urls (可选): 参考图片 URL 数组

  • req_key (可选): 请求标识

返回: 任务 ID,需要使用 query_video_task 查询结果

3. query_video_task

查询视频生成任务状态。

参数:

  • task_id (必需): 视频生成任务 ID

返回: 任务状态和结果

支持的模型

图片生成模型

模型

说明

doubao-seedream-4-5

最新 4.0 模型,支持 4K 分辨率

doubao-seedream-3-0-t2i

3.0 文生图模型

视频生成模型

模型

说明

doubao-seedance-1.0-pro

专业版,高质量视频生成

doubao-seedance-1.0-pro-fast

专业版快速生成

doubao-seedance-1.0-lite-t2v

轻量版,快速生成

API 文档

常见问题

Q: 视频生成需要多长时间?

A: 视频生成是异步任务,通常需要几秒到几分钟,具体取决于视频时长和模型选择。

Q: 如何获取推理接入点 Endpoint ID?

A: 在火山引擎控制台创建推理接入点后获取,使用 endpoint_id 参数比直接使用 model 名称更稳定。

Q: 支持哪些图片尺寸?

A: 图片生成支持多种尺寸,推荐使用 1920x21601920x25602160x3840 等高分辨率尺寸(豆包 API 要求图片至少 3686400 像素)。

参与贡献

欢迎提交 Issue 和 Pull Request!

  1. Fork 本仓库

  2. 创建特性分支 (git checkout -b feature/AmazingFeature)

  3. 提交更改 (git commit -m 'Add some AmazingFeature')

  4. 推送到分支 (git push origin feature/AmazingFeature)

  5. 开启 Pull Request

贡献指南

  • 遵循现有代码风格

  • 添加必要的测试和文档

  • 提交前运行 pnpm build 确保构建成功

发布流程

项目使用 GitHub Actions 自动发布到 npm:

  1. 更新 package.json 中的版本号

  2. 创建并推送 Git 标签:

    git tag v1.0.0
    git push origin v1.0.0
  3. GitHub Actions 自动构建并发布到 npm

Star 历史

Star History Chart

License

MIT


如果这个项目对你有帮助,请给一个 Star ⭐️

Available Tools

3 tools
generate_imageA

使用豆包 Seedream 模型生成图片

支持功能:

  • 文生图: 使用文本提示词生成图片

  • 图生图: 使用输入图片和提示词生成新图片

  • 多图融合: 使用多张参考图片融合生成新图片

参数说明:

  • prompt: 图片描述文本 (必需)

  • endpoint_id: 推理接入点 ID (推荐) 在火山引擎控制台创建推理接入点后获取的 Endpoint ID

  • model: 模型名称 (可选,默认: doubao-seedream-4-5)

    • doubao-seedream-4-5: 最新 4.0 模型,支持 4K 分辨率

    • doubao-seedream-3-0-t2i: 3.0 文生图模型 注意: 直接使用模型名称可能需要账户权限,推荐使用 endpoint_id

  • size: 图片尺寸 (可选,默认: 2560x1440) 支持的尺寸: 2560x1440, 2048x2048, 2304x1728, 1728x2304, 1440x2560, 2496x1664, 1664x2496, 3024x1296

  • image_url: 参考图片 URL (可选,用于图生图)

  • ref_image_urls: 多张参考图片 URL 数组 (可选,用于多图融合)

  • req_key: 请求标识 (可选,用于追踪)

重要提示: 如果遇到 InvalidEndpointOrModel.NotFound 错误,请在火山引擎控制台创建推理接入点,并使用 endpoint_id 参数

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYes图片描述文本
endpoint_idNo推理接入点 ID (在火山引擎控制台创建)
modelNo模型选择,默认: doubao-seedream-4-5
sizeNo图片尺寸,默认: 2560x1440 (注意: 豆包 API 要求图片至少 3686400 像素)
image_urlNo参考图片 URL (图生图)
ref_image_urlsNo多张参考图片 URL 数组 (多图融合)
req_keyNo请求标识
watermarkNo是否添加水印,默认: false

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses important behavioral traits: the tool generates images using a specific AI model, supports multiple generation modes, has default values for optional parameters, requires specific permissions for direct model use, and includes error handling guidance for InvalidEndpointOrModel.NotFound. It doesn't mention rate limits, costs, or output format details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections (功能, 参数说明, 重要提示), uses bullet points for readability, and every sentence adds value. It's appropriately sized for an 8-parameter tool with multiple functionalities and includes troubleshooting information without being verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex image generation tool with 8 parameters, 100% schema coverage, and no output schema, the description is quite complete. It covers purpose, usage modes, parameter semantics, and error handling. The main gap is the lack of output format explanation (e.g., what the tool returns - image URL, base64, etc.), which is important since there's no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds significant value by explaining parameter purposes beyond the schema: it clarifies that prompt is required, endpoint_id is recommended over model for permission reasons, model has specific version differences, size has resolution requirements, and image_url/ref_image_urls enable specific generation modes. It also notes the watermark parameter (present in schema but not mentioned in description) is a minor gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: '使用豆包 Seedream 模型生成图片' (use Doubao Seedream model to generate images). It specifies three distinct functions (text-to-image, image-to-image, multi-image fusion) and distinguishes itself from sibling tools (generate_video, query_video_task) by focusing on image generation rather than video.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use different parameters (e.g., image_url for image-to-image, ref_image_urls for multi-image fusion). It mentions an alternative approach (using endpoint_id vs. model name) and includes troubleshooting guidance for errors. However, it doesn't explicitly state when NOT to use this tool versus sibling tools or other alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_videoA

使用豆包 Seedance 模型生成视频

支持功能:

  • 文生视频: 使用文本提示词生成视频

  • 图生视频: 使用首帧图片和提示词生成视频

  • 参考图生视频: 使用参考图片增强视频风格一致性

参数说明:

  • prompt: 视频描述文本 (必需,最大 500 字符)

  • model: 模型选择 (可选,默认: doubao-seedance-1.0-lite-t2v)

    • doubao-seedance-1.0-pro: 专业版,高质量视频生成

    • doubao-seedance-1.0-pro-fast: 专业版快速生成

    • doubao-seedance-1.0-lite-t2v: 轻量版,快速生成

  • video_duration: 视频时长 (可选,默认 5) 支持的时长: 3, 4, 5, 6

  • fps: 冔率 (可选,默认 24) 支持的帧率: 24, 30

  • resolution: 分辨率 (可选,默认 1080p) 支持的分辨率: 480p, 720p, 1080p

  • first_frame_image_url: 首帧图片 URL (可选,用于图生视频)

  • ref_image_urls: 参考图片 URL 数组 (可选)

  • req_key: 请求标识 (可选)

返回: 任务 ID,需要使用 query_video_task 查询结果

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYes视频描述文本 (最大 500 字符)
modelNo模型选择,默认: doubao-seedance-1.0-lite-t2v
video_durationNo视频时长 (秒),默认: 5
fpsNo帧率,默认: 24
resolutionNo分辨率,默认: 1080p
first_frame_image_urlNo首帧图片 URL (图生视频)
ref_image_urlsNo参考图片 URL 数组
req_keyNo请求标识

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses that the tool returns a task ID requiring follow-up with query_video_task, which is useful behavioral context. However, it lacks details on permissions, rate limits, costs, or error handling, which are important for a video generation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections (overview, supported features, parameter explanations, return info). It is appropriately sized for an 8-parameter tool, though some details like model descriptions could be slightly more concise. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of an 8-parameter video generation tool with no annotations and no output schema, the description does a good job explaining functionality, parameters, and the asynchronous result-checking process. It could improve by adding more behavioral context (e.g., execution time, limitations), but it covers the essentials adequately.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds value by grouping parameters into functional contexts (e.g., model choices explained with quality/speed trade-offs, supported durations/framerates/resolutions listed), which helps the agent understand parameter implications beyond the schema's technical specs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool uses the Doubao Seedance model to generate video, with specific supported functionalities listed: text-to-video, image-to-video, and reference-image-to-video. It distinguishes from sibling tools by focusing on video generation (vs. generate_image for images and query_video_task for querying results).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool by listing its three supported functionalities, but it does not explicitly state when to use it versus alternatives or any exclusions. It mentions the need to use query_video_task to check results, which is helpful guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

query_video_taskA

查询豆包视频生成任务的状态和结果

视频生成是异步任务,需要使用此工具查询任务状态:

  • pending: 任务等待中

  • processing: 任务处理中

  • success: 任务成功完成

  • failed: 任务失败

参数说明:

  • task_id: 任务 ID (必需,由 generate_video 返回)

返回: 任务状态和结果 (成功时包含视频下载 URL)

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes视频生成任务 ID

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It successfully explains the asynchronous nature of video generation and documents the four possible task states (pending, processing, success, failed) with their meanings. It also mentions that successful results include video download URLs. However, it doesn't cover potential error conditions beyond 'failed' state or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and appropriately sized. It starts with the core purpose, explains the usage context, documents the task states, provides parameter guidance, and describes return values - all in a compact format with zero wasted sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter query tool with no output schema, the description provides excellent coverage of purpose, usage context, behavioral details, and return values. The only minor gap is the lack of explicit error handling details beyond the 'failed' state, but overall it's highly complete for this tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the schema already documents the single required 'task_id' parameter. The description adds value by specifying that task IDs come from 'generate_video' returns, providing important contextual information about parameter sourcing that isn't in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose as '查询豆包视频生成任务的状态和结果' (query Doubao video generation task status and results), which is a specific verb+resource combination. It distinguishes itself from sibling tools 'generate_image' and 'generate_video' by focusing on querying existing tasks rather than creating new content.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool: '视频生成是异步任务,需要使用此工具查询任务状态' (video generation is an asynchronous task, you need to use this tool to query task status). It also references the sibling tool 'generate_video' as the source of task IDs, providing clear context about the workflow.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A4.4/5.0
Disambiguation5/5

The three tools have clearly distinct purposes: generate_image handles image generation with various modes, generate_video handles video generation with its own modes, and query_video_task is a dedicated status checker for video tasks. There is no overlap or ambiguity between them.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case: generate_image, generate_video, query_video_task. The naming is predictable and uniform throughout the set.

Tool Count5/5

Three tools is well-scoped for a server focused on image and video generation. It covers the core operations (generate images, generate videos, query video tasks) without being too sparse or bloated.

Completeness4/5

The server provides good coverage for its domain: image generation with multiple modes, video generation with multiple modes, and a query tool for async video tasks. A minor gap is the lack of a similar query tool for image tasks, but this is not critical as image generation appears to be synchronous.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/156554395/doubao-image-video-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server