Skip to content

jau123/MeiGen-AI-Design-MCP

MCP Developer Tools

Supports GPT Image 2, Nanobanana & ComfyUI, with a 1,400+ prompt library, carefully crafted hooks and a multi-task orchestration system

TypeScript Latest v1.3.3 · 1mo ago Security brief →

Features

  • Provides an MCP server that turns AI coding tools into a design assistant
  • Supports three backend modes: MeiGen cloud, any OpenAI‑compatible API, or local ComfyUI (offline)
  • Includes 1,446 curated prompt templates and parallel batch generation via sub‑agents

Recent releases

View all 15 releases →
No immediate action
v1.3.3 Mixed

Seedance 2.0 + new models

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).

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,586
Forks
207
Languages
TypeScript Shell JavaScript
Downloads/week
268 ↓34%
NPM Maintainers
1 Single npm maintainer
Contributors
2
TypeScript
Types included ✓

Install & Platforms

Install via
npm

Community & Support

Beta — feedback welcome: [email protected]