Make your UGC by asking Claude for it

Ghostfeed runs an MCP server. Connect Claude, Codex, or ChatGPT once, then create avatars, UGC reaction videos, and slideshows from chat. Setup, every tool, and the prompts to use.

·12 min read
ai ugcmcpclaudeghostfeedautomation

Ghostfeed has an MCP server now. You connect Claude once, and then you make content by asking for it.

I built this because of how I actually use the product. I know exactly what I want, I just do not want to click through four screens to get it. Clone this TikTok, put my avatar in it, make me three versions, tell me what it cost. That is a sentence, not a workflow.

So the MCP server is a remote control over the same dashboard you already use. It is not a second product with its own rules. Same workspaces, same credits, same avatars, same videos in the same gallery. If you make something in chat it shows up in the dashboard, and if you make something in the dashboard your agent can pick it up and keep going.

How to work with it

The agent gets you about 90% of the way. It is not meant to hand you a finished video.

Keep the dashboard open while it runs. The board refreshes itself, so frames, videos, and decks show up as they are made, whether you started them in chat or by hand.

Then finish it yourself in the dashboard. Move the text, swap the one background that is wrong, retime a clip, pick which variant is good. The agent handles the volume: importing clips, rendering the same avatar six times, kicking off eight renders, tracking what finished and what it cost.

1. Connect it

One server, one URL, OAuth in the browser:

https://api.ghostfeed.ai/api/v2/mcp

There are no API keys anywhere. Your client hits the server, gets a 401 that points at the auth metadata, registers itself, and opens a Google sign-in plus a Ghostfeed consent screen where you pick which workspaces it may act in. Tokens are stored by the client and refresh on their own.

Claude Code Claude Code

Add the server:

Terminal
claude mcp add --transport http ghostfeed https://api.ghostfeed.ai/api/v2/mcp

Run /mcp in a session, pick ghostfeed, choose Authenticate.

Sign in with Google, choose the workspace grant, click Allow.

Claude Claude Desktop

Open Settings → Connectors, click Add custom connector, and paste the server URL.

Click Add, then Connect, and finish the sign-in in your browser.

Connectors are account-level, so doing this once on desktop also gets you claude.ai on the web and on your phone.

Codex Codex CLI

Add the server:

Terminal
codex mcp add ghostfeed --url https://api.ghostfeed.ai/api/v2/mcp

Sign in:

Terminal
codex mcp login ghostfeed

OpenAI ChatGPT

Turn on developer mode: Settings → Apps → Advanced settings. Available on Business, Enterprise, and Edu plans. Pro supports read-only connectors.

Go to Settings → Apps → Create and paste the server URL.

Click Scan Tools, complete the sign-in, then Create.

Cursor, Grok, and Grok Build work too, along with anything else speaking MCP over Streamable HTTP. Those are in the quickstart.

Then add the skills

Skills tell your agent the order of operations, where the approval gate is, and which model defaults to use. Without them it guesses.

Install the whole set:

Terminal
npx skills add ghostfeed-ai/skills --skill '*'

Pick your agents at the prompt. Global installs land in ~/.agents/skills/, which Claude Code, Codex, Cursor, and Grok Build all read.

Three ship today: ghostfeed-avatars, ghostfeed-slideshows, and ghostfeed-ugc-reactions. The repo is public at github.com/ghostfeed-ai/skills. No Node? Grab the tarball instead:

Terminal
curl -LsS https://api.github.com/repos/ghostfeed-ai/skills/tarball/main \\ -o ghostfeed-skills.tar.gz

2. UGC reaction videos

Two phases, same as the dashboard. Import a source clip, render your avatar into its first frame, approve the frame, then animate it.

The checkpoint is enforced. Your agent renders the frame, shows it to you, and stops. It will not animate until you say the frame is right, because animating a bad frame wastes the per-second cost.

A prompt that works:

Ask your agent
Import this TikTok as a reaction template, then render Nova into the first frame of it. Show me the frame before you animate anything. https://www.tiktok.com/@someone/video/7614252384826576141

Claude imports the clip, generates the frame, and stops. You look at it. Then:

Ask your agent
Frame looks right. Animate it, clone the motion from the source clip, and give me the link when it renders.

If the face is off, you say so and it redoes just that frame instead of starting over.

There are two families of video generation and they answer different questions.

Clone reproduces the motion from your source clip onto your avatar. This is the one for reaction content, where the whole point is that the movement already works. It takes no prompt and gets its length from the source. one_to_one_standard runs on Kling motion control at 1 credit per second, and one_to_one_clone_premium costs 2.

Prompt generates motion from a description instead of copying a reference clip. This is where storyboard-style work lives now. You still cast the opening frame, because every reaction starts from one: a template, a clip from the inspiration library, or one of your avatar's own photos. The description takes over from there and drives what happens in the shot. seedance_2_0_fast is the default at 1.5 credits per second, and seedance_2_0_mini is the cheap seat at 1. Grok, PixVerse, Kling 2.5 Turbo, and full Seedance 2.0 are all there too. PixVerse is the only one that does audio. Kling runs at 5 or 10 seconds only, Seedance takes 4 to 15, and Grok and PixVerse take 1 to 15. Ask for a length a model does not offer and the request is refused rather than quietly rounded.

Ask your agent
Make me three 8 second prompt-mode clips of Nova at her desk looking exhausted, then reacting to something on her laptop. Use seedance fast. Start each one from a different desk shot of her so the framing changes between clips.

