Midjourney MCP
AI image generation with Midjourney — imagine, edit, blend, upscale, describe.

Bring Midjourney into VS Code chat. Generate 2x2 grids from prompts, upscale or vary a tile, blend multiple references, describe an image back into a prompt, and animate stills into short video.
This extension registers the midjourney MCP server with VS Code so GitHub
Copilot and any other agent that speaks the Model Context Protocol
can call it directly from chat.
Quick Start
- Install this extension. VS Code registers the
midjourney MCP server automatically.
- Get an application API key using the detailed steps below. Check service access and your current balance before the first request.
- Select a model with tool calling in VS Code Chat. You can use your existing model, or install Ace Data Cloud Chat Models. For the Ace model, first follow its setup guide, open Chat: Manage Language Models, make the model visible, and select it in Chat. BYOK Chat does not require GitHub sign-in or a Copilot plan; organization policies still apply.
- Enable this server's tools. Open Chat → Agent → Configure Tools and select only the tools you need under Midjourney MCP. If the list is empty, choose Update Tools. The extension prompts for the API key on first use and saves it in VS Code's
SecretStorage. Disable another copy of the same server from the Ace MCP bundle or manual mcp.json to avoid duplicate tools.
- Verify one result. Check the Tool Reference below and current pricing before running a request. If you already have a task ID, enable its task-query tool and query that same ID first. An accepted generation is not a completed result: poll the original task until it reaches a successful terminal state, open the returned media, and match the task ID in Usage. Do not resubmit generation to poll. Model Chat and background utility calls can add separate charges to the service request.
You can rotate or remove the API key any time from the command palette:
- Midjourney MCP: Set Ace Data Cloud API Key
- Midjourney MCP: Clear Ace Data Cloud API Key
The default config talks to the hosted streamable-HTTP endpoint at
https://midjourney.mcp.acedata.cloud/mcp — no Python, no uvx, no local install needed.
Get your API key
- Open Ace Data Cloud → Applications. Sign in, or register an account first.
- Find General application. If it has not been created, choose Initialize General Application. A general key can use the services available to your account; a dedicated application's key is limited to its service. Check the required service/model access and current pricing.
- Copy the API Key from the application card, or open Keys / Manage Keys → Create to create a separate key for this integration. Give it a recognizable name so you can revoke or rotate it independently.
- When creating a key, review Expiration Time, Set Usage Limitation, and Allowed APIs. Enable only the restrictions you need, allow the operations you will call, then click Create and copy the token from the key list. Task lookup does not grant permission to submit a generation. Confirm the application's balance can cover your first request; any trial allowance is whatever your account currently displays.
- Copy only the token value, without quotation marks, spaces, or
Bearer . An API Key / API Token field expects this raw value; only a manually configured HTTP Authorization header needs the Bearer prefix. A platform-... account-management token cannot replace a generation API key.


Save the key in the client's credential store or the environment variable shown below. Never put it in a prompt, shared workflow, screenshot, or Git commit. If authentication fails, check the full copied value, application/service access, expiration, usage limit, and balance before creating another key.
Example prompts
- "Generate an isometric pixel-art illustration of a cozy cafe. Use midjourney."
- "Upscale tile 3 of task ."
- "Describe https://example.com/photo.jpg and give me a Midjourney prompt."
16 tools available via this server.
| Tool |
Description |
midjourney_imagine |
Generate AI images from a text prompt using Midjourney. |
midjourney_transform |
Transform an existing Midjourney image with various operations. |
midjourney_blend |
Blend multiple images together using Midjourney. |
midjourney_with_reference |
Generate images using a reference image as inspiration. |
midjourney_edit |
Edit an existing image using Midjourney. |
midjourney_describe |
Get AI-generated descriptions of an image. |
midjourney_generate_video |
Generate a video from text prompt and reference image using Midjourney. |
midjourney_extend_video |
Extend an existing Midjourney video to make it longer. |
midjourney_translate |
Translate Chinese text to English for use as Midjourney prompts. |
midjourney_shorten |
Analyze and shorten long Midjourney prompts while preserving key ideas. |
midjourney_get_seed |
Get the seed value of a previously generated Midjourney image. |
midjourney_get_task |
Query the status and result of a Midjourney generation task. |
midjourney_get_tasks_batch |
Query multiple Midjourney generation tasks at once. |
midjourney_list_actions |
List all available Midjourney API actions and corresponding tools. |
midjourney_get_prompt_guide |
Get guidance on writing effective prompts for Midjourney. |
midjourney_list_transform_actions |
List all available transformation actions for Midjourney images. |
Supported Models
5.2, 6, 6.1, 7, 8
Pricing
From $0.04 per /imagine job. Free trial credit on sign-up. See service details at https://platform.acedata.cloud/services/d87e5e99-b797-4ade-9e73-b896896b0461.
Configuration
This extension implements the mcpServerDefinitionProviders contribution point
and registers a single hosted server with VS Code:
Provider id : acedatacloud.midjourney
Server label: Midjourney MCP
Server URL : https://midjourney.mcp.acedata.cloud/mcp
Transport : Streamable HTTP
Auth : Bearer API key from VS Code SecretStorage (or $ACEDATACLOUD_API_TOKEN)
You don't need to edit mcp.json — the extension handles registration and
token handling automatically. If you'd rather configure things by hand, the
sections below show equivalent mcp.json snippets you can use instead of
this extension.
Alternative: manual mcp.json (hosted)
{
"servers": {
"midjourney": {
"type": "http",
"url": "https://midjourney.mcp.acedata.cloud/mcp",
"headers": { "Authorization": "Bearer ${input:acedatacloud_api_token}" }
}
},
"inputs": [
{
"type": "promptString",
"id": "acedatacloud_api_token",
"description": "Ace Data Cloud API key",
"password": true
}
]
}
Alternative: local stdio (no network roundtrip)
For offline dev, air-gapped environments, or pinning to a specific PyPI
version, install uv and use:
{
"servers": {
"midjourney": {
"type": "stdio",
"command": "uvx",
"args": ["mcp-midjourney"],
"env": { "ACEDATACLOUD_API_TOKEN": "${input:acedatacloud_api_token}" }
}
}
}
uvx will download and run the latest mcp-midjourney on demand.
Links
License
MIT — see LICENSE.