Tutorials May 4, 2026 12 min read

Generate UGC Video Ads from Claude Desktop: The Official MCP Tutorial

A step-by-step tutorial for installing the @ugccopilot/mcp server in Claude Desktop, Cursor, Cline, and Zed — then generating a finished TikTok-ready video ad in one Claude conversation, with real cost and timing benchmarks.

By Zachary Warren

As of May 2026, you can generate a finished UGC video ad — script, scene image, MP4, captions — without ever leaving Claude Desktop. The mechanism is the official @ugccopilot/mcp server, an MCP (Model Context Protocol) server that exposes 12 tools to any MCP-compatible agent. This is the step-by-step tutorial: install in three minutes, then a real-world walkthrough of generating a TikTok-ready ad in one Claude conversation.

What MCP gets you that copy/paste doesn't

Before MCP, the typical "Claude + UGC Copilot" workflow looked like this: write a brief in Claude, copy the output, paste into UGC Copilot, generate, copy the result back, paste into Claude for refinement, repeat. Five context switches per ad.

With the MCP server installed, Claude calls UGC Copilot directly. You stay in one conversation. Claude reads its own script output, picks an engine, kicks off a render, polls until ready, and returns an MP4 URL. The "tool" abstraction means Claude treats UGC Copilot's API like a built-in capability — no integration code, no manual orchestration. For the conceptual primer on what MCP is and why it matters, see our companion piece What is MCP? Model Context Protocol Explained for Marketers.

What's in the MCP server (12 tools)

The package wraps 12 of UGC Copilot's public REST endpoints. Four are free (rate-limited per IP); eight require an API key.

ToolTierPurposeCost
analyze_trendsFreeTrending products in a niche with viral hook ideas3/day per IP
generate_hooksFree10 scroll-stopping hook variations for a product5/day per IP
generate_persona_previewFreeCreator persona — name, voice, content pillars3/day per IP
generate_script_previewFree3-hook, 3-scene preview script3/day per IP
analyze_marketAPI keyFull market analysis for an industry1 credit
generate_scriptAPI keyFull viral script with platform variations1 credit
generate_imageAPI keyScene image from a visual prompt1 std / 2 hq
render_videoAPI keyAsync render via Sora 2, Veo 3.1, Kling, or Seedance18–130
check_video_statusAPI keySingle-shot status poll0
wait_for_videoAPI keyPolling with backoff up to ~50s0
fetch_videoAPI keyGet the signed MP4 URL for a finished render0
apply_text_overlayAPI keyBurn captions/CTAs onto a video1/call

The free tier alone is enough to run end-to-end product research before you spend a credit: a creator can analyze a niche, get hook variations, see a creator persona, and preview a script — all without an account or API key.

Three-minute installation

1. Get an API key (skip if you only want the free tier)

Sign up at ugccopilot.ai/signup, go to Profile → API Keys, and create a new key. The prefix is ugc_live_. The key is shown once — copy it immediately.

If you don't have an account yet, you can install the MCP server first and use the four free tools without an API key. Add the key later when you're ready to render videos.

2. Edit your Claude Desktop config

The config file lives at:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

If the file doesn't exist, create it. Add the MCP server entry:

{
  "mcpServers": {
    "ugc-copilot": {
      "command": "npx",
      "args": ["-y", "@ugccopilot/mcp@latest"],
      "env": {
        "UGC_COPILOT_API_KEY": "ugc_live_..."
      }
    }
  }
}

If you already have other MCP servers configured, add ugc-copilot as a sibling key under mcpServers. Don't replace what's there.

3. Restart Claude Desktop

Quit fully (⌘Q on macOS) and relaunch. Claude Desktop spawns MCP servers once per launch, so a restart is required after every config change.

To verify: click the tools icon in the message composer. Twelve new tools should appear listed under the ugc-copilot server. If they don't, see the troubleshooting section at the bottom of this guide.

First conversation (free tier, no API key)

