Skip to content

jau123/MeiGen-AI-Design-MCP

MCP Developer Tools

Open‑source MCP server that turns any AI coding tool into a design assistant for images and video

TypeScript Latest v1.3.2 · 15d ago Security brief →

Features

  • Three backend modes: MeiGen cloud (9 models), OpenAI‑compatible API, or local ComfyUI offline
  • Built‑in library of 1,446 curated prompt templates with style‑aware enhancement
  • Parallel sub‑agent orchestration for batch generation while keeping the main context clean
  • Standalone CLI mode for shell scripts and CI pipelines

Recent releases

View all 14 releases →
No immediate action
v1.3.2 Breaking risk

Windows path auto‑upload

No immediate action
v1.3.1 Breaking risk

Veo tier expansion + Seedance reference video

v1.3.0 Breaking risk
⚠ Upgrade required
  • If installed via Claude Code plugin marketplace, run `/plugin update` to fetch the new `plugin/.mcp.json`.
  • Pin updates: bump pinned `[email protected]` configurations to `[email protected]`.
  • All new environment variables are optional; existing setups continue functioning without modification.
Security fixes
  • SSRF defense‑in‑depth for `referenceImages` URLs in `generate_image`, `generate_video`, and CLI rejects file://, data:, private IPs (10/172.16‑31/192.168/127), cloud metadata (169.254.169.254).
Notable features
  • `generate_video` MCP tool with Seedance 2.0, Happyhorse 1.0, Veo 3.1 supporting text‑to‑video and image‑to‑video.
  • Standalone `meigen gen` CLI for prompt generation without an MCP host (supports JSON output, no‑wait mode, reference file upload).
  • First‑class multi‑host integration documentation covering Cursor, Codex, Windsurf, Roo Code, Hermes Agent, Claude Code and OpenClaw.
Full changelog

Highlights

  • 🎬 Video generation — new generate_video MCP tool with Seedance 2.0 (fast/pro tiers), Happyhorse 1.0, and Veo 3.1. Supports text-to-video and first-frame / last-frame image-to-video. Local files are auto-uploaded; MP4 saves to ~/Movies/meigen/.
  • 💻 Standalone CLInpx meigen gen --prompt "..." works without an MCP host. Shell-friendly: --json for jq pipelines, --no-wait for CI, --reference for local files (auto-upload). Subcommand sits next to the existing meigen init <host>.
  • 🚀 Multi-host support — first-class integration docs for Cursor, Codex (OpenAI CLI), Windsurf, Roo Code, Hermes Agent (NousResearch), plus all existing Claude Code / OpenClaw flows.
  • 🎯 /meigen:setup is now a real slash command — fixes the long-standing issue where users couldn't configure their API key through the wizard. Also adapts to Windows shells.

What's New

Tools

  • generate_video — new MCP tool. Models: seedance-2-0 (fast/pro), happyhorse-1.0, veo-3.1. First-frame image-to-video via firstFrame param; optional lastFrame for Seedance/Veo. Schema fields (tier, duration, resolution) are z.string() / z.number().positive() so the backend can add new tiers without an MCP release.
  • meigen gen CLIbin/meigen-mcp.js now routes a gen subcommand to src/cli/gen.ts. Supports --prompt, --model, --ratio, --resolution, --quality, --reference, --no-wait, --json. Reuses MeiGenApiClient so behavior matches the MCP tool exactly.

SKILLs / Commands

  • plugin/commands/setup.md — interactive provider configuration wizard, finally a proper slash command. Auto-detects platform (macOS / Linux / Windows) and adapts shell commands. Explicit merge-vs-overwrite guidance prevents users from losing an existing ComfyUI config when adding a MeiGen token.
  • plugin/skills/product-photoshoot/SKILL.md — workflow that turns one product reference photo into a 4-direction asset set (lifestyle / macro / scale / marketing).
  • plugin/skills/social-thumbnail/SKILL.md — 9:16 thumbnail workflow optimized for short-video covers (TikTok / Reels / Shorts).

Docs

  • README repositioning: hero block now lists 9 models (GPT Image 2, Nanobanana 2, Seedream 5.0, Midjourney V8.1, Flux 2 Klein, Seedance 2.0, Happyhorse 1.0, Veo 3.1, local ComfyUI), all 8+ host integrations, and the standalone CLI mode. Dropped the Lovart comparison (unknown to English-speaking dev audience) and the "carefully crafted hooks" jargon.
  • README.zh-CN.md: translated the missing privacy + custom storage backend sections (was English-only before).
  • New DECISIONS.md documents nine load-bearing decisions (no-MCP-defaults, schema-as-string, shared-semaphore, V8.1 unification, mediaType guards, etc.) so future contributors don't reopen settled choices.
  • New evals/scenarios.md — 13 manual smoke-test scenarios for regression catching.

