A stdio MCP server exposing Midjourney generation tools to AI agents. Reuses mjclient (one stealth browser session) with a single-slot generation semaphore and the same ToS/credential posture as the CLI.
mj-mcp exposes 12 Midjourney tools with complete JSON schemas and descriptions. Naming follows verb_noun convention (midjourney_imagine, midjourney_upscale). However, descriptions are terse (10-50 chars), lack actionable context for LLM selection, and omit prerequisites/dependencies. Parameter descriptions exist but are minimal. No output schemas documented. Error handling is absent, no recovery guidance, retryability classification, or actionable error messages. Tools lack idempotency hints and confirmation patterns for destructive operations (imagine, upscale, delete). Security: no audit logging visible, no permission gates, no rate limiting. Composition is sound (each tool has one responsibility), but chaining requires manual ID passing.
Show plan and relax/stealth eligibility.
Browse the public explore gallery. feed: top|top_week|top_month|hot|random|videos.
List the account's recent jobs.
Generate a 4-image grid from a text prompt. Waits for completion and returns CDN image URLs.
List the images the account has liked (page is 1-based).
Re-run a grid's prompt.
Descriptions are terse (10-50 chars) and lack LLM-actionable context. 'Generate a 4-image grid from a text prompt' does not explain WHEN to use imagine vs reroll, what prerequisites exist (account plan, rate limits), or what the output structure contains. Baseline: A+ tools average 194 chars with dependency hints.
No output schemas documented. LLMs cannot infer what fields are returned (e.g., does imagine return job_id, image_urls, metadata?). This forces agents to guess and breaks downstream tool chaining. Baseline: 100% of A+ tools document return types.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
Semantic vector search over the public Midjourney explore gallery. Returns published community images with prompts and image URLs.
Get current status for one or more job ids.
Browse the community style-reference gallery. Each result carries an sref code usable as --sref in imagine. page is 0-based.
Upscale a grid cell (index 1-4). kind: creative|subtle.
Create a variation of a grid cell (index 1-4).
Animate a grid cell into a short image-to-video clip. index 1-4; motion high|low (default low).
No error handling guidance. Tools lack recovery hints (e.g., 'If rate-limited, wait 60s and retry'), retryability classification, or actionable error messages. Agents cannot distinguish transient failures from permanent ones.
Destructive/write operations (imagine, upscale, variation, reroll, video) lack confirmation or dry-run patterns. Agents can trigger expensive Midjourney API calls without safeguards. No idempotent hints or duplicate-prevention guidance.
Parameter descriptions are minimal (5-15 chars). E.g., 'Aspect ratio (e.g., 3:2)' does not explain valid formats, constraints, or defaults. Baseline: A+ tools average 72 chars per param with format/range/enum guidance.