Skip to main content
Everything you can do in the Ad Remixer web app — set up a brand, pick a starting ad, generate branded creatives, re-roll and edit them — is also exposed as tools on the GooseWorks MCP server. Point any MCP-aware agent at it and your agent can run the full ad pipeline for you, in your own account, billed to your own credits. The generation itself runs through the same cloud workflow the web app uses. Your agent never renders images locally or calls an image provider directly — it submits a batch, GooseWorks reserves credits and runs the pipeline server-side, and your agent polls for the finished creatives and hands you the links.
This is the same gooseworks MCP server documented in MCP Servers — one connection, one token. That page covers files, chat history, and automations; this page covers the ad-remixing tools on the same server.

Connect

The Ad Remixer tools live on the standard GooseWorks MCP server, so if you’ve already connected it, you’re done — the ad tools are already available. If not:
  • URL: https://mcp.gooseworks.ai/mcp
  • Transport: HTTP (streamable)
  • Auth: Authorization: Bearer <your-api-key>
The fastest path is the CLI, which registers the server for you:
Or wire it up by hand with a user-scoped mcp:access token:
See MCP Servers → Manual setup for how to create the token and rotate/revoke it.
Use a user-scoped token. The MCP resolves your current workspace/organization on every request, so ad tools operate on the right account automatically. Ad data is organization-scoped — every tool accepts an optional target to point at a specific org, but you can omit it to use the token’s default.

The ad skills

You don’t have to memorize the tool sequence. The MCP exposes search_skills and fetch_skill, including two entry recipes for ads:
  • fetch_skill("goose-ads") for static ads, brand research, and campaign analysis.
  • fetch_skill("goose-video") for video-ad projects and local final rendering.
These instructions come from the GooseWorks MCP at run time. A local goose-ads or goose-video skill file is optional and is not required for an MCP-connected client. npx gooseworks install --all can still install local copies and register the MCP for coding agents that support local setup. For a specific video project, use an explicit prompt such as: Use the GooseWorks MCP and call fetch_skill("goose-video") for project <project-id>. Follow the fetched instructions; no local goose-video skill file is required.

Tools

All tools are prefixed mcp__gooseworks__* when your client namespaces them. They fall into a few families.

Brands & brand kit

A brand kit is the reusable source of truth for every remix — logo, colors, fonts, products, audience, and voice. Generation is blocked until a brand’s research is complete.

Templates

The starting image for a remix — one you uploaded, or one from the community.

Generate creatives

The core loop. estimatesubmit → poll get_remix_batch → deliver the links. Defaults mirror the web composer: variants: 1, ratios: ["4:5"], engine: gpt_image_2, quality: medium, preserve_source_styling: true.
  • Ratios: 1:1, 4:5, 9:16
  • Engines: gpt_image_2, nano_banana_2, nano_banana_pro, fal_flux_kontext
  • Quality: low, medium, high (gpt_image_2 only)
Poll get_remix_batch until each creative’s pending count reaches 0 — not current_render_url, which keeps pointing at the prior image during a regenerate. A render is only failed when its status is "failed"; a slow render is not a stuck one, so don’t re-submit (that double-bills). Most images finish in a few minutes.

Plan mode (review before you spend)

Submit with requires_approval: true to compose each creative’s plan and pause — no credits are reserved and nothing renders until you approve.

Layers — split a creative for Figma, Canva, or code

Decompose a finished flat creative into editable transparent-PNG layers — the clean inpainted background plate plus each foreground element (product, text, logo, graphic) as its own layer with a normalized position box. Point your agent at both the GooseWorks MCP and your Figma MCP (or Canva/code) and it can rebuild the ad as real, movable layers with no plugin.
  • To place in Figma: create a frame at your target size, then for each layer paint bottom-to-top by z_index (the base plate is z 0 and fills the frame), positioning each image at box.x*frameW, box.y*frameH sized box.width*frameW × box.height*frameH. Text-kind layers that carry a text string can be created as real Figma text instead of the raster.
  • status values: processing (job started — poll again), complete (layers returned), not_layerized (call with layerize_if_missing: true or use the app’s Split into layers), failed (content-checker or unsplittable — try a different creative).
  • Billing: credits are charged only when the split actually runs; a failed split is never charged. Pass layerize_if_missing: false to fetch existing layers without triggering a new job.

Product photos

Generate clean, branded product photography (studio, lifestyle, on-model) for a product, then approve the ones you like so they enrich the brand kit and can feed the ad-generation flow. Generation runs through the same server-side pipeline the Product Photos studio uses (compose → generate → judge → retry) — your agent never renders images itself.
Photos are not used in ads until you approve them, and archived photos are never used. Generate → poll → approve_product_photo the winners.

Feedback & credits

End-to-end flow

1

Pick or create a brand

Call list_ad_brands, or create_ad_brand with a website_url for a new one. Poll get_brand_kit until researchStatus is complete — generation is blocked until then.
2

Read the brand kit

get_brand_kit gives your agent the products, reference images, palette, and voice the pipeline will use. Don’t research the brand yourself — the backend owns that.
3

Choose a starting ad

search_ad_templates or surprise_me_templates to find a Community ad, remix_community_ad to snapshot one for remixing, or create_user_ad_template to bring your own.
4

Estimate the cost

estimate_remix_batch returns the exact credit cost so you can confirm before spending.
5

Submit

submit_remix_batch with the brand, the templates, and any steering prompt. (Add requires_approval: true to review the plan first via list_ad_approvalsapprove_ad_plan.)
6

Poll and deliver

Poll get_remix_batch until every creative’s pending is 0, then hand back the links — the brand gallery and each creative’s page. Re-roll or edit any of them with regenerate_creative.

Billing

Ad generation is credit-billed through your GooseWorks wallet, exactly like the web app:
  • submit_remix_batch / approve_ad_plan reserve credits up front and error with insufficient_credits if the wallet is short.
  • Only completed images are billed on finalize — failed renders don’t cost credits.
  • Use estimate_remix_batch to preview cost, and get_ad_credits to check the balance.
See Credits & billing and How credits are used for the full model.

Next steps

MCP Servers

Full setup, tokens, and the files / chat / automations tools on the same server.

Creating ads

The web composer — the same generation settings, in the UI.

Brands & brand kit

What the brand kit holds and how research populates it.

CLI

Install the skill catalog and register the MCP in one command.