Camera angle comes from the photo you start on, not from the prompt, so varying the shot means varying the source. Ask for different starting frames and the agent goes looking through the avatar's own library for them.

You do not have to memorize any of that. Ask what the modes are and the agent reads the list, with the per-second cost attached, before it spends anything.

Two limits I put in on purpose. Sources over 120 seconds get rejected outright. Sources between 30 and 120 seconds need cropping in the dashboard first, and the agent will hand you a direct link to the crop screen rather than silently charging you for a job that would fail. Full detail on both in the reactions reference.

3. Avatars

Describe the person you want and it generates drafts.

Ask your agent
Make me four avatar drafts: early twenties, South Asian, long dark hair, sitting in a cafe with warm window light. Show me all four.

Drafts are not saved to your library. They cost credits to generate and sit in a drafts list until you approve one, so generating six options and keeping one leaves you with one.

Ask your agent
Keep the second one, name her Nova, and use her for the next reaction video.

Anything you leave out gets randomized, so you can go as loose as "make me someone who looks like a college sophomore" and let it fill in the rest. The avatars reference has the full trait list.

4. Slideshows

There is no "make me a slideshow" tool. The agent builds the deck slide by slide, so it can react to the images it actually finds rather than commit to a plan first.

It sources from Pinterest search, an existing TikTok photo post, your collections, your avatar photos, or a local file you hand it. Then it sets each background, writes each text box, reorders, and captions.

You do not need a link to copy. Describe the deck and it goes and finds the imagery itself:

Ask your agent
Build me a 6 slide deck on why my morning routine changed after I started waking up at 5am. Search Pinterest for the backgrounds, moody and warm, no stock photo energy. Hook on slide 1, payoff on slide 6.

It searches, shows you what it found, and casts slide by slide. If a background is wrong you say so and it swaps that one slide, because nothing was composed up front.

To pull in your own assets rather than Pinterest, name them. Type @ in the dashboard prompt box and you get the same picker the agent reads from, so a mention resolves to a real id instead of a guess:

Ask your agent
Build a 5 slide deck for Rosewater Mist. Use the photos in Summer Skin for the backgrounds, and put Nova in the last slide holding it.

Mentions are how the agent stops guessing. Without one it searches by name and can pick the wrong Summer collection; with one it gets the id, and the tool call is unambiguous.

Then variants:

Ask your agent
Make three variants of that deck with different hooks on slide 1. Keep the rest.

Costs: an empty deck is free, the deck charges 1 credit on its first real edit, every edit after that is free, and each variant is 1 credit. Pinterest searches, reading a social post, and uploads cost nothing.

Studio reference has all thirteen tools.

5. Asking about your own workspace

The agent can read your workspaces, credit balance, ledger, saved avatars, collections, products, templates, and every frame and video on the board, including ones you made by hand in the dashboard.

Ask your agent
What did I spend credits on today, and what is still rendering?
Ask your agent
Show me every reaction frame I have that I never animated.

That second one matters for reuse. Pass any frame's id back to the video tool and it animates without charging you for a new frame. A frame that already has a finished video can be animated again; it starts a fresh render rather than overwriting the old one.

6. Picking models

You can name the model, or you can let it default.

Images, on avatars and on reaction frames, run Gemini 3.1 Flash by default at 1 credit. Flash Lite is half that, Gemini 3 Pro is double, and GPT Image 2 sits alongside at low, medium, and high. Ask for list_image_models and the agent reads the prices before choosing.

Video costs are per second and listed above. list_reaction_video_modes returns all of them with the cost, whether they need a prompt, and whether they support audio.

Slideshows have no model parameter at all, because there is no AI background generation over MCP yet. The agent composes from real images: Pinterest, your collections, your avatar photos, your uploads. If a deck you made in the dashboard has an AI background, the agent can read it, it just cannot make a new one.

7. What it will not do

It cannot delete anything: not an avatar, not a video, not a deck, not a template. Deletion stays in the dashboard.

It cannot animate a frame you have not approved.

It cannot spend silently. Every paid call reports what it cost and what is left, and every charge shows up in your billing history tagged with which agent made it.

It cannot post. Scheduling and publishing are dashboard features.

8. Versioning

Every tool, its arguments, and its response shapes are pinned to one version covering MCP, REST, and the docs. That is 4.6.1 today.

CI checks the surface against the last release on every push. Reworded description is a patch, a new tool is a minor, a removal or rename is a major and needs a changelog entry or the build fails. Old contracts are archived so you can diff two versions. What changed has the history.

There is a REST twin of every tool at https://api.ghostfeed.ai/api/v2 with the same auth and the same shapes, for scripting instead of chatting.

FAQ

Do I need a paid plan?

No. It works on free, you just have fewer credits to spend. Same balance as the dashboard, and on a team plan it is the shared pool.

Does it work with anything other than Claude?

Yes. Codex CLI and ChatGPT developer mode are covered above, and Cursor, Grok, and Grok Build are in the docs. Anything speaking MCP over Streamable HTTP with OAuth will connect. There is nothing Claude-specific in the server.

Is this an API I can build a product on?

There is a REST twin at /api/v2 with the same auth and response shapes, and the contract is versioned and archived. Get in touch if you want to build on it.

What happens if I ask for something it cannot do?

It says so, and where the dashboard can do it, it returns a direct link to the right screen. An uncropped template is the clearest case: instead of charging you for a job that will fail, it hands you the crop URL.

Can it see work I did in the dashboard?

Yes. Templates, avatars, collections, frames, and videos are read from the workspace, not from what the agent created.