Try this exact prompt:

I'm researching skincare products for a TikTok ad campaign. Use the
ugc-copilot tools to (1) analyze trending products in skincare, (2)
generate 10 hook variations for the most interesting one, and (3)
preview a creator persona that would credibly sell it.

Claude calls analyze_trends, then generate_hooks, then generate_persona_preview in sequence. The whole conversation takes 30–45 seconds, costs nothing, and produces enough material to write a brief by hand if you want.

This is also the cheapest way to evaluate whether the MCP server is worth a paid account before you spend a credit.

Generating a finished ad (authenticated)

With an API key set, the full pipeline runs in a single conversation.

Generate a TikTok-ready 8-second ad for a $34 ceramic pour-over coffee
dripper. Audience: home brewing hobbyists, 28-42. Use the "I was today
years old when I learned..." hook formula. Render with Sora 2 standard,
add a caption overlay with the price, and give me the final MP4 URL.

Claude's actual workflow when you submit this brief:

  1. generate_script — produces a full script with hook, scenes, and CTA (1 credit).
  2. generate_image — produces a scene image based on the visual prompt (1 credit).
  3. render_video — submits an async Sora 2 std render, returns an operationName (18 credits).
  4. wait_for_video — polls with backoff, returns when the render finishes (no credits).
  5. apply_text_overlay — burns the price caption onto the rendered MP4 (1 credit).
  6. Claude returns the final URL.

Total cost: 21 credits ≈ $1.47–$2.63 at subscriber add-on rates ($0.07–$0.125 per credit). PAYG one-time packs are priced higher (~$0.16–$0.20 per credit) — same 21 credits run ≈ $3.30–$4.10.
Total wall-clock time: 60–120 seconds, dominated by the Sora 2 render itself.

Letting Claude pick the engine

The four supported engines (Sora 2, Veo 3.1, Kling 3.0, Seedance 2.0) have different strengths and costs. There are two options: tell Claude which engine to use, or let it pick.

If you give Claude a brief without specifying an engine, it picks a reasonable default — usually Seedance 2.0 or Sora 2 std for cost-efficient generation. To get more deliberate engine selection, build the constraints into the brief:

Render this scene with whichever engine is best for fixed-duration
cinematic shots. I want the cost predictable regardless of clip
length, and I'm willing to pay more for quality. Don't use Sora.

Claude picks Veo 3.1 (fixed cost, cinematic, supports the constraints). For deeper engine-selection logic with cost benchmarks, see our Sora 2 vs Veo 3.1 comparison and Seedance 2.0 guide.

Cursor, Cline, and Zed setup

The pattern is identical across MCP-compatible clients — only the config file location changes.

Cursor

Add to .cursor/mcp.json in your project (or to your user-wide settings):

{
  "mcpServers": {
    "ugc-copilot": {
      "command": "npx",
      "args": ["-y", "@ugccopilot/mcp@latest"],
      "env": {
        "UGC_COPILOT_API_KEY": "ugc_live_..."
      }
    }
  }
}

Cline (VS Code) and Continue

Both expose an MCP servers section in their settings UI. Use the same JSON shape — name ugc-copilot, command npx, args ["-y", "@ugccopilot/mcp@latest"], env containing the key.

Zed

Add the server in ~/.config/zed/settings.json under "context_servers". The structure mirrors Claude Desktop's mcpServers.

For deeper Claude Code-specific patterns (skills, multi-step agent flows, automated CI runs), see our companion piece on Building a UGC Pipeline with Claude Code.

Common pitfalls

"My MCP tools don't appear after restart"

Three usual causes. First, syntax error in claude_desktop_config.json — Claude silently ignores invalid JSON. Validate the file with cat ~/Library/Application\ Support/Claude/claude_desktop_config.json | jq .. Second, Node not in PATH for the GUI app — run which npx in Terminal; if you see a path but Claude Desktop still can't spawn the server, replace "command": "npx" with the full path ("command": "/opt/homebrew/bin/npx" on Apple Silicon). Third, network blocked at first run — npx -y @ugccopilot/mcp@latest needs to fetch the package on first launch; if you're behind a corporate proxy, set HTTPS_PROXY in the env block.