Security

  • SSRF defense-in-depth for referenceImages URLs (src/lib/url-safety.ts). Rejects file://, data:, private IPs (10/172.16-31/192.168/127), and cloud metadata (169.254.169.254). Applied across generate_image, generate_video, and the CLI. Backend provider downloaders still need their own SSRF filter — this is a client-side layer.
  • The setup.md JSON example previously used // comment syntax inside JSON code blocks; rewrote to use markdown headings so an LLM can't accidentally write // into config.json.

Fixes

  • Shared API semaphore (src/lib/generation-shared.ts): generate_image and generate_video now share one Semaphore(4) across the same /api/generate/v2 endpoint. Prior code documented sharing but actually used two independent semaphores, which could burst to 8 concurrent submits and trip the backend's 12/min rate limit.
  • videoUrl || status.imageUrl fallback removed: if a video model id was misrouted to generate_image (or vice versa), the old code could write a JPEG payload as .mp4. Both tools now have symmetric mediaType guards that fail loudly with a redirect message.
  • Setup wizard cross-host: error messages and SERVER_INSTRUCTIONS now branch on Claude Code vs other hosts. Cursor / Codex / Hermes users get the env-var path, not a non-existent /meigen:setup command.
  • Linux save paths: MEIGEN_OUTPUT_DIRXDG_PICTURES_DIR~/Pictures/meigen fallback chain (and same for MEIGEN_VIDEO_OUTPUT_DIRXDG_VIDEOS_DIR~/Movies/meigen).
  • Generate-video timeout: error message now mentions pg_cron cleanup_orphan_generations (backend auto-refund within ~15 minutes for jobs that never started) so users don't immediately retry and double-pay.
  • prompt schema: both generate_image and generate_video now use z.string().trim().min(1) to reject empty and whitespace-only prompts.
  • CLI argv parser: rejects --flag followed by another --flag (i.e. missing value), so meigen gen --prompt --json no longer silently submits --json as the prompt.
  • CLI poll timeout: waitForGeneration errors now surface the generationId so users can check the web before retrying.

Changed

  • Midjourney V8.1 replaces V7 + Niji 7 in all user-facing docs. V8.1 handles photorealistic and stylized/anime output in one model — enhance_prompt(style: 'anime') injects trigger words. Niji 7 remains hidden server-side (extra_config.hidden=true) for legacy modelId compatibility but is not advertised.
  • list_models output now shows Status: (New / Busy / Maintenance from backend extra_config.tags) and Cost: (live credits_per_generation from backend response). Updated DECISIONS.md to clarify: live backend numbers may be rendered, only frozen training-data numbers in shipped strings are forbidden.
  • Status union narrowed from 'pending' | 'processing' | 'completed' | 'failed' to 'processing' | 'completed' | 'failed' — the backend maps 'pending''processing' before responding.

