midjourney-mcp-cliCAUTION
Midjourney MCP server and CLI for Claude Code, Codex and AI agents. 32 tools for generating images, following jobs to completion, downloading the real files, and building moodboards that make a style reusable.
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
[](https://www.npmjs.com/package/@thenavidm/midjourney-mcp-cli) [](./LICENSE) [](https://youtube.com/@thenavidm?sub_confirmation=1) [](https://x.com/thenavidm) [](https://linkedin.com/in/thenavidm)
Midjourney MCP server and CLI for Claude Code, Codex and AI agents. 32 tools for generating images, following jobs to completion, downloading the real files, and building moodboards that make a style reusable.
Midjourney publishes no API, so this drives a real Chrome that is signed in as you.
There is no key to paste and no cookie to export. You sign in once, in a window, and the session lives in a browser profile rather than in a config file.
32 tools, on both surfaces. It waits for jobs to finish and hands back the actual files, not a screenshot of them.
Built and maintained by Navid Moazzez. Built on Slipway, which turns one definition of each tool into the MCP server and the CLI.
Two ways to use it
Command line
midjourney-cli in your terminal, for scripting, cron, pipes, or a quick question without opening anything:
midjourney-cli # every command, one line each midjourney-cli login # sign in on
ca6874110f93OBSERVED · 2026-10-11Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control.
claude mcp add midjourney-mcp-cli -- npx -y @thenavidm/[email protected]
{
"mcpServers": {
"midjourney-mcp-cli": {
"command": "npx",
"args": [
"-y",
"@thenavidm/[email protected]"
]
}
}
}Exposed tools (25)
21 read · 3 write · 1 destructive. Blast radius: 1 tool can delete or overwrite — an agent that can be talked into calling a tool can be talked into calling this one.
| Tool | Risk | Description |
|---|---|---|
add_to_moodboard | write | Add images to a moodboard, either from a job you generated or by direct URL.\n\nPass job_id to add that job |
api_get | read | Issue a GET against an arbitrary path on midjourney.com and return the JSON. The escape hatch for endpoints this server has no named tool for.\n\nMidjourney publishes no API, so the set of endpoints is whatever its web app happens to call this month. Discover them with |
download_url | read | Download a single Midjourney asset by its direct URL. For image URLs already in hand, from list_jobs, explore_feed or a moodboard, where going back through a job id would be a detour.\n\nOnly useful for URLs the signed-in browser session can reach. |
explore_feed | read | Browse Midjourney |
explore_style_likes | read | Fetch the style-like metadata the explore grid uses, which marks which styles the account has liked. Mostly useful alongside explore_feed when working out which references have already been saved. |
get_contest_ranking_count | read | Show how many contest ranking rounds this account has completed. |
get_job | read | Look up a single job by id and return its status and image URLs. Checks the live update feed first, then recent history.\n\nOnly jobs still in the account |
get_moodboard | read | Look up a moodboard by name or id and return its reference images.\n\nPartial names work: |
get_queue | read | Show the account |
get_storage | read | Show the storage metadata the web app exposes: how much space the account |
job_updates | read | Poll the feed the web app itself watches while work is in flight. Returns jobs whose state has changed recently.\n\nPass the checkpoint from a previous response to get only what has changed since. Most callers want wait_for_job instead, which drives this loop for you. |
list_folders | read | List the folders in the account |
list_following | read | List the Midjourney creators this account follows. |
list_jobs | read | List the account |
list_model_ratings | read | List the image-rating tasks Midjourney is offering this account. Rating images earns fast hours and feeds the account |
list_moodboards | read | List the account |
list_personalized_profiles | read | List the account |
pan_image | read | Extend one image in a direction, inventing what lies beyond the current frame. Good for turning a portrait crop into a wide shot without regenerating it. Costs GPU time. |
remix_image | read | Keep an image |
remove_from_moodboard | destructive | Remove images from a moodboard by URL.\n\nCuration is the point of a moodboard, so this is how a board stays sharp. It cannot be undone from here: the board is edited in place and there is no history, which is why it needs confirmation. |
rerun_job | write | Run an existing job again, which is what the reroll button in the web app does. Same prompt and settings, a new roll of the dice. Pass new_prompt to change the wording while keeping everything else.\n\nThe job must still be in the account |
submit_raw_job | write | Send an arbitrary job type to Midjourney |
upscale_image | read | Upscale one image from a finished grid to full resolution.\n\n |
whoami | read | Report which Midjourney account the controlled browser is signed in as, and whether the browser is reachable at all.\n\nThe first thing to call when something is not working: it separates |
zoom_out | read | Pull the camera back, filling the new space around the existing image. 200 doubles the frame, 150 is gentler. Useful for giving a tight shot room for a headline or a logo. Costs GPU time. |
Trust audit
CAUTIONgrade B · trust 89/100 Install with care. The audit found things worth knowing before you trust its output.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | WARN |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | WARN |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (2 observation(s))
- Network
- declared (7 observation(s))
- Shell
- none-observed
- Dependencies
- not all pinned
- Secrets in source
- none-found
Findings (7)
{ env: "MIDJOURNEY_CDP_URL", description: "The DevTools endpoint. Defaults to http://127.0.0.1:9222." },cdpUrl: str("MIDJOURNEY_CDP_URL") ?? "http://127.0.0.1:9222",remove_from_moodboard
.mcpbignore
| `MIDJOURNEY_CDP_URL` | `http://127.0.0.1:9222` | Where DevTools listens |
@thenavidm/slipway, zod, @types/node, ajv, typescript, vitest
desktop-extension/midjourney-1.0.0.mcpb
Gates applied: no_behavioural_pass.
ca6874110f93full audit observations/trust-audit/mcp-server/thenavidm__midjourney-mcp-cli.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-11 | ca6874110f93 | CAUTION | B | 89 | first audit |
Questions
What is the midjourney-mcp-cli MCP server?
Midjourney MCP server and CLI for Claude Code, Codex and AI agents. 32 tools for generating images, following jobs to completion, downloading the real files, and building moodboards that make a style reusable.
What tools does midjourney-mcp-cli expose?
25 in total: 21 read-only, 3 that write, and 1 that can delete or overwrite (remove_from_moodboard). Every one is listed on this page with its risk.
Is midjourney-mcp-cli safe to connect to an agent?
With care. The audit graded it B (89/100) and found 7 things worth knowing before you trust this server, listed below with the exact line each was found on. Separately from the audit: 1 of its tools can destroy data, so scope the token you give it to what you actually need.
What credentials does midjourney-mcp-cli need?
No credential environment variables were found in its source, so it appears to need none.
How current is this page?
The grade is for one exact copy of the source (ca6874110f93), read on 2026-10-11. The repository is watched and re-audited when it changes.