Popcraft

Generate AI video, images, music and sound effects from any agent with Seedance 2.5, Google Omni, Kling 3.0, Nano Banana Pro, GPT Image 2.5 and 20+ models.

Community: Submitted by a user or imported; check the owner before granting accessOnlineNo sign-inGlobalFreeRead-only

What it can do

  • Popcraft Balance: Get the user's available Popcraft credits and current plan. For transaction history use `popcraft_transactions` (coming soon).
  • Popcraft Models Explore: Browse Popcraft AI models — GPT Image 2, Seedream, Nano Banana, Midjourney, Seedance 2.0, Veo, Kling, ElevenLabs and more. Every row carries `reference_limits` ({image,video,a
  • Popcraft Generate Image: STOP FIRST if the ask is a YouTube/Instagram THUMBNAIL, a video COVER or packaging art, a UGC or product AD, or any other multi-step branded production: call `popcraft_get_wor

What data it sees

Do you need an account

No: the server works without sign-in

Generate AI video, images, music and sound effects from any agent with Seedance 2.5, Google Omni, Kling 3.0, Nano Banana Pro, GPT Image 2.5 and 20+ models. OAuth sign-in, no API key, 100 free credits.

How to connect

How to connect Popcraft to Claude

The server address to paste into Claude settings:

https://popcraft--leoeric13.run.tools

  1. Open Claude (claude.ai or the desktop app).
  2. Go to Settings → Connectors.
  3. Click Add custom connector.
  4. Paste the server address copied below into Remote MCP server URL and click Add.
  5. In a chat, click + → Connectors and switch the new connector on.

Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.

Authorization

After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.

How to connect Popcraft to ChatGPT

The server address to paste into ChatGPT settings:

https://popcraft--leoeric13.run.tools

  1. Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
  2. Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
  3. Open Settings → Connectors and click Create.
  4. Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
  5. Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
  6. In a new chat open + → Apps/Connectors and enable the connector.

OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.

Authorization

On first use ChatGPT opens the service's sign-in window. Sign in and approve access.

How to connect Popcraft to Cursor

The server address to paste into Cursor settings:

https://popcraft--leoeric13.run.tools

Fastest: click Open in Cursor below and confirm the prompt.

Manually:

  1. In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
  2. Paste the JSON copied below into ~/.cursor/mcp.json (per project: .cursor/mcp.json in the repo root).
  3. Save the file. The server appears in the MCP list; authorize it there if asked.

Authorization

If the service needs sign-in, an authorize button appears next to the server in the MCP list.

Server tool list (27)

Raw names from tools/list. Only developers need these.

popcraft_balanceGet the user's available Popcraft credits and current plan. For transaction history use `popcraft_transactions` (coming soon).
popcraft_models_exploreBrowse Popcraft AI models — GPT Image 2, Seedream, Nano Banana, Midjourney, Seedance 2.0, Veo, Kling, ElevenLabs and more. Every row carries `reference_limits` ({image,video,audio}), `modes`, and `credit_cost_unit`. HEED `credit_cost_unit`: on "per_second" rows (every video, audio and avatar model) `creditCost` is a RATE PER SECOND of output, NOT the price of one generation — a 1-credit voice model bills ~15 for a 15-second read, a 20-credit video model ~300 for a 15-second clip. NEVER quote `creditCost` to the user as the cost; call the matching generate tool with `get_cost:true` for the real total. Rows with `real_person_verification: true` (Seedance 2.0 family) auto-verify reference media for real faces before generating — if the user's reference shows a real person and you recommend such a model, mention that verification step. `action:"list"` (default) lists models, optionally filtered by `type` (video/image/audio/avatar/text) and/or a `query` substring match on name/id. `action:"get"` with `model_id` returns one model's full capabilities — input modalities, generation modes, aspect ratios/resolutions/durations, reference limits, and the per-model reference-input envelope (`video_input`/`image_input`/`audio_input`: max size/duration/dimensions/pixels/fps and accepted formats). Consult these BEFORE attaching `medias` to `popcraft_generate_image`/`popcraft_generate_video`, which validate the reference count, media type, size and format against the model before charging. `action:"recommend"` returns the CURATED recommended set (admin-picked per media type), annotated for the calling user's plan — rows carry `requires_upgrade: true` when a pro-tier model is outside the user's free plan. Unsure which model to use? Call recommend first and pick from it (prefer rows without `requires_upgrade`).
popcraft_generate_imageSTOP FIRST if the ask is a YouTube/Instagram THUMBNAIL, a video COVER or packaging art, a UGC or product AD, or any other multi-step branded production: call `popcraft_get_workflow_instructions` and follow the matching workflow instead of calling this tool directly — it owns the concept frameworks, prompt structure, identity locks and QA that a one-shot prompt misses. Everything else (a plain image, an illustration, a single reference-driven render) belongs here — call it directly, no workflow needed — EXCEPT when the target model advertises `prompt_guide_workflow` in popcraft_models_explore (GPT Image 2.5 / gpt-image-2-5 and gpt-image-2-5-fast → "gpt-image-25-prompting"): for any directed job on such a model (an EDIT that must preserve a face/product/layout, reference images, exact in-frame text, a transparent cutout, or an "expand/optimize my prompt" ask) load that workflow first. Generate images with Popcraft — GPT Image 2, Seedream, Nano Banana, Midjourney and more. Defaults: `aspect_ratio` "1:1", `resolution` model-default, `count` 1 (must be 1, 2, or 4 — the Popcraft pricing tiers). Pass `medias` (GCS urls from `popcraft_media_import_url` or a prior `popcraft_generate_image`/`popcraft_job_display` result) with `role:"reference"` to condition on a reference image (style/composition/subject transfer) — omit `medias` for pure text-to-image. Pick `model` via `popcraft_models_explore` first if unsure — references are validated against the model before charging (count, media type, size, format), so check its `reference_limits`/`image_input` to avoid a rejected call. Set `get_cost:true` to preview the exact credit cost WITHOUT submitting a job — always do this before a first-time or expensive generation so the user can confirm. Local files attached in chat cannot be read by this remote server — use `popcraft_media_upload_widget` (or `popcraft_media_upload`) instead of asking for attachments. If a result carries `recovery_tool`, call that tool immediately; do not expl
popcraft_generate_videoSTOP FIRST if the ask is a UGC-style ad, a creator or product ad, a TikTok/Reels/Shorts vertical ad, or any other multi-step branded production: call `popcraft_get_workflow_instructions` and follow the matching workflow instead of calling this tool directly — it owns the storyboard, reference discipline, cost preview and QA that a one-shot prompt misses. Everything else (a plain clip, animating one image, a single reference-driven shot) belongs here — call it directly, no workflow needed — EXCEPT when the target model advertises `prompt_guide_workflow` in popcraft_models_explore (Hailuo 3 / minimax-h3 → "h3-prompting"): for any directed job on such a model (references, dialogue or singing, timed shot cuts, first/last-frame, or an "expand/optimize my prompt" ask) load that workflow first and write the prompt in its structured format. Generate video with Popcraft — Seedance 2.0, Veo, Kling and more — from a text prompt, optionally driven by reference images/video/audio. Defaults: `aspect_ratio` "9:16", `duration` 5s (max 60), `count` 1 (must be 1, 2, or 4 — the Popcraft pricing tiers), `resolution` model-default. Pass `medias` with role `start_image`/`end_image` for a first-last-frame video, role `image` for reference-to-video (style/subject), role `video` to extend/continue an existing clip (only some models support video-to-video — check `popcraft_models_explore` capabilities first), or role `audio` (mp3/wav) to drive the video with a soundtrack or spoken line — dialogue for lip-sync, music the motion should follow (audio-input models only, e.g. the Seedance 2.0 family; must be paired with at least one image/video reference, and mind `audio_input` duration limits). Omit `medias` for pure text-to-video. When sending SEVERAL references, bind roles inside the prompt with the model's native tokens from `popcraft_models_explore` `reference_prompt_tokens` — e.g. Seedance family "Image 1"/"Video 1"/"Audio 1", Hailuo 3 (minimax-h3) <Picture 1>/<Video 1>/<Audio 1> — numbered
popcraft_upgrade_videoRender the 1080p final from a Seedance 2.5 DRAFT — the second and last step of draft mode. Pass the `generation_id` returned by popcraft_generate_video when it was called with `draft: true` (the result carries it as `draft_generation_id`). This does NOT re-roll the clip: it replays the draft's own prompt, references, seed, duration, aspect ratio and audio setting at 1080p, so the user gets exactly the video they approved, larger. Billed as a normal 1080p job on top of what the draft already cost — draft + final together run ~1.2× a straight 1080p render, so only take this step once the user has SEEN and approved the preview. The draft id is valid 7 days; after that the upgrade is refused and the clip has to be regenerated from scratch. Calling this twice on the same draft is safe — the second call returns the first upgrade and charges nothing. Set `get_cost: true` to quote the 1080p price WITHOUT submitting. On success an interactive result card is shown to the user and refreshes itself — do NOT poll; call `popcraft_job_display` at most once, and only if no card rendered or the user asks later.
popcraft_generate_audioSTOP FIRST if the ask is a VOICEOVER, narration, an ad read, an audiobook or podcast segment, character lines, or a multi-line script — or if a generated voice came back sounding robotic, flat or rushed: call `popcraft_get_workflow_instructions` { workflow: "voiceover" } and follow it instead of calling this tool directly. It owns the voice lock, the words-per-second budget and the ElevenLabs v3 performance tags ([laughs], [whispers], [sighs]) that are the ONLY emotion control on this path — a one-shot prompt sounds like TTS. One short line, a sound effect or a music bed belongs here — call it directly, no workflow needed. Generate audio with Popcraft — voices, sound effects, and music — from a text prompt: speech (`kind:"tts"`, default), sound effects (`kind:"sfx"`), or music/BGM (`kind:"music"`). `kind:"tts"` REQUIRES `voice_id` (from `popcraft_list_voices`) — there is no default voice and a call without it is rejected — EXCEPT on `model:"seed-audio"`, where omitting `voice_id` means AUTO voice (the engine casts a fitting voice from the text) and `voice_description` designs one in natural language ("低沉沙哑的中年男声", "warm young female voice, brisk"). seed-audio's voice is NOT deterministic across calls — for any multi-take script pin a `voice_id` or use `model:"seed-tts"` (native zh/Asian-language preset voices, `provider:"seed"` in popcraft_list_voices, directed via free-text `instruction` — not spoken, not billed). Seed voices only work on seed models and ElevenLabs voices only on ElevenLabs models. ElevenLabs TTS adds three delivery controls: `speech_rate` (0.5–2.0, default 1; it also shortens the billed length, since speech is charged per second), `emotion` (one of neutral, happy, sad, angry, excited, calm, nervous, frustrated, whispers, cheerful — applies to the whole take), and `stability` (0–1, default 0.5: LOW makes the voice expressive and obedient to inline v3 tags like [laughs] or [whispers], HIGH makes it consistent but largely deaf to them — lower it when
popcraft_job_displayCheck the status of a Popcraft job returned by `popcraft_generate_image` / `popcraft_generate_video` / `popcraft_generate_audio` (or any `job_id` from `popcraft_show_generations`). Returns `in_progress`, `completed` (with result URLs — render/display these to the user), or `failed` (with an error message). The result card rendered by this tool (and by the generate tools) refreshes itself automatically — do NOT call this repeatedly in a loop. Call it at most once per job: when the user asks about a job, or as a plain-text fallback in clients that do not render cards (there, wait for the user to ask again rather than polling).
popcraft_job_statusWidget-internal job status poll — the generation result card calls this itself to refresh. Do not call it yourself: use popcraft_job_display to show a job, and never poll in a loop.
popcraft_show_generationsList the current user's recent Popcraft generation jobs (image/video/audio), most recent first. Optionally filter by `type` and cap the count with `limit` (default 20, max 50). Use this to find a `job_id` from an earlier session, or to show the user their generation history — each item carries its full original params (model, aspect_ratio, prompt, credits) and result URLs, so a past result can be reused directly: pass its URL as a `medias[].value` in a new `popcraft_generate_*` call. Call it when the user asks to browse history; do NOT call it repeatedly as a post-generation poll step (the result card already live-updates). For a single job's live status use `popcraft_job_display`.
popcraft_show_mediasBrowse the current user's saved Popcraft media library — both uploaded/imported media and saved generation outputs — most recent first. Filter by `type` (image/video/audio) and/or `source` ("uploaded" vs "generated"), and page with `limit` (default 20, max 50) + `offset`. Each item carries a `url` — reuse any media directly by passing that `url` as a `medias[].value` in a `popcraft_generate_image`/`popcraft_generate_video` call (e.g. as a style/subject reference, or a start/end frame). Use this to find media the user already has rather than asking them to re-upload. For the history of generation JOBS (with status + job ids) use `popcraft_show_generations`; this tool lists the persisted asset LIBRARY. Personal library only — workspace/shared assets are not included.
popcraft_media_import_urlMirror a web media URL (image/video/audio) into Popcraft-owned GCS storage and return a `media_id`. Use this whenever a generation needs to reference media that lives outside Popcraft — e.g. a URL the user pasted, a link from search results, or an asset from another tool. The returned `media_id` is a stable GCS https URL: pass it as a `medias[].value` entry to `popcraft_generate_image` / `popcraft_generate_video` / `popcraft_generate_audio`. A `media_id` Popcraft already issued passes through unchanged — no need to re-import one you already have; any other URL (including a third-party storage.googleapis.com one) is fetched and re-hosted. Blocked for private/internal network addresses (SSRF protection). If the media is a LOCAL file with no public URL, use `popcraft_media_upload_inline` instead — do not ask the user to host it somewhere first.
popcraft_media_uploadGet upload URLs for a local image/video/audio file that has no public URL to hand to `popcraft_media_import_url`. THIS IS THE TOOL FOR VIDEO and for anything over 20 MB. Returns a `proxy_upload_url` on Popcraft's OWN host (PUT the bytes there — total file size up to the per-type cap: video 500 MB, image 30 MB, audio 50 MB; each individual REQUEST is capped at 28 MB by the transport, so files over 28 MB use the chunked recipe B — same URL, same total cap) and an `upload_url` for a direct PUT to storage.googleapis.com (fewer hops, but a different host that sandboxed clients often cannot reach). The result text contains ready-to-run shell recipes including the chunked one for large files — RUN one of them rather than reimplementing the upload. Running a shell command also keeps the file bytes out of your context, which is why this beats `popcraft_media_upload_inline` for video: that tool needs the whole file base64-encoded in its arguments, so it is only practical for small files. CAUTION on platform-mediated clients (e.g. claude.ai connectors): tool calls are made from the platform's servers, so this call succeeding does NOT prove your shell can reach Popcraft — run the 5-second egress probe in recipe 0 first. If your shell's egress is blocked: prefer asking the user for any shareable link to the file (Drive/Dropbox/etc) and `popcraft_media_import_url` (server-side fetch, immune to client egress blocks); if no link exists, open `popcraft_media_upload_widget` when the client renders widgets. After the upload, call `popcraft_media_confirm` with the returned `media_id` to verify it landed, then pass that `media_id` as a `medias[].value` for `popcraft_generate_image` / `popcraft_generate_video` / `popcraft_generate_audio`. If you have no shell and no network at all, fall back to `popcraft_media_upload_inline` — but never tell the user to upload the file on the website instead.
popcraft_media_confirmVerify a file PUT to a `popcraft_media_upload` `upload_url` actually landed in GCS before using its `media_id` elsewhere. Checks the object exists and is non-empty.
popcraft_media_upload_inlineUpload a SMALL local file (icon, thumbnail, screenshot, short audio clip) by sending its bytes as base64 in this call — the bytes travel over this MCP connection, so it needs NO access to any other host and no shell. Returns a `media_id` that is ready immediately — no `popcraft_media_confirm` step — to pass as a `medias[].value` for `popcraft_generate_image` / `popcraft_generate_video` / `popcraft_generate_audio`. NOT FOR VIDEO: the base64 payload goes in this tool's ARGUMENTS, so you must generate every character of it, and even a 1 MB file is roughly 1.4 million characters. Practical ceiling is a few hundred KB; the hard limit is 20 MB. For video, or any file you would not want to type out in full, use `popcraft_media_upload` and RUN one of the shell recipes it returns — that streams the file from disk and never puts the bytes in your context. Never tell the user to upload a file through the website instead.
popcraft_media_upload_widgetOpen an interactive file-picker widget for the user to upload an image/video/audio file directly into Popcraft — use this instead of `popcraft_media_upload` when the client can render MCP Apps widgets and the user should pick/drag a file themselves, or when your shell's egress is blocked (sandboxed client) so the upload recipes cannot run. BEFORE opening it, check the one zero-click alternative: if the file exists anywhere online (Google Drive, Dropbox, any share link), ask the user for the link and use `popcraft_media_import_url` instead — Popcraft fetches it server-side, so client egress does not matter and the user never has to click anything. The widget uploads from the user's BROWSER, so it works even when both your shell and the user's machine cannot PUT to Popcraft directly. It drives the upload end-to-end (signed URL, PUT, confirm) and, once confirmed, hands the resulting `media_id` back as the next user message so you can use it as a `medias[].value` for `popcraft_generate_image` / `popcraft_generate_video` / `popcraft_generate_audio`. Pass `type` and a specific `label` naming the exact file you expect.
popcraft_show_plans_and_creditsShow the user their current credit balance and plan with live plan/credit-pack pricing and direct purchase links — use this as the recovery step after a `popcraft_generate_*` call fails with insufficient credits, or whenever the user asks about pricing/plans/credits. Pass `intent:"topup"` (out of credits / buy more) or `intent:"upgrade"` (plan change / model locked) so the response is ordered for that purchase path. The returned text is ready-made, user-facing copy whose Markdown links point at the exact purchase pages — relay it verbatim (do NOT summarize, reorder, or drop the links; in widget-capable clients you may add that the pricing card above shows the same options).
popcraft_effects_showBrowse Popcraft's curated video effects (特效) — cinematic camera moves, VFX, and viral looks, each defined by a reference video + recipe prompt — plus the user's own saved effects. Returns effect ids, names, categories, preview videos, and the full recipe. TO APPLY AN EFFECT: call `popcraft_generate_video` with `model` = the effect's `default_model_id`, a `medias` entry `{value: reference_video_url, role: "video"}`, and a prompt that combines the effect's `prompt` with the user's subject (add the user's start image as role "start_image" or "image" if they provided one). Optionally filter by `category` or a `query` substring match on the name.
popcraft_list_voicesList the text-to-speech voices available for `popcraft_generate_audio` (kind:"tts") — each with a playable preview sample. `provider:"elevenlabs"` (default) lists the ElevenLabs library; `provider:"seed"` lists the Seed 豆包语音 speakers (native Chinese + Asian-language voices for `model:"seed-tts"`) — a voice only works on its own provider's models. `model:"seed-audio"` needs no voice at all (auto/described voice). Optionally filter by `gender` or `language`, or cap the count with `limit`. In widget-capable clients an interactive picker is shown where the user can listen to samples and pick a voice; the picked `voice_id` comes back as the next user message. In text-only clients, relay the returned list (it carries preview links) and let the user choose. Pass the chosen id as `voice_id` to `popcraft_generate_audio`. Call this once per voice-selection conversation — do not re-list unless the user asks for different filters.
popcraft_show_elementsBrowse the user's reusable Popcraft Elements — saved characters, objects, backgrounds, and styles, each backed by a reference image. TO USE AN ELEMENT IN A GENERATION: pass its `image_url` as a `medias[].value` entry — role `"reference"` for `popcraft_generate_image` (subject/style transfer), role `"image"` (or `"start_image"`) for `popcraft_generate_video` — and mention the element by name in the prompt. Optionally filter by `type` (character/object/background/style) or a `search` substring on the name. In widget-capable clients an interactive grid is shown; a picked element comes back as the next user message. Call it when the user asks about their elements/characters or wants consistent subjects across generations.
popcraft_upscale_imageUpscale and enhance an existing image to 2x or 4x with Topaz — use when the user asks to upscale, enhance, sharpen, or increase the resolution of an image. Pass the source image as a GCS URL (`image_url` from a prior generation result or `popcraft_media_import_url`) plus its `width` and `height` in pixels — the caller supplies them; the server does not infer them. `mode` picks the Topaz model: "standard-mode" (default, general photos/faces), "face-recovery-mode" (degraded portraits), "art-and-anime" (illustrations/logos), "cgi-mode" (3D renders), "text-and-shapes" (screenshots/documents), "creative-mode" (re-imagine). This tool does not use prompt or count. Set `get_cost:true` to preflight the credit cost WITHOUT submitting. On success, an interactive result card is shown and refreshes itself automatically — do NOT poll; call `popcraft_job_display` at most once if no card is visible. The result includes `project` — the Popcraft project the output was filed into; when the user did not pass project_id/project_name, mention it briefly (e.g. "saved to <project title>").
popcraft_upscale_videoUpscale and enhance an existing video to 2x or 4x with Topaz — use when the user asks to upscale, enhance, sharpen, denoise, or convert a video to higher resolution. Pass the source as a GCS URL (`video_url` from a prior generation result or `popcraft_media_import_url`) plus its `width`, `height` (pixels) and `duration` (seconds) — the caller supplies them; the server does not infer them. `mode` picks the Topaz model: "live-action" (default, real footage), "detail", "sharpen", "theia-detail" (fine detail), "cgi" (3D renders). `fps` above 30 roughly doubles the cost. This tool does not use prompt or count. Set `get_cost:true` to preflight the credit cost WITHOUT submitting — video upscales are expensive, so preview first unless the user already confirmed. On success, an interactive result card is shown and refreshes itself automatically — do NOT poll; call `popcraft_job_display` at most once if no card is visible. The result includes `project` — the Popcraft project the output was filed into; when the user did not pass project_id/project_name, mention it briefly (e.g. "saved to <project title>").
popcraft_generate_3dGenerate a 3D mesh (GLB) with Tripo3D from a reference image (image-to-3D) or a text prompt (text-to-3D). Use when the user wants a 3D model, mesh, game asset, printable object, VTuber/character base, or "turn this picture into 3D". Pass `image_url` (a GCS url from `popcraft_media_import_url`, `popcraft_media_upload`, or a prior `popcraft_generate_image` result) for image-to-3D — a single clean subject on a plain background, front or 3/4 view, works best; for a character use an A-pose/T-pose front view. Omit `image_url` and pass `prompt` for text-to-3D. Defaults: `model_version` "tripo-v2.5" (best quality/cost), `texture` true, `pbr` true, `quad` false (triangles — set true for a quad mesh that is easier to edit/rig in Blender; Tripo then returns FBX), `geometry_quality`/`texture_quality` "standard" ("detailed" costs more). `smart_low_poly` produces a game-ready low-poly mesh. `style` applies a Tripo preset (e.g. "person:person2cartoon", "object:clay", "object:steampunk") — list them via `popcraft_models_explore` with `type:"3d"`. Set `get_cost:true` to preflight the exact credit cost WITHOUT submitting — always do this the first time so the user can confirm. Generation takes ~1–3 minutes. On success an interactive result card is shown and refreshes itself — do NOT poll in a loop; call `popcraft_job_display` at most once if no card is visible. The finished result URL is a downloadable GLB (or FBX when quad=true) that also appears on the Popcraft /model-3d workspace, where it can be refined further with `popcraft_postprocess_3d` (retopology, retexture, stylize, mesh completion, format conversion). The result includes `project` — mention where it was saved when the user did not pick a project.
popcraft_postprocess_3dRun a Tripo3D post-process on an existing Popcraft 3D model: "convert_model" (export FBX/OBJ/STL/USDZ/GLTF/3MF, optional quad + face_limit + texture_size — the cheap way to get a Blender-friendly FBX (fbx_preset "blender") or a decimated mesh; the source is already a GLB, so use FBX/GLTF rather than GLB as the target), "highpoly_to_lowpoly" (retopologize to a low-poly game/rig-ready mesh, params quad/face_limit/bake), "refine_model" (upgrade a draft to higher detail), "texture_model" (re-texture with texture_prompt / style_image_url, texture_quality, pbr), "stylize_model" (style "lego" | "voxel" | "voronoi", block_size 32–128), "mesh_segmentation" (split into named parts), "mesh_completion" (fill holes; optional part_names). `source` is the `job_id` returned by `popcraft_generate_3d` / `popcraft_job_display`, or a 3D asset id from the /model-3d workspace — only Tripo-generated models can be post-processed. `params` is the per-operation object described above (omit for defaults). Set `get_cost:true` first to preflight the credit cost WITHOUT submitting — refine/stylize/completion/lowpoly are variable-cost and reconcile to Tripo's actual usage on completion. On success an interactive result card is shown and refreshes itself — do NOT poll; call `popcraft_job_display` at most once if no card is visible. The output is a new 3D asset (lineage-linked to the source) whose URL you can download or import into Blender.
popcraft_transactionsList the user's recent credit transactions (spend/refund/grant), newest first — use when the user asks where their credits went, for a spending history, or to verify a charge/refund. For the current balance use `popcraft_balance`; for plans and top-ups use `popcraft_show_plans_and_credits`.
popcraft_projectsList or create the user's Popcraft projects — the folders their generations are organized into. `action:"list"` (default) returns the user's projects (id, title, asset count, which one is currently active). `action:"create"` with a `title` creates a new project and returns its `project_id`. Generations are automatically filed into the user's active/last-used project; to file into a specific one instead, pass its `project_id` (from here) — or a `project_name` — to `popcraft_generate_image`/`popcraft_generate_video`/`popcraft_generate_audio` (a `project_name` that doesn't exist yet is created automatically). Use this tool when the user asks to see, organize into, or start a new project.
popcraft_get_workflow_instructionsDiscover and load Popcraft's multi-step production workflows — each a bundled instruction set that orchestrates the popcraft_* tools into a finished deliverable. Call with NO argument to list available workflows and their triggers. Call with { workflow } to load that workflow's full instructions plus the list of reference files readable via popcraft_get_workflow_bundle_file. Load the matching workflow BEFORE calling popcraft_generate_image, popcraft_generate_video or popcraft_generate_audio directly whenever the user asks Popcraft for: a UGC-style product or creator ad, a TikTok/Reels/Shorts vertical ad, a minimalist / Apple-style typography-led product ad, a YouTube or Instagram thumbnail, video cover, or MrBeast-style packaging, a voiceover / narration / ad read / audiobook or character lines — or when a generated voice came back sounding robotic, flat or rushed — or any other multi-step branded production. ALSO load before any Hailuo 3 (minimax-h3) video job that is more than a casual one-liner — reference-driven, dialogue/singing, timed shot cuts, first/last-frame, or "optimize my prompt for Hailuo/H3" — the "h3-prompting" workflow carries the official structured prompt format the model was trained on. The workflow owns the production recipe — model choices, reference discipline, credit-cost preview, and QA.
popcraft_get_workflow_bundle_fileRead one bundled reference file from a Popcraft workflow (paths come from popcraft_get_workflow_instructions). Call it when the loaded workflow instructions tell you to load a reference module, e.g. { workflow: "ugc-ad", path: "references/board-design.md" }.