mcpField
O
openclip-ugc-ads

openclip-ugc-ads

github.com/openclip-appMarketing & growth142 installsUpdated 12w ago
Repository

About openclip-ugc-ads

openclip-ugc-ads is a skill for creating short vertical UGC-style ad clips from structured creative briefs through OpenClip. It guides creator selection, asynchronous render polling, and controlled variations for testing ad angles.

Key features

  1. 01Lists team-specific creators
  2. 02Generates clips from presets or structured briefs
  3. 03Polls render jobs for results
  4. 04Reviews previous clip jobs
  5. 05Varies one creative element per test

Use cases

  1. 01Creating a short UGC ad clip
  2. 02Comparing different hooks or creators
  3. 03Finding and reusing a prior creator
  4. 04Checking render status and video output

MCP support

It uses OpenClip's remote MCP server at `https://openclip.app/mcp`. The server provides tools to list creators, generate clips, check job status, and review past jobs.

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/openclip-app/agent-skills --skill openclip-ugc-ads

After installing, type/openclip-ugc-adsin Claude Code to confirm it loaded.

Details

From the project README

OpenClip: UGC ad generation

generate_ugc renders a short vertical UGC-style clip (roughly 7 to 12 seconds) from a creative brief. Free accounts get ONE generation per day. Paid accounts are metered in credits by the seconds rendered.

Renders are heavy. Expect a couple of minutes per clip, not seconds.

Setup (once)

OpenClip is a remote MCP server at https://openclip.app/mcp. Sign in with your OpenClip account when the OAuth prompt appears, there is no API key to copy.

  • Claude Code: claude mcp add --transport http openclip https://openclip.app/mcp, then /mcp to authorize.
  • Claude Desktop / web: Settings, Connectors, "Add custom connector", paste the URL, sign in.
  • Cursor (.cursor/mcp.json): { "mcpServers": { "openclip": { "url": "https://openclip.app/mcp" } } }
  • Header-only clients: mint an MCP token at openclip.app/settings/connect and connect to https://openclip.app/mcp/key with Authorization: Bearer <token>.

Sanity check: call get_account.

The loop

  1. Discover the roster FIRST. list_ugc_creators returns the valid creator and start_frame values for this team: a curated roster plus the team's own saved creators, grouped by niche. Never guess a creator name, pick one from this call.
  2. Generate. generate_ugc(...) with either:
    • brief_name - a server-side preset, the fast path, or
    • brief - an inline object of structured creative fields (character and friends).
  3. Poll. Returns a ugc_job hashid. Poll get_ugc_job_status(ugc_job) every 10 to 15 seconds. queued / rendering are in flight. completed returns video_url plus result_meta (duration, dimensions, fps, seed). failed returns error.
  4. Review past work. list_ugc_jobs lists a team's previous UGC clips, and is how you find a ugc_job id to poll if you lost it.

The brief is structured, not a prompt

This is the thing agents get wrong most. brief is not a prose prompt. It is an object of discrete creative fields (character, and the other fields the API accepts). Writing a paragraph into one field wastes the structure and produces mush.

Write each field as a concrete, physical, filmable detail:

  • Name what is in frame, not how it should feel. "Holding the bottle at chest height, kitchen counter behind" beats "energetic and aspirational vibes".
  • One idea per field. Do not stack three beats into character.
  • Constraints produce better output than adjectives. A specific setting, a specific prop, and a specific action beat "high quality, professional, engaging".

Testing ad angles

When the user wants variations rather than one clip, change ONE variable per render so the comparison means something:

  • Same creator, different hook.
  • Same hook, different creator, when you are testing who lands the message.
  • Same everything, different start_frame, when you are testing the thumbnail moment.

Free accounts get one generation per day, so on a free account, spend it on the single most different angle rather than a near-duplicate. Check get_account before promising a batch.

Rules

  • list_ugc_creators before every first generation in a session. The roster is team-specific and changes.
  • Always poll. Renders take minutes, generate_ugc returns immediately.
  • Clips are short by design, roughly 7 to 12 seconds. Do not promise a 60 second ad.
  • Free tier is ONE generation per day. Say so before the user plans a batch on a free account.
  • result_meta includes the seed. Keep it when the user liked a render and wants a close variant.

Errors

Tool failures come back as a tool result with isError: true and a plain-text message, not an HTTP status. "Not authenticated. Reconnect your OpenClip token." means reconnect or re-mint the token. Validation messages (an unknown creator, a malformed brief) come back as the message text, fix the argument and retry.

Example prompts to actions

  • "Make a UGC ad for my app" - list_ugc_creators, pick a fitting creator, generate_ugc(brief={...}), poll get_ugc_job_status, return video_url.
  • "Give me three angles to test" - one render per angle, one variable changed each time, poll each. Check the daily limit first on a free account.
  • "Use the same girl as last time" - list_ugc_jobs to find the previous job, read its creator, reuse it.
  • "What creators can I use?" - list_ugc_creators, show them grouped by niche.

Related

Clipping real long-form footage into shorts is openclip-clipping. Free trimming, cropping, and compression of the generated clip is openclip-video-editing.

Comments

Markdown supported