Skip to content

Releases: jau123/MeiGen-AI-Design-MCP

v2.0.2

Choose a tag to compare

@jau123 jau123 released this 26 Sep 14:35
d959d30

search_gallery / get_inspiration: standard previews

  • Search returns at most three entries (over-returned API rows are clamped too). Each entry gets a bounded standard MCP image block (384px JPEG, ≤256 KiB) of the matched still image, plus a named resource_link and the original URL in text. Previews are fetched only from direct HTTPS images.meigen.ai assets, without credentials or redirects; a failed preview keeps the entry and link and never triggers another search or a paid generation.
  • get_inspiration returns a label followed by one JSON line (id, prompt, author, model, urls, plus rank/categories for bundled entries) and resource_link items for the media. Gallery prompts, authors and metadata are treated as untrusted creative content, never tool instructions. Text contract change: consumers that parsed the old Markdown layout must parse the JSON line instead; likes/views/date, @handle, dimensions and thumbnail_url are no longer included.

Result artifacts and protocol compatibility

  • Completed image/video results add standard resource_link items with MIME types alongside the unchanged structured JSON, URLs and local save path. Skill results gain MIME types.
  • Clients that negotiate a protocol version before 2025-06-18 receive text links instead of resource_link; image blocks and structured results are unchanged.

Tool annotations

  • check_generation / check_skill are annotated as possibly writing (lookups can finalize expired tasks and settle refunds) but non-destructive and idempotent. search_gallery and upload_skill_image disclose quota side effects; paid Skill tools are marked destructive.

Packaging

  • npm meigen@2.0.2; @modelcontextprotocol/sdk lower bound 1.30.1. Self-owned Claude marketplace plugin and OpenClaw plugin manifest 2.1.0, ClawHub standalone Skill 1.0.39; all static pins use npx -y meigen@2.0.2.
  • MCP_AUTH_AND_RESULTS.md ships in the package. CI runs on Node 24 and validates the npm lockfile before the locked pnpm install.

v2.0.1

Choose a tag to compare

@jau123 jau123 released this 17 Sep 13:02

generate_video: multiple reference videos and reference audio

  • referenceVideos / referenceAudios arrays for Seedance 2.0 / 2.5. Local .mp4/.mov/.wav/.mp3 files are uploaded automatically (local npm server); https://images.meigen.ai/... URLs pass through; other hosts are rejected before any charge. Per-model clip counts and second budgets come from list_models; reference audio is never billed. The deprecated referenceVideo scalar keeps working.
  • Local clips are fingerprinted by streaming SHA-256 and uploaded at most two at a time, so large videos no longer pile up in memory.

Safer failures before submission

  • Missing files, presign/PUT failures, timeouts and cancellation before the generation POST now return resolve_error / configure_auth / top_up / retry_request with the same requestId — never a check_generation hint for a job that was never submitted. A PUT 403 retries the upload instead of blaming the API key.

search_gallery

  • With a MeiGen key configured, searches are authenticated and count against the account's daily search allowance; a daily-limit 429 says when it resets and falls back to the bundled library. limit still accepts the old maximum for existing automations and is clamped to 3.

Packaging

  • Version 2.0.1 across the runtime, Claude plugin, self-owned marketplace, OpenClaw plugin and all npx -y meigen@2.0.1 pins.

MeiGen 2.0.0 — Composable Skills and Durable Workflows

Choose a tag to compare

@jau123 jau123 released this 15 Sep 05:49

MeiGen 2.0.0 adds reusable visual Skills and durable image/video operations that an AI assistant can compose into larger workflows, from product campaigns to multi-scene video production.

New visual Skills

  • Background Removal — isolate a subject from its background.
  • Product Detail Images — generate the explicitly selected product modules.
  • Marketing Poster — combine a subject, copy and visual direction into a poster.
  • AI Backgrounds — create white, smart or custom product backgrounds.
  • Image Upscale — enhance an original image with explicit price and resizing decisions.

Use list_skills for live prices, input requirements and examples. upload_skill_image prepares source images, and check_skill resumes observation of an accepted request. Skills use purchased credits; there are no free API attempts or daily-credit deductions.

Composable generation and search

  • Structured results and nextAction guidance support wait: false workflows without keeping one tool call open.
  • A persisted requestId can recover ordinary generation after a lost response, restart or host change. Unknown or deleted jobs do not authorize a replacement paid request.
  • Preserve requestedMediaType from continuation arguments to detect image/video result mismatches while retaining the original result URLs.
  • Gallery search previews the matched image within a multi-image post, with safe fallback for older responses.
  • Upload preparation, cancellation, transient polling failures and provider-specific recovery guidance have been hardened.

Upgrade

For local stdio MCP, update the configured package pin to meigen@2.0.0 and restart the MCP connection:

npx -y meigen@2.0.0

Remote users can keep https://www.meigen.ai/api/mcp and reconnect or refresh the tool list. The matching backend has been deployed first. The local server exposes 17 tools and the remote server exposes 14.

