Skip to main content
Use the GooseWorks MCP server to load your brand, choose templates, create campaign plans, and generate or edit branded static ads. Your local agent drives the workflow; static image generation runs on GooseWorks’ servers and uses your GooseWorks credits.

Connect

Paste this into your agent — Claude Code, Cursor, Codex, or a chat app like Claude or ChatGPT:
Your agent reads that page and follows it. It asks you before it installs anything, then runs the GooseWorks CLI with --all (it sets up every coding agent on your machine at once), opens a browser for Google sign-in, checks the install, and tells you to restart it so the GooseWorks tools load. After the restart it offers to set up your company. If your agent cannot run terminal commands (claude.ai, ChatGPT), it gives you the MCP connector address instead. The page only ever runs npx gooseworks@latest …. It writes your agent’s skills folder, your agent’s MCP config (for Cursor that is the global Cursor MCP config, plus the project’s .cursor/mcp.json if the folder has one), and ~/.gooseworks/credentials.json. The MCP config entries contain your sign-in token. It writes no other files. Installing is free; some skills spend credits when they run. The check at the end also reports whether ffmpeg and a browser are present; those only matter for rendering video ads on your machine and do not block the install. Already connected through Claude, ChatGPT, or another MCP client? Use that connection. You do not need a second server or a locally installed skill file. For manual keys and OAuth, see MCP setup.

The ad skills

Ask your agent to find the goose-ads skill with catalog_search(type: "skill"), then load its instructions with catalog_fetch(type: "skill", slug: "goose-ads"). To make a video ad, load goose-video instead. Your own coding agent (Claude Code, Codex or Cursor) makes the video on your machine with goose-video-local, which needs ffmpeg, ffprobe and Node 18+, plus Playwright Chromium for phone-screen formats. In ChatGPT, claude.ai or Cowork, the agent hands the project to the GooseWorks coworker with goose_run_task, which makes the video (formats without a phone screen only), and you still approve it once in your chat. To make a video project you started in the app, load goose-video-local directly. See Video ads. The skills provide instructions. The MCP tools perform account operations. Having instructions alone does not establish that the MCP connection is working; check with account_whoami first.

Tools

These are the canonical names. Clients may add a namespace such as mcp__gooseworks__. See the generated tool reference for the broader catalog and inspect your connection’s tool schemas for current parameters.

Brands and brand kit

Complete required onboarding and brand research before generating. Use the existing brand when one is already available; retrying a failed request should not create another brand.

Templates

Use ads_template_read to search and inspect source templates. Use ads_template_create to register an image you have the right to use and ads_template_update to manage your own templates.

Generate creatives

Specify ratios explicitly. Omitting ratios defaults to 1:1, 4:5, and 9:16: three images per variant. To request three square images, use three templates, one variant each, and only 1:1. For example, quote this request first:
Show the returned quote. After the user approves, submit the same request with dry_run: false and mode: "generate". Do not change its sources, variants, or ratios after quoting without explaining the new cost. Poll job_get until the batch’s creatives have no pending renders. A previous image URL may remain visible during regeneration, so it is not a completion signal. A slow job is not a failed job; resubmitting can create duplicate work and charges.

Plan mode: review before you spend

For standalone creative work, submit ads_generate with mode: "plan". This composes the plans without reserving generation credits.
  1. Poll ads_creative_read with view: "approvals" and the brand and batch IDs until the plans are ready.
  2. Show the user the actual prompts, reference images, quality, and ratios.
  3. Use ads_approval_decide to revise or edit the plan if requested.
  4. After the user’s approval in the chat, call ads_approval_decide with decision: "approve" and their words as user_quote. This reserves credits and starts generation, and saves their words with each approved creative.
  5. Poll the returned generation batches with job_get.
Paid approval needs a workspace resolved in the brand’s organization. If the tool returns agent_required, check the connected account and its default workspace before retrying.

Campaign planning

A GooseWorks campaign is a saved plan with a brief, concepts, and linked creatives. Creating it does not create or launch a Meta advertising campaign. request_campaign_generation does not start image generation or spend credits. It returns the plans’ batch IDs and what generating them will cost in credits. Tell the user what will be made and the cost, and wait for their explicit yes in the chat. Then, once the plans have finished composing (ads_creative_read with view: "approvals"), call ads_approval_decide with decision: "approve" and the user’s words as user_quote for each batch. Editing the campaign in between discards those plans. Approval happens in the chat; the campaign page in the app is only a place to look. Do not claim images have started just because batch IDs were returned. Archiving removes the campaign from the list and makes it read-only. Its brief history, concepts and creatives are kept; the connector cannot hard-delete a campaign. The connector also has generic creative approval tools, as described above. Campaign handoff instructions and available per-concept tools may vary by deployed version; use the current tool result rather than promising a fully local campaign workflow in every client.

Publishing to Meta

Preparing a GooseWorks campaign or generating its creatives does not publish ads to Meta. Meta account connection and permissions are separate. The coworker can prepare a supported Meta push, but execution requires human approval in the product; activating paused ads requires a separate GO LIVE confirmation. The public MCP connector does not expose direct Meta execution or activation tools.

Layers

Use the layerize action of ads_creative_edit to request editable layers from a finished creative. Follow the returned job with job_get and deliver the resulting files. Layer generation can use credits.

Product photos

Use photos_generate to quote or generate product photography, photos_read to inspect results, and photos_update to approve or archive them. Approving a product photo makes it available to the brand kit; it is different from approving a plan to start paid ad generation.

Public data: creators, social, competitors

Use catalog_search and catalog_fetch to find the relevant research instructions. data_call_provider and data_post_provider call supported managed data endpoints; GooseWorks supplies the provider credential. These calls can use credits. Do not put your own provider secrets into their arguments.

Billing

Check your current wallet through account_whoami or npx gooseworks credits. Starter credits depend on the signup path and existing account state.
  • Quoting and composing a creative plan do not reserve generation credits.
  • Direct generation or an approval decision can reserve credits.
  • Generation is billed on completed outputs; inspect failed-job and settlement results before retrying.
  • Editing existing creatives can incur another charge.

Next steps