关于 Midjourney
MidjourneyMCP 是一款 MCP 服务,通过 AceDataCloud API 让兼容客户端使用 Midjourney 生成和编辑图像、视频。它还提供提示词工具与任务跟踪,并支持托管 OAuth、API 令牌和本地 stdio 连接。
主要功能
- 01生成图像和视频
- 02放大、变体、缩放与平移图像
- 03混合图像并使用参考图
- 04编辑图像并生成描述
- 05延长视频并跟踪任务
- 06翻译和缩短提示词
适用场景
- 01根据文本提示创建图像
- 02编辑或变换现有图像
- 03根据提示词和参考图生成视频
- 04查询生成任务状态与结果
MCP 相关
向 MCP 客户端提供 Midjourney 图像、视频、编辑、提示词和任务管理工具。可通过托管端点使用 OAuth 或 Bearer 令牌连接,也可在本地通过 stdio 运行。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://midjourney.mcp.acedata.cloud/mcpclaude mcp add --transport http acedatacloud-mcp-midjourney https://midjourney.mcp.acedata.cloud/mcp{"mcpServers":{"acedatacloud-mcp-midjourney":{"type":"http","url":"https://midjourney.mcp.acedata.cloud/mcp"}}}在 Cursor 中打开{"servers":{"acedatacloud-mcp-midjourney":{"type":"http","url":"https://midjourney.mcp.acedata.cloud/mcp"}}}在 VS Code 中打开{"mcpServers":{"acedatacloud-mcp-midjourney":{"type":"http","url":"https://midjourney.mcp.acedata.cloud/mcp"}}}{"mcpServers":{"acedatacloud-mcp-midjourney":{"serverUrl":"https://midjourney.mcp.acedata.cloud/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
MidjourneyMCP
一个通过 AceDataCloud API 使用 Midjourney 生成 AI 图像和视频的 Model Context Protocol (MCP) 服务。
可直接在 Claude、VS Code 或任何兼容 MCP 的客户端中生成 AI 图像和视频,并管理创意项目。
功能
- 图像生成 - 根据文本提示词创建 AI 生成的图像
- 图像变换 - 放大、创建变体、缩放和移动图像
- 图像混合 - 将多张图像组合成创意融合效果
- 基于参考图生成 - 使用现有图像作为灵感
- 图像描述 - 获取 AI 对图像的描述(反向提示词)
- 图像编辑 - 使用文本提示词和蒙版编辑图像
- 视频生成 - 根据文本和参考图像创建视频
- 视频延长 - 延长现有视频
- 翻译 - 将中文提示词翻译成英文
- 任务跟踪 - 监控生成进度并获取结果
工具参考
| 工具 | 描述 |
|---|---|
midjourney_imagine | 使用 Midjourney 根据文本提示词生成 AI 图像。 |
midjourney_transform | 使用各种操作变换现有的 Midjourney 图像。 |
midjourney_blend | 使用 Midjourney 混合多张图像。 |
midjourney_with_reference | 使用参考图像作为灵感生成图像。 |
midjourney_edit | 使用 Midjourney 编辑现有图像。 |
midjourney_describe | 获取 AI 生成的图像描述。 |
midjourney_generate_video | 使用 Midjourney 根据文本提示词和参考图像生成视频。 |
midjourney_extend_video | 延长现有的 Midjourney 视频。 |
midjourney_translate | 将中文文本翻译成英文,以用作 Midjourney 提示词。 |
midjourney_shorten | 分析并缩短较长的 Midjourney 提示词,同时保留核心构想。 |
midjourney_get_seed | 获取之前生成的 Midjourney 图像的种子值。 |
midjourney_get_task | 查询 Midjourney 生成任务的状态和结果。 |
midjourney_get_tasks_batch | 一次查询多个 Midjourney 生成任务。 |
midjourney_list_actions | 列出所有可用的 Midjourney API 操作及对应工具。 |
midjourney_get_prompt_guide | 获取编写有效 Midjourney 提示词的指导。 |
midjourney_list_transform_actions | 列出所有适用于 Midjourney 图像的可用变换操作。 |
连接:托管 OAuth、API 令牌或本地 stdio
托管端点为 https://midjourney.mcp.acedata.cloud/mcp。为 MCP 客户端选择一种方式:
| 方式 | 适用场景 | 凭据设置 |
|---|---|---|
| 托管 OAuth | 客户端支持远程 MCP OAuth | 只添加 URL,然后登录 AceDataCloud 并批准访问。无需将令牌粘贴到客户端配置中。 |
| 托管 API 令牌 | 客户端无法完成 OAuth,或者你需要明确的集成凭据 | 在 Authorization: Bearer … 标头中发送 AceDataCloud API 令牌。将其保存在本地机密存储或环境变量中。 |
| 本地 stdio | 客户端运行本地 MCP 进程 | 安装 mcp-midjourney,并将 ACEDATACLOUD_API_TOKEN 传递给该进程。它仍会调用 AceDataCloud API。 |
托管服务会公布 OAuth 元数据和动态客户端注册(DCR)。DCR 用于注册客户端应用,不是 API 密钥。 OAuth 会为你登录,客户端则发送生成的 Bearer 令牌;它可能会重用或为该账户创建 API 凭据。通过浏览器登录仍需拥有 AceDataCloud 账户。托管服务可能按用量计费:在执行实际操作前,请查看当前服务文档和展示的价格。请勿为同一服务同时配置 OAuth 登录和固定的 Authorization 标头。
托管 OAuth 示例
- Claude 和 Claude Desktop 聊天: 在
Customize → Connectors → Add custom connector中添加远程自定义连接器,输入https://midjourney.mcp.acedata.cloud/mcp,选择登录;如果 Claude 询问如何注册其 OAuth 客户端,请选择 Register automatically。完成授权。Claude Desktop 的本地claude_desktop_config.json需要单独配置。Claude 连接器指南。 - Claude Code: 运行
claude mcp add --transport http --scope user midjourney https://midjourney.mcp.acedata.cloud/mcp,然后运行claude mcp login midjourney。检查/mcp。Claude Code MCP 指南。 - Cursor: 添加远程服务,只填写
https://midjourney.mcp.acedata.cloud/mcp。对于项目,将以下条目合并到<project>/.cursor/mcp.json;个人使用时,请使用~/.cursor/mcp.json。Cursor MCP 指南。 - VS Code / Copilot: 运行 MCP: Add Server,选择 HTTP,输入
https://midjourney.mcp.acedata.cloud/mcp,然后完成浏览器登录。新的可移植工作区配置使用<project>/.mcp.json;下方的 VS Code 专用格式使用<project>/.vscode/mcp.json或用户配置文件。检查 MCP: List Servers。VS Code MCP 设置。 - Codex: 运行
codex mcp add midjourney --url https://midjourney.mcp.acedata.cloud/mcp,然后运行codex mcp login midjourney。其用户设置位于~/.codex/config.toml。Codex 官方 MCP 指南。
Cursor 项目配置(OAuth):
{
"mcpServers": {
"midjourney": {"url": "https://midjourney.mcp.acedata.cloud/mcp"}
}
}
VS Code 专用工作区配置(OAuth):
{
"servers": {
"midjourney": {"type": "http", "url": "https://midjourney.mcp.acedata.cloud/mcp"}
}
}
托管 API 令牌
- 打开 Ace Data Cloud → 应用程序。登录,或先注册账号。
- 找到 通用应用程序。如果尚未创建,请选择 初始化通用应用程序。通用密钥可使用账号可用的服务;专用应用程序的密钥则仅限用于该应用程序对应的服务。检查所需的服务/模型访问权限和当前定价。
- 从应用程序卡片中复制 API 密钥,或打开 密钥 / 管理密钥 → 创建,为此集成创建单独的密钥。为密钥设置易于识别的名称,以便单独撤销或轮换。
- 创建密钥时,请检查 过期时间、设置用量限制和允许的 API。仅启用所需的限制,并允许要调用的操作,然后点击 创建,再从密钥列表中复制令牌。查询任务并不意味着有权提交生成请求。确认应用程序余额足以支付首次请求;任何试用额度均以账号当前显示的为准。
- 仅复制令牌值,不要包含引号、空格或
Bearer。API 密钥 / API 令牌字段需要填写此原始值;只有手动配置 HTTPAuthorization标头时才需要添加Bearer前缀。platform-...账号管理令牌不能替代生成 API 密钥。