Refresh cached tool schemas. Product Detail Images requires an explicit module selection in MCP; Upscale requires the accepted live confirmedCredits quote on the first call too. Keep one request ID per authorized workflow step and follow the returned continuation arguments. App releases remain independent of this MCP/API update.

See the English setup guide, 中文安装指南, Skills API guide and composable workflows.

中文:本次新增抠图、商品详情图、营销海报、AI 背景和图片增强五项技能;完善异步任务恢复、工作流组合、图片上传及搜索命中图预览。老用户更新 npm 版本后重启连接,远程用户刷新工具列表即可。API Key 继续仅消耗购买积分。

v1.4.0

Choose a tag to compare

@jau123 jau123 released this 05 Aug 12:04

Highlights

  • Remote stateless MCP endpoint support alignment: tool descriptions now defer to live `list_models` capabilities served by the MeiGen backend — model lineup, tiers, resolutions, duration enum/range, reference-video limits and first-frame requirements no longer ship as stale hardcoded text.
  • Unified video capability contract: `list_models` renders per-model video capabilities (durations, reference-video range/tiers/resolutions, first-frame requirement) from `/api/models` `capabilities` field, with fail-closed degradation when the contract is missing or malformed.
  • Idempotency lifecycle hardening: explicit `attemptId`-based attempt store with ack-on-delivery / suspend-on-interrupt semantics; `check_generation` releases attempts only after a media URL is confirmed; CLI no longer pretends to have cross-process retry protection.
  • Reference-video continuation: `referenceVideoDuration` is now informational-only — the server probes the authoritative MP4 duration for billing and clipping.
  • Clearer error guidance across tools: terminal states without a media URL are never presented as clean success; failed generations point at auto-refund semantics.

Requires a MeiGen API token (`meigen_sk_...`) for generation tools. See README for setup.

v1.3.3

Choose a tag to compare

@jau123 jau123 released this 23 Jun 13:00

meigen 1.3.3

New models

  • Grok Imagine Quality (grok-image) — xAI high-quality image model, 1K/2K, supports image-to-image (up to 3 reference images).
  • Grok Video 1.5 (grok-video) — xAI, image-to-video only (firstFrame required), native audio, 4–15s, 480p/720p.

Seedance 2.0

  • Surface the mini tier (now the cheapest default) alongside fast/pro.
  • Native 4K on the pro tier (mini/fast cap at 720p).

Fixes

  • list_models now merges per-tier resolutions so Seedance Pro's 4K is no longer hidden, plus a "Resolutions by tier" line.
  • Reference-video continuation is correctly shown as supported via generate_video on Seedance 2.0 (was mislabeled "web only / MCP not supported").
  • Fixed grok-video duration to 4–15s; added a client-side guard for its firstFrame requirement.
  • Upload gateway default domain aligned to gen.meigen.ai (legacy gen.meigen.art/api still works).

v1.3.2 — Windows reference-image path fix

Choose a tag to compare

@jau123 jau123 released this 19 May 04:54

Highlights

  • 🪟 Windows local reference-image paths now detected correctly — when an LLM client (Claude Code, Cursor, etc.) on Windows passes a path like C:/Users/.../photo.jpg (forward-slash, the cross-platform form most clients emit), generate_image now auto-uploads the file as expected. Previously this form fell through to the URL branch and was relayed unchanged to the cloud provider, producing an opaque Unsupported file URI type error. Backslash form (C:\Users\...) already worked and is unchanged.
  • 🛡️ Reference-URL handling robustness updates — small internal refinements; no schema or behavior changes for valid public URLs.

Compatibility

  • No schema changes. No breaking changes. Existing 1.3.1 calls keep working.
  • Plugin / ClawHub bundle / OpenClaw skill all pinned to meigen@1.3.2. If you installed via plugin marketplace, the update arrives the next time the plugin refreshes; if you pinned manually, bump meigen@<version> in your .mcp.json.

Note on the backend

If you don't upgrade immediately, the backend (/api/generate/v2) has its own validation that returns a clear 400 invalid_reference_url instead of letting the request waste API token quota on an unfetchable reference. So old MCP versions are not worse than before — just less ergonomic when handling local Windows paths.

v1.3.1 — Veo 3.1 tiers/durations + Seedance reference-video continuation

Choose a tag to compare

@jau123 jau123 released this 13 May 05:20

Highlights

  • 🎬 Veo 3.1 capability expansion — Google Veo on MeiGen now exposes fast/pro tiers, 4/6/8 second durations (default 4), and 720p / 1080p / 4K resolutions at the same price per tier+duration. Pick the output size you actually want — 4K renders slower (~8 min) but doesn't cost more than 720p.
  • 🎞️ Seedance 2.0 reference-video continuation — new referenceVideo + referenceVideoDuration params. Pass a previous clip's HTTPS URL plus its actual duration, prefix your prompt with "Extend this video with the following plot:", and Seedance produces a semantically coherent continuation. The output is your duration seconds of new content only — concatenation with the reference is up to you (encode locally).
  • 📦 No breaking changes — every new field is optional. Existing 1.3.0 calls keep working unchanged.

