Dsh Image Generate
FreeNot checkedMCP server for generating and editing images and videos via DashScope/OpenAI-compatible APIs, with tools for text-to-image, image editing, text/video generation
About
MCP server for generating and editing images and videos via DashScope/OpenAI-compatible APIs, with tools for text-to-image, image editing, text/video generation, and automatic local download.
README
面向 DeepSeek Harness(DSH)的图片 & 视频生成 MCP 服务器,工具接口对齐 OpenAI Images API 语义, 后端接入阿里云百炼(DashScope):
| 能力 | 模型 | 传输方式 |
|---|---|---|
| 文生图 | z-image-turbo |
DashScope 原生同步接口 |
| 文生图 / 图生图 / 图像编辑 | qwen-image-3.0、qwen-image-3.0-pro |
DashScope 原生同步接口(1-3 张参考图) |
| 文生图 / 图生图 / 编辑 | qwen-image-3(-edit) 及任意 OpenAI 兼容后端 |
OpenAI 兼容接口 /images/generations、/images/edits |
| 文生视频 / 图生视频 | wan2.5 / wan2.6 / wan2.7 系列 |
DashScope 异步任务(video-synthesis + 任务轮询) |
生成结果自动下载到本地输出目录,同时返回远端 URL(有效期约 24 小时)与 local_path。
快速开始
# 1. 安装依赖(uv 会自动创建 .venv)
uv sync
# 2. 配置凭据(参考 .env.example)
Copy-Item .env.example .env # 然后填入 DASHSCOPE_API_KEY
# 或在 ~/.dsh/.env 中配置,DSH 启动时会自动加载
# 3. 本地以 stdio 启动(MCP)
uv run dsh-image-generate --transport stdio
# 4. 或启动 streamable-http 服务(默认 127.0.0.1:8900/mcp)
uv run dsh-image-generate --transport streamable-http --port 8900
# 5. 跑测试
uv run pytest -q
# 6. 真实 API 冒烟测试(消耗少量额度,视频需数分钟)
uv run python scripts/smoke_test.py
MCP 工具
挂载到 DSH 后,模型看到的工具名为 mcp__dsh-image-generate__<工具名>。
generate_image — 文生图
参数语义对齐 OpenAI Images API:
| 参数 | 说明 |
|---|---|
prompt |
提示词(中英文均可,必填) |
model |
默认 z-image-turbo;qwen-image-3.0 / qwen-image-3.0-pro 或 OpenAI 兼容模型 |
size |
"1024x1024"(OpenAI 写法,DashScope 下自动转为 1024*1024) |
n |
生成张数。z-image 每张单独调用;qwen-image-3.0 单次最多 6 张 |
quality / style |
OpenAI 语义透传(DashScope 原生接口忽略) |
response_format |
url(默认)或 b64_json |
seed |
随机种子,用于结果复现 |
negative_prompt |
反向提示词(仅 qwen-image-3.0 支持) |
prompt_extend |
提示词智能改写(改写结果会作为 revised_prompt 返回) |
watermark |
添加"AI 生成"水印(仅 qwen-image-3.0 支持) |
output_dir |
本地保存目录(相对路径相对于全局输出目录) |
返回(OpenAI 风格 + 本地增强):
{
"created": 1789...,
"provider": "dashscope-native",
"model": "z-image-turbo",
"data": [
{"url": "https://.../xx.png", "revised_prompt": null,
"local_path": "C:\\Users\\...\\outputs\\dsh-image-generate\\img-1-....png",
"width": 1024, "height": 1024}
],
"usage": {},
"output_dir": "C:\\Users\\...\\outputs\\dsh-image-generate"
}
edit_image — 图生图 / 图像编辑
image(必填)+ 可选image2、image3:本地路径 / http(s) URL /data:URL。- DashScope 原生接口(qwen-image-3.0):1-3 张参考图 + 编辑指令;
- OpenAI 兼容接口:上传为
/images/edits的 multipart 文件。
mask:蒙版,仅 OpenAI 兼容后端支持(DashScope 原生接口会报错说明)。strength:编辑强度,仅 OpenAI 兼容后端。- 其余参数同
generate_image。
generate_video — 文生视频 / 图生视频(异步任务)
| 参数 | 说明 |
|---|---|
prompt |
视频描述,支持分镜头写法(第1个镜头... 第2个镜头...) |
model |
默认 wan2.6-t2v;图生视频用 wan2.5-i2v-preview / wan2.6-i2v |
image |
图生视频的首帧图(本地路径 / URL / data: URL) |
duration |
2-15 秒 |
size |
"1280x720"(wan2.5/2.6);或 resolution(480P/720P/1080P)+ ratio(wan2.7) |
shot_type |
multi 多镜头(wan2.6+) |
wait |
默认 true:阻塞等待完成(数分钟);false 立即返回 task_id |
| 其余 | seed、negative_prompt、prompt_extend、watermark |
wait=true 超时或中断后,可用 get_video_status(task_id=...) 继续查询并下载。
get_video_status
查询视频任务状态;SUCCEEDED 时默认下载到本地并返回 local_path。
任务 ID 24 小时内有效。
list_models
返回支持的模型目录、能力说明与当前默认配置。
配置(环境变量)
变量清单见 .env.example。关键项:
| 变量 | 默认 | 说明 |
|---|---|---|
DASHSCOPE_API_KEY |
— | 必填,百炼 API Key(可放 .env) |
IMG_DASHSCOPE_BASE_URL |
https://dashscope.aliyuncs.com/api/v1 |
DashScope 原生接口根 |
IMG_OPENAI_BASE_URL |
https://dashscope.aliyuncs.com/compatible-mode/v1 |
OpenAI 兼容接口根 |
IMG_OUTPUT_DIR |
~/.dsh/outputs/dsh-image-generate |
输出目录 |
IMG_DEFAULT_IMAGE_MODEL |
z-image-turbo |
默认文生图模型 |
IMG_DEFAULT_VIDEO_MODEL |
wan2.6-t2v |
默认视频模型 |
IMG_VIDEO_POLL_TIMEOUT |
900 |
视频任务最长等待(秒) |
ℹ️ 命名说明:早期版本曾用
DSH_IMG_*命名,但 Harness 的 dsh-app-boot 禁止任何.env文件声明DSH_*、XDG_*、DYLD_*、BASH_FUNC_*前缀及 PATH/HOME/HTTP_PROXY 等启动期变量(违者启动直接失败,报 "... which only the launching environment may set")。 因此本项目统一改用IMG_*前缀,.env与导出环境变量两种方式都可用:
# 方式 A:写入 ~/.dsh/.env(IMG_* 不在保留名单内,安全;Harness 启动时自动加载)
# DASHSCOPE_API_KEY=sk-xxx
# IMG_DASHSCOPE_BASE_URL=https://dashscope.aliyuncs.com/api/v1
# IMG_OPENAI_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
# 方式 B:导出为系统/用户环境变量(DSH 进程重启后生效)
setx DASHSCOPE_API_KEY "sk-xxx"
setx IMG_DASHSCOPE_BASE_URL "https://dashscope.aliyuncs.com/api/v1"
setx IMG_OPENAI_BASE_URL "https://dashscope.aliyuncs.com/compatible-mode/v1"
setx IMG_OUTPUT_DIR "C:\Users\YOURNAME\.dsh\outputs\dsh-image-generate"
也可以把这些(非机密)值直接写成 cordis.patch.yml 中 MCP 行
env:块的字面量。
业务空间(Workspace)专属域名(
https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/...) 同样受支持:把上述两个 BASE_URL 指向它即可,需保证 API Key 与域名同地域。
模型路由规则
- 已知 DashScope 原生模型(
z-image-turbo、qwen-image-3.0*)→ 原生同步接口; - 已知 OpenAI 兼容模型(
qwen-image-3*等)→/images/generations、/images/edits; - 其他模型名 → 走
IMG_DEFAULT_TRANSPORT(默认dashscope-native)。
因此也可对接任意 OpenAI 兼容图片后端(包括自托管的 Z-Image OpenAI 兼容服务),
只需设置 IMG_OPENAI_BASE_URL 与 IMG_OPENAI_API_KEY。
注意:部分业务空间(Workspace)专属域名的 compatible-mode 端点可能不提供
/images/generations路由(实测返回 404)。此时请改用 DashScope 原生模型 (z-image-turbo / qwen-image-3.0)或标准域名https://dashscope.aliyuncs.com/compatible-mode/v1。
接入 DeepSeek Harness
在 $DSH_HOME/cordis.patch.yml(所有 profile 生效,热加载,无需重启)中插入:
- insert:
- id: mcp-dsh-image-generate
name: '@deepseek-ai/dsh-mcp-client'
config:
serverName: dsh-image-generate
transport: stdio
command: D:/py/dsh-imageGenerate/.venv/Scripts/dsh-image-generate.exe
args: ['--transport', 'stdio']
cwd: D:/py/dsh-imageGenerate
env:
DASHSCOPE_API_KEY: !!js process.env.DASHSCOPE_API_KEY
IMG_DASHSCOPE_BASE_URL: !!js process.env.IMG_DASHSCOPE_BASE_URL
IMG_OPENAI_BASE_URL: !!js process.env.IMG_OPENAI_BASE_URL
IMG_OUTPUT_DIR: !!js process.env.IMG_OUTPUT_DIR
failOnStartupError: true
toolCallTimeoutMs: 900000 # 视频生成需数分钟
凭据与端点配置应导出为环境变量(setx,见上文"配置"一节)后由 !!js process.env.* 间接引用;
不要把 IMG_* 写进任何 .env(DSH 启动层会拒绝启动),也不要在
cordis.patch.yml 里写字面量密钥(端点 URL 等非机密值可以写成 env 块字面量)。
项目结构
src/dsh_image_generate/
├── server.py # MCP 工具层(generate_image / edit_image / generate_video / ...)
├── config.py # 环境变量配置
├── storage.py # 下载落盘与 .meta.json
├── utils.py # size 语法、图片输入归一化等
└── providers/
├── openai_images.py # OpenAI 兼容 transport(/images/generations、/images/edits)
├── dashscope_native.py # DashScope 原生同步接口(z-image / qwen-image-3.0)
└── dashscope_video.py # DashScope 视频异步任务(提交 + 轮询)
tests/ # 离线 mock 测试(httpx.MockTransport,无需 Key)
scripts/smoke_test.py # 真实 API 冒烟测试
注意事项
- 费用:按生成张数/视频时长计费,
n、duration直接影响费用;测试建议n=1。 - URL 有效期:DashScope 返回的图片/视频 URL 仅保留 24 小时,务必使用返回的
local_path。 - 内容审核:违规提示词或输出会报
DataInspectionFailed/IPInfringementSuspect;提示词改写开启时可能引入版权内容触发审核,可关闭prompt_extend重试。 - 跨地域:模型、endpoint、API Key 必须同地域,否则鉴权失败。
开发
uv sync # 安装依赖(含 dev)
uv run pytest -q # 离线测试
uv run python scripts/smoke_test.py # 真实 API 冒烟(需 Key 与额度)
Installing Dsh Image Generate
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/smjda0719/dsh-image-generateFAQ
Is Dsh Image Generate MCP free?
Yes, Dsh Image Generate MCP is free — one-click install via Unyly at no cost.
Does Dsh Image Generate need an API key?
No, Dsh Image Generate runs without API keys or environment variables.
Is Dsh Image Generate hosted or self-hosted?
A hosted option is available: Unyly runs the server in the cloud, no local setup required.
How do I install Dsh Image Generate in Claude Desktop, Claude Code or Cursor?
Open Dsh Image Generate on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
ARA
Generate images, video and audio from any AI agent — one connector.
by ARAOmni Video
An MCP server that transforms LLM-enabled IDEs into professional video editors by pre-processing footage into text proxies, generating motion graphics via HTML/
by buildwithtazaYouTube
Transcripts, channel stats, search
by YouTubeEverArt
AI image generation using various models.
by modelcontextprotocolgpu-bridge/mcp-server
Unified GPU inference API with 30 AI services (LLM, image gen, video, TTS, whisper, embeddings, reranking, OCR) as MCP tools. Pay-per-use via x402 USDC or API k
by gpu-bridgehamflx/imagen3-mcp
A powerful image generation tool using Google's Imagen 3.0 API through MCP. Generate high-quality images from text prompts with advanced photography, artistic,
by hamflxmerterbak/Grok-MCP
MCP server for xAI's [Grok API](https://docs.x.ai/docs/overview) with agentic tool calling, image generation, vision, and file support.
by merterbakSureScaleAI/openai-gpt-image-mcp
OpenAI GPT image generation/editing MCP server.
by SureScaleAIYangLiangwei/PersonalizationMCP
Comprehensive personal data aggregation MCP server with Steam, YouTube, Bilibili, Spotify, Reddit and other platforms integrations. Features OAuth2 authenticati
by YangLiangweiAceDataCloud/MCPFlux
Flux AI image generation and editing (Black Forest Labs) via Ace Data Cloud API.
by AceDataCloudCompare Dsh Image Generate with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All media MCPs