将密钥保存在客户端的凭据存储区,或下方所示的环境变量中。切勿将其放入提示词、共享工作流、截图或 Git 提交中。如果身份验证失败,请检查复制的完整值、应用程序/服务访问权限、过期时间、用量限制和余额,然后再创建其他密钥。
固定的 Bearer 标头会绕过 OAuth。如果标头无效,请在尝试浏览器登录之前将其移除;请妥善保管已保存的凭据。
对于 Claude Code,添加服务时 Shell 会展开令牌;请将保存的用户 MCP 配置视为机密:
export ACEDATACLOUD_API_TOKEN='YOUR_API_TOKEN'
claude mcp add --transport http --scope user midjourney https://midjourney.mcp.acedata.cloud/mcp \
--header "Authorization: Bearer $ACEDATACLOUD_API_TOKEN"
对于 Claude Code 项目配置,请在 <project>/.mcp.json 中放入变量引用,并在启动 Claude Code 的环境中设置该变量:
{
"mcpServers": {
"midjourney": {
"type": "http",
"url": "https://midjourney.mcp.acedata.cloud/mcp",
"headers": {"Authorization": "Bearer ${ACEDATACLOUD_API_TOKEN}"}
}
}
}
Cursor 在 ~/.cursor/mcp.json 或未提交的项目配置中使用不同的环境变量语法:
{
"mcpServers": {
"midjourney": {
"url": "https://midjourney.mcp.acedata.cloud/mcp",
"headers": {"Authorization": "Bearer ${env:ACEDATACLOUD_API_TOKEN}"}
}
}
}
在 VS Code 中,运行 MCP: 打开用户配置,并合并此服务及其掩码输入;${input:...} 适用于 VS Code 的用户/工作区格式,不能移植到 Agent Host 的 .mcp.json 格式:
{
"inputs": [
{"id": "acedata-midjourney-token", "type": "promptString", "description": "AceDataCloud API token", "password": true}
],
"servers": {
"midjourney": {
"type": "http",
"url": "https://midjourney.mcp.acedata.cloud/mcp",
"headers": {"Authorization": "Bearer ${input:acedata-midjourney-token}"}
}
}
}
对于 Cline,请使用其 MCP 配置界面或 CLI 文件 ~/.cline/data/settings/cline_mcp_settings.json;其远程传输值为 streamableHttp。对于 JetBrains AI Assistant,请从 设置 → 工具 → AI Assistant → Model Context Protocol (MCP) 添加远程 URL。对于 Zed,OAuth 方式请使用仅含 URL 的 context_servers 条目,或者添加本地 Bearer 标头。这些客户端的配置架构各不相同;请按照各自当前的界面操作,不要直接复制其他客户端的 JSON。Cline · JetBrains · Zed。
本地 stdio
安装软件包,并为本地进程提供 API 令牌:
python -m pip install mcp-midjourney
export ACEDATACLOUD_API_TOKEN='YOUR_API_TOKEN'
mcp-midjourney
对于 Claude Desktop 本地 MCP,请将此条目合并到其开发者设置打开的文件中(macOS 上为 ~/Library/Application Support/Claude/claude_desktop_config.json)。uvx 需要在 PATH 中找到 uv:
{
"mcpServers": {
"midjourney": {
"command": "uvx",
"args": ["mcp-midjourney"],
"env": {"ACEDATACLOUD_API_TOKEN": "YOUR_API_TOKEN"}
}
}
}
请对这个用户级文件保密。可自托管的 HTTP 使用 mcp-midjourney --transport http --port 8000;仅在配置了适当的网络和 TLS 控制后才将其公开。本地执行仍会调用 AceDataCloud API。
使用服务前的检查
https://midjourney.mcp.acedata.cloud/health返回{"status":"ok"}仅能检查端点是否可访问。- 确认 MCP 客户端已加载工具。
midjourney_list_actions是一个参考工具;它无法验证下游 API 访问权限或余额。 - 如果需要进行完整的 API 检查,请先查看当前服务文档和显示的价格,然后使用你自己的有效输入调用
midjourney_generate_video。如果结果包含任务 ID,请对同一 ID 调用midjourney_get_task,直到任务成功或失败。请勿仅为检查进度而重新提交操作。
对于 401,请检查客户端使用了哪种认证方式,以及令牌或 OAuth 会话是否有效。403 可能表示账户权限不足或内容审核失败;请查看返回的错误。余额不足和下游服务故障需要分别排查。工具已列出或任务已提交,并不能证明操作已成功。
可用工具
图像生成
| 工具 | 描述 |
|---|---|
midjourney_imagine | 根据文本提示词生成图像(创建 2x2 网格) |
midjourney_transform | 转换图像(放大、变体、缩放、平移) |
midjourney_blend | 将多张图像混合在一起 |
midjourney_with_reference | 使用参考图像作为灵感进行生成 |
图像编辑
| 工具 | 描述 |
|---|---|
midjourney_edit | 使用文本提示词编辑现有图像 |
midjourney_describe | 获取图像的 AI 描述(反向提示词) |
视频
| 工具 | 描述 |
|---|---|
midjourney_generate_video | 根据文本和参考图像生成视频 |
midjourney_extend_video | 延长现有视频 |
实用工具
| 工具 | 描述 |
|---|---|
midjourney_translate | 将中文文本翻译成英文,用作提示词 |
midjourney_get_seed | 获取生成图像的种子值 |
任务
| 工具 | 描述 |
|---|---|
midjourney_get_task | 查询单个任务的状态 |
midjourney_get_tasks_batch | 一次查询多个任务 |
信息
| 工具 | 描述 |
|---|---|
midjourney_list_actions | 列出可用的 API 操作 |
midjourney_get_prompt_guide | 获取提示词编写指南 |
midjourney_list_transform_actions | 列出转换操作 |
使用示例
根据提示词生成图像
User: Create a cyberpunk city at night
Claude: I'll generate a cyberpunk city image for you.
[Calls midjourney_imagine with prompt="Cyberpunk city at night, neon lights, rain, futuristic, detailed --ar 16:9"]
放大图像
User: Upscale the second image
Claude: I'll upscale the top-right image from the grid.
[Calls midjourney_transform with image_id and action="upscale2"]
混合多张图像
User: Blend these two images: [url1] and [url2]
Claude: I'll blend these images together.
[Calls midjourney_blend with image_urls=[url1, url2]]
生成视频
User: Animate this image [url] with gentle movement
Claude: I'll create a video from this image.
[Calls midjourney_generate_video with image_url and prompt="Gentle camera movement, cinematic"]
生成模式
| 模式 | 描述 |
|---|---|
fast | 推荐用于大多数使用场景(默认) |
turbo | 生成速度更快,消耗更多积分 |
relax | 生成速度较慢,成本较低 |
配置
环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
ACEDATACLOUD_API_TOKEN | AceDataCloud 提供的 API 令牌 | 必填 |
ACEDATACLOUD_API_BASE_URL | API 基础 URL | https://api.acedata.cloud |
ACEDATACLOUD_OAUTH_CLIENT_ID | OAuth 客户端 ID(托管模式) | — |
ACEDATACLOUD_PLATFORM_BASE_URL | 平台基础 URL | https://platform.acedata.cloud |
MIDJOURNEY_DEFAULT_MODE | 默认生成模式 | fast |
MIDJOURNEY_REQUEST_TIMEOUT | 请求超时时间(秒) | 1800 |
LOG_LEVEL | 日志级别 | INFO |
命令行选项
mcp-midjourney --help
Options:
--version Show version
--transport Transport mode: stdio (default) or http
--port Port for HTTP transport (default: 8000)
开发
设置开发环境
# Clone repository
git clone https://github.com/AceDataCloud/MidjourneyMCP.git
cd MidjourneyMCP
# Create virtual environment
python -m venv .venv
source .venv/bin/activate # or `.venv\Scripts\activate` on Windows
# Install with dev dependencies
pip install -e ".[dev,test]"
运行测试
# Run unit tests
pytest
# Run with coverage
pytest --cov=core --cov=tools
# Run integration tests (requires API token)
pytest tests/test_integration.py -m integration
代码质量
# Format code
ruff format .
# Lint code
ruff check .
# Type check
mypy core tools
构建与发布
# Install build dependencies
pip install -e ".[release]"
# Build package
python -m build
# Upload to PyPI
twine upload dist/*
项目结构
MidjourneyMCP/
├── core/ # Core modules
│ ├── __init__.py
│ ├── client.py # HTTP client for Midjourney API
│ ├── config.py # Configuration management
│ ├── exceptions.py # Custom exceptions
│ ├── server.py # MCP server initialization
│ ├── types.py # Type definitions
│ └── utils.py # Utility functions
├── tools/ # MCP tool definitions
│ ├── __init__.py
│ ├── describe_tools.py # Image description tools
│ ├── edits_tools.py # Image editing tools
│ ├── imagine_tools.py # Image generation tools
│ ├── info_tools.py # Information tools
│ ├── task_tools.py # Task query tools
│ ├── translate_tools.py # Translation tools
│ └── video_tools.py # Video generation tools
├── prompts/ # MCP prompt templates
│ └── __init__.py
├── tests/ # Test suite
├── deploy/ # Deployment configs
│ └── production/
│ ├── deployment.yaml
│ ├── ingress.yaml
│ └── service.yaml
├── .env.example # Environment template
├── .gitignore
├── CHANGELOG.md
├── Dockerfile # Docker image for HTTP mode
├── docker-compose.yaml # Docker Compose config
├── LICENSE
├── main.py # Entry point
├── pyproject.toml # Project configuration
└── README.md
API 参考
此服务封装了 AceDataCloud Midjourney API:
- Midjourney Imagine API - 图像生成
- Midjourney Describe API - 图像描述
- Midjourney Tasks API - 任务查询
- Midjourney Edits API - 图像编辑
- Midjourney Videos API - 视频生成
- Midjourney Translate API - 翻译
贡献
欢迎贡献!请按以下步骤操作:
- Fork 此仓库
- 创建功能分支(
git checkout -b feature/amazing) - 提交更改(
git commit -m 'Add amazing feature') - 推送到该分支(
git push origin feature/amazing) - 创建 Pull Request
服务详情
许可证
MIT 许可证 - 详情请参阅 LICENSE。
链接
由 AceDataCloud 倾情打造
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。