midjourney-mcp-web
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@midjourney-mcp-webCreate a futuristic city skyline at sunset, aspect ratio 16:9"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Midjourney MCP Web
Unofficial Model Context Protocol (MCP) server for generating images through the Midjourney web app using your own signed-in browser authentication cookies.
This project is a cleaned-up and modernized fork of Lala-0x3f/mj-mcp. It keeps the same simple MCP surface, but updates the web flow for the current Midjourney site:
submits jobs to
/api/submit-jobsreads the Midjourney user id from the signed-in web page
polls
/api/imagineinstead of relying on the now-blocked websocket pathdefaults to
--v 8.1
This project is not affiliated with, endorsed by, or supported by Midjourney.
Tool
The server exposes one MCP tool:
generating_image(prompt: str, aspect_ratio: str) -> strThe response is Markdown with four Midjourney CDN image URLs.
Related MCP server: Midjourney Best Experience MCP Server
Requirements
Python 3.10+
uvor another Python package runnerA Midjourney account with access to the web app
Your own
__Host-Midjourney.AuthUserTokenV3_rand__Host-Midjourney.AuthUserTokenV3_icookie values
Install From GitHub
uvx --from git+https://github.com/WilliamJizh/midjourney-mcp-web midjourney-mcp-webFor local development:
git clone https://github.com/WilliamJizh/midjourney-mcp-web.git
cd midjourney-mcp-web
uv run --with-editable . python -m midjourney_mcp_webConfiguration
The server reads configuration from environment variables.
Variable | Required | Default | Description |
| Yes | Value of | |
| Yes | Value of | |
| No |
| Midjourney web host |
| No |
| Parameters appended to every prompt |
| No |
| Polling timeout for completed job visibility |
| No |
| Override channel id |
Never commit real token values. Treat both tokens as secrets.
Codex Config Example
[mcp_servers.midjourney]
command = "uvx"
args = ["--from", "git+https://github.com/WilliamJizh/midjourney-mcp-web", "midjourney-mcp-web"]
[mcp_servers.midjourney.env]
TOKEN_R = "replace_with_midjourney_cookie_r"
TOKEN_I = "replace_with_midjourney_cookie_i"
SUFFIX = "--v 8.1"For better local security on macOS, store the tokens in Keychain and use a small wrapper script that exports TOKEN_R and TOKEN_I before launching this server. Do not publish that wrapper with real values.
Claude Desktop Config Example
{
"mcpServers": {
"midjourney": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/WilliamJizh/midjourney-mcp-web",
"midjourney-mcp-web"
],
"env": {
"TOKEN_R": "replace_with_midjourney_cookie_r",
"TOKEN_I": "replace_with_midjourney_cookie_i",
"SUFFIX": "--v 8.1"
}
}
}
}Getting Cookie Values
Open
https://www.midjourney.com/explore?tab=topwhile signed in.Open browser developer tools.
Go to Application or Storage.
Open Cookies for
https://www.midjourney.com.Copy the values for:
__Host-Midjourney.AuthUserTokenV3_r__Host-Midjourney.AuthUserTokenV3_i
Do not paste these values into public chats, issues, logs, or commits.
Example Prompt
A peaceful impressionist garden with water lilies and soft morning light --stylize 200Call the MCP tool with:
{
"prompt": "A peaceful impressionist garden with water lilies and soft morning light --stylize 200",
"aspect_ratio": "3:4"
}The server appends:
--ar 3:4 --v 8.1unless you override SUFFIX.
Development
uv run --extra dev pytest
uv run --extra dev python -m buildRun a no-secret source scan before publishing:
git grep -n -I -E 'TOKEN_R=|TOKEN_I=|AuthUserTokenV3_[ri]=[^\"[:space:]]+|gho_|sk-[A-Za-z0-9]|BEGIN (RSA|OPENSSH|PRIVATE) KEY'Limitations
Midjourney web APIs are not public APIs and may change without notice.
The server uses your own Midjourney account and may consume GPU time.
The returned URLs point to Midjourney CDN assets.
This does not upload reference images; it is text-prompt only.
License
GPL-3.0-or-later. See LICENSE.
Available Tools
1 toolgenerating_imageB
Generate an image with Midjourney.
Args: prompt: English image prompt. Additional Midjourney parameters can be included. aspect_ratio: Aspect ratio such as "16:9", "4:3", or "3:4".
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | ||
| aspect_ratio | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavioral traits, but it only states the basic action. No information about side effects, costs, rate limits, or resulting image characteristics is given.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, with two sentences covering purpose and parameters. No extraneous content; front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 required string parameters) and presence of an output schema, the description is partially adequate. However, it lacks usage guidance and behavioral details, leaving gaps for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema description coverage, the description adds meaning: 'English image prompt' and 'Additional Midjourney parameters can be included' for prompt; and example values for aspect_ratio. This goes beyond raw schema types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Generate an image with Midjourney', specifying the verb (Generate), resource (image), and tool (Midjourney). It is specific and not a tautology, though a bit more detail could enhance clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided. The description does not mention when to use this tool, when not to, or any alternatives. Lacks context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
With only one tool, there is no possibility of confusion between tools. The tool's purpose is clear and distinct.
The single tool uses a descriptive verb_noun pattern ('generating_image'), and there is no inconsistency since there's only one tool.
One tool is on the borderline of being too few for a domain like image generation, which typically benefits from additional capabilities (e.g., describing, varying). However, it may suffice for basic generation.
The tool surface is severely limited to only generation, lacking common lifecycle operations like retrieving results, upscaling, or modifying images. This will likely lead to agent failures in practical workflows.
Maintenance
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
MCP server for Midjourney AI image generation and editing
MCP server for NanoBanana AI image generation and editing
MCP server for Flux AI image generation
MCP server for Qwen Image 3 AI image generation
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA complete Midjourney MCP server that provides image generation features through the GPTNB API, including text-to-image generation, image transformations, advanced editing, and face swapping capabilities.12
- AlicenseCqualityDmaintenanceAn MCP server that provides access to the Midjourney Best Experience API for generating and manipulating images. It enables users to execute prompts and perform actions like upscaling, variations, and zooming directly within MCP-compatible applications.5MIT
- AlicenseNot gradedqualityAmaintenanceMCP server for generating and editing images using Amazon Nova Canvas, Stable Diffusion 3.5 Large, and Stability AI services through Amazon Bedrock.Apache 2.0
- FlicenseNot gradedqualityDmaintenanceAn MCP server for AI-powered image processing (generate, edit, vary, analyze) supporting OpenAI, Gemini, Ideogram, and custom relay endpoints.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/WilliamJizh/midjourney-mcp-web'
If you have feedback or need assistance with the MCP directory API, please join our Discord server