"My API key gets a 401"

Either the key is wrong, expired, or the prefix isn't ugc_live_. Open Profile → API Keys, generate a new key, paste it into the config, and restart.

"Claude Desktop is using an old version of the MCP server"

Claude Desktop spawns the server once per launch. After a new version ships, the running session keeps the old one until npx re-resolves. To force a refresh:

rm -rf ~/.npm/_npx
# Then quit Claude Desktop fully and relaunch.

Pinning @latest in the config (as the examples above show) makes npx more aggressive about re-checking on each cold start. To lock to a specific version for stability, replace @latest with the version number — for example, @ugccopilot/mcp@0.1.1.

"Render is stuck pending"

Sora 2 takes 35–90 seconds, Veo takes 60–180. Claude's wait_for_video polls for ~50 seconds before returning a "still pending" status — for longer renders, ask Claude to call check_video_status a few seconds later. If a render genuinely hangs past 5 minutes it usually failed silently; failed renders auto-refund the credits.

Where to take this next

The MCP server is the lowest-friction way to add UGC Copilot to an existing AI workflow. Two natural next steps:

For the broader ecosystem context — which other marketing MCP servers pair well with this one — see The 2026 MCP Server Landscape for Marketing Teams.

Frequently Asked Questions

Do I need a UGC Copilot account to use the MCP server?

Not for the free tier. The four free tools (analyze_trends, generate_hooks, generate_persona_preview, generate_script_preview) work without an API key, rate-limited per IP. Only the eight authenticated tools that include video rendering require an account.

Is the MCP server free to use?

The npm package is free and MIT-licensed. The free tier of UGC Copilot's API requires no payment and runs from the same package. The eight authenticated tools spend credits. Subscriber add-on packs start at $25 / 200 credits ($0.125 per credit) and drop to $0.07 per credit at the 10,000-credit pack. Non-subscriber PAYG one-time packs are $39 / 200 ($0.20 per credit) and $79 / 500 ($0.16 per credit). A typical end-to-end ad runs roughly $1.50–$5 on a std-tier engine and $5–$17 on hq-tier engines like Veo 3.1 hq.

Which Claude model works best with the MCP server?

Any model that supports tool use. We test with Claude Opus 4.7 and Claude Sonnet 4.6; both handle the 12-tool surface area well. Sonnet is faster and cheaper for routine ad generation; Opus is more deliberate at engine-selection reasoning when the brief is ambiguous.

Can I use this with ChatGPT or other non-Claude agents?

MCP is designed as a vendor-neutral protocol. As of May 2026, Claude Desktop, Cursor, Cline, Continue, and Zed support MCP natively. ChatGPT does not currently expose third-party MCP servers; for OpenAI-based agents, use the function-calling API directly instead.

Are my prompts and renders private?

Yes. The MCP server runs locally — it's a thin client that hits UGC Copilot's REST API on your behalf. Prompts don't pass through Anthropic or any third party between Claude and UGC Copilot. The same privacy guarantees that apply to direct API usage apply here.

What if a tool call fails mid-pipeline?

Claude generally retries automatically when a tool call returns an error. If a render fails after credits were deducted, the failure auto-refunds — failed renders are not billed. For longer-running issues (network problems, expired keys), Claude returns the error in plain text and asks how to proceed.

Can I script multi-ad batches from one prompt?

Yes, but be mindful of concurrency caps. On a Pro tier API key (8 in-flight render slots), a batch of 20 ads queues. Claude handles this gracefully — it submits what it can, waits for slots to free, and continues. For large-batch automation, consider Claude Code with a skill file rather than Claude Desktop's conversational interface.

← Back to Blog