Internal

  • CI (.github/workflows/validate.yml): four jobs — version-sync, pinned-npm-coherence, frontmatter-lint, and typecheck + clean build. The build job asserts that dist/index.js, dist/cli/init.js, and dist/cli/gen.js are produced, catching stale-dist regressions.
  • Frontmatter linter (scripts/ci/check-frontmatter.mjs): catches name: fields in agents/commands (derived from filename) and missing required fields in SKILLs.
  • package.json files: removed stale "skills/" entry (the directory doesn't exist; plugin SKILLs ship via the GitHub marketplace, not the npm tarball).
  • Removed stale dist/tools/upload-reference-image.* artifacts whose source was deleted months ago.

Compatibility

  • Node: ≥18 (unchanged).
  • MCP hosts: Claude Code, Cursor, VS Code (GitHub Copilot), Windsurf, Roo Code, Codex CLI, OpenClaw, Hermes Agent, and any MCP-compatible host that surfaces server instructions.
  • No breaking changes to existing tool schemas. tier and duration on generate_video are now string/number instead of enum/range, but accepted values are a superset.

Upgrade Notes

  • If you installed via the Claude Code plugin marketplace: /plugin update to pull the new plugin/.mcp.json pin.
  • If you use npx -y meigen@latest: nothing to do.
  • If you pinned [email protected] in your MCP config: bump to [email protected].
  • New env vars are all optional — existing setups keep working without changes.

Acknowledgements

This release went through four adversarial review rounds plus an end-to-end usability audit. Several "must fix" findings turned out to be false positives on inspection — keeping the verify-before-fixing discipline saved a lot of churn.

v1.2.10 Breaking risk
Breaking changes
  • v1.2.9 pricing regression: GPT Image 2.0 defaulted to 2K (25 credits) instead of 1K; v1.2.9 deprecated on npm
Notable features
  • resolution parameter (1K/2K/4K)
  • quality parameter (low/medium)
  • list_models surfaces resolution and quality tier support
Full changelog

⚠️ Pricing hotfix — please upgrade from 1.2.9

v1.2.9 had a pricing regression: GPT Image 2.0 became the default model but the server-side resolution fallback stayed at 2K, silently doubling credit cost for users who did not pass resolution explicitly.

v1.2.10 fixes it. gpt-image-2* now defaults to 1K / medium = 10 credits, matching the MeiGen platform product default. 1.2.9 has been deprecated on npm.

If you ran generations with 1.2.9 and relied on the default, your cost per image was ~25 credits instead of 10. Sorry about that.

What's new in 1.2.10

Fix

  • gpt-image-2* default resolution: 2K → 1K (10 credits). Other models unchanged.
  • Deprecated 1.2.9 on npm.

New generate_image parameters

  • resolution: "1K" (default) / "2K" / "4K" — for posters, prints, wallpapers.
  • quality: "low" (2 credits @ 1K) / "medium" (default) — for drafts and thumbnails.

Pricing matrix (gpt-image-2): 1K/low ≈ 2, 1K/medium = 10, 2K/medium ≈ 25, 4K/medium ≈ 40 credits.

Better model discovery

  • list_models now surfaces each model's supported resolutions and quality tiers (when the MeiGen API reports them), so the host LLM can make informed resolution decisions.
  • MeiGenModel type extended with media_type, max_reference_images, extra_config.

Host LLM guidance

  • SERVER_INSTRUCTIONS gains a "GPT Image 2.0 resolution / quality" section in Phase 2. Tells the LLM to stay on 1K unless the use case (poster/print/wallpaper) justifies the cost — avoids over-spending on casual chat imagery.

Docs

  • openclaw/providers.md and plugin/skills/visual-creative/SKILL.md — model table updated with the resolution × quality pricing matrix and new 1K default.

Upgrade

npx -y [email protected]

Or via plugin:

/plugin install meigen@meigen-marketplace

Synced across: npm [email protected] • Claude Code plugin marketplace • ClawHub skill [email protected] • ClawHub bundle [email protected] • wshobson/agents (PR pending).

v1.2.9 Breaking risk
Breaking changes
  • GPT Image 1.5 retired from model tables, docs, and examples
Notable features
  • GPT Image 2.0 as default model for text rendering
Full changelog

What's New

  • Default model switched to GPT Image 2.0 (10 credits) — state-of-the-art text rendering for posters, logos, and any typography-heavy imagery
  • Retired GPT Image 1.5 from model tables, docs, and examples across all channels

Other Changes

  • Cleaned up stale dall-e-3 / flux-schnell references in OpenAI-compatible provider examples
  • OpenAI-compatible provider docs now use generic "your model ID" wording — any OpenAI-format endpoint works with any model your service supports
  • ClawHub skill (creative-toolkit) bumped to 1.0.25 with updated model catalog

Synced Across

  • npm [email protected]
  • Claude Code plugin marketplace (meigen)
  • ClawHub skill creative-toolkit (1.0.25)
  • ClawHub bundle plugin meigen-ai-design
  • Third-party marketplaces (wshobson/agents)

Upgrade

npx -y [email protected]

Or via plugin:

/plugin install meigen@meigen-marketplace

Cost note: GPT Image 2.0 costs 10 credits vs Nanobanana 2's 5 credits. If you prefer the previous default for cost reasons, pass model: "nanobanana-2" to generate_image.

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

About

Stars
1,345
Forks
175
Languages
TypeScript Shell JavaScript
Downloads/week
330 ↓5%
NPM Maintainers
1 Single npm maintainer
Contributors
1
TypeScript
Types included ✓

Install & Platforms

Install via
npm

Community & Support

Beta — feedback welcome: [email protected]