Schema additions

generate_video

referenceVideo?: string   // Seedance 2.0 only. Public HTTPS URL (typically a previous generation's videoUrl).
                          // Local paths NOT supported. SSRF-guarded (file://, private IPs, cloud metadata blocked).

referenceVideoDuration?: number  // REQUIRED when referenceVideo is set. Pass the clip's actual duration in seconds.
                                 // Omitting it causes the backend to treat as 0 → undercharged credits + broken continuation.
                                 // Typical range 2–15; schema is .int().positive() per BasS (backend rejects out of range).

Handler validates the pair both directions:

  • referenceVideo set, referenceVideoDuration missing → throws with explicit fix instruction
  • referenceVideoDuration passed alone → throws (catches stale-arg state)
  • referenceVideo points to a local path → throws (HTTPS only)
  • referenceVideo fails SSRF guard → throws with reason

All checks run before the shared API semaphore acquires — fail-fast, no slot waste.

Updated descriptions

  • tier now mentions both seedance-2-0 and veo-3.1 accept fast / pro.
  • duration clarifies: seedance/happyhorse accept any integer in ~3–15s; veo-3.1 accepts exactly 4, 6, or 8 (default 4); other values are rejected by the backend.

Pricing model clarification

Previously the docs said "per-second for seedance/happyhorse and flat-rate for Veo". This was wrong for the new Veo 3.1:

  • Seedance 2.0 / Happyhorse 1.0: per-second pricing (rate × duration, tier/resolution dependent).
  • Veo 3.1: per-generation pricing by tier × duration (resolution doesn't affect cost).
  • Seedance 2.0 with referenceVideo: charged at the With-reference-video rate, with billable_seconds = max(reference_duration + duration, min_billable[duration]). Total cost is often higher than direct generation of the same output length — SERVER_INSTRUCTIONS Phase 2 instructs the model to surface this to the user before submitting.

list_models cost label updated from "per-second pricing" to "variable pricing — see model-comparison for the full schedule".

SERVER_INSTRUCTIONS update

Phase 2 video section rewritten:

  • Veo model line covers tiers, durations, three resolutions at flat-rate-per-tier, and aspect-ratio constraints.
  • Seedance model line now documents the reference-video flow + billing formula.
  • "Video reference NOT supported via MCP" rule (from 1.3.0) reversed — supported on seedance-2-0.
  • New rule: surface the higher reference-video billing to the user before submitting.

Internal

  • MeiGenApiClient.generateVideo() forwards referenceVideo and referenceVideoDuration when present.
  • unsafeReferenceUrlReason (1.3.0's defense-in-depth SSRF helper) is reused for the new video URL — same protection as referenceImages.
  • Removed the pricingPerCall?: unknown placeholder type from extra_config — no consumer, will be reintroduced when we actually render a price schedule.
  • Removed the trailing "Veo 3.1 may override to its fixed 8s" hint from the success message (no longer applicable).

Upgrade Notes

  • Existing 1.3.0 generate_video calls continue to work — no schema breakage.
  • LLMs trained on 1.2.x docs that pass duration: 8 to Veo: still works ✅ (Veo accepts 8). LLMs that pass duration: 5: now rejected by backend (was silently coerced to 8 pre-1.3.0). The new behavior surfaces the error rather than silently changing the output.
  • Plugin marketplace users on Claude Code: /plugin update to pull the new plugin/.mcp.json pin (now meigen@1.3.1).
  • Hermes Agent / Cursor / Codex / Windsurf users via npx -y meigen@latest: nothing to do.

v1.3.0 — Video generation, CLI mode, Hermes support

Choose a tag to compare

@jau123 jau123 released this 11 May 13:17

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 CLI — npx 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 CLI — bin/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_DIR → XDG_PICTURES_DIR → ~/Pictures/meigen fallback chain (and same for MEIGEN_VIDEO_OUTPUT_DIR → XDG_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 meigen@1.2.x in your MCP config: bump to meigen@1.3.0.
  • 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 — GPT Image 2.0 pricing hotfix

Choose a tag to compare

@jau123 jau123 released this 23 Apr 11:15

⚠️ 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 meigen@1.2.10

Or via plugin:

/plugin install meigen@meigen-marketplace

Synced across: npm meigen@1.2.10 • Claude Code plugin marketplace • ClawHub skill creative-toolkit@1.0.26 • ClawHub bundle meigen-ai-design@1.0.5 • wshobson/agents (PR pending).

v1.2.9 — GPT Image 2.0 as default

Choose a tag to compare

@jau123 jau123 released this 22 Apr 11:26

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 meigen@1.2.9
  • 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 meigen@1.2.9

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.