Connect an AI client to the UGCFans MCP server
UGCFans runs a Model Context Protocol server. An AI assistant connected to it photographs a website, makes a launch film, finishes clips and reads a library, and with credits it makes images, video and UGC ads. Every call acts on one UGCFans account, whose holder signed in and chose what the assistant may do. This page documents the two addresses, the sign-in, the tools, jobs, credits and limits.
Install steps for Claude, Claude Code, ChatGPT, Codex, Cursor and VS Code are on the Connect page. Prices are on the pricing page.
Addresses
The server speaks Streamable HTTP and answers in JSON. It holds no session between calls. Protocol versions 2026-07-28, 2025-11-25, 2025-06-18 and 2025-03-26 are served on both addresses.
https://mcp.ugc.fans/mcp
Everything: 26 tools, the 16 Studio tools and 10 Make tools. 7 of them spend credits.
https://mcp.ugc.fans/studio
Studio: the 16 tools that run on UGCFans' own compute. None spends credits. Image, video and ad generation is on the everything address only. This is the address for a client that should make films and finish clips only.
Discovery
https://ugc.fans/.well-known/oauth-authorization-server
OAuth authorization server metadata (RFC 8414).
https://mcp.ugc.fans/.well-known/oauth-protected-resource/mcp
Protected resource metadata of the everything address (RFC 9728).
https://mcp.ugc.fans/.well-known/oauth-protected-resource/studio
Protected resource metadata of the Studio address.
https://mcp.ugc.fans/.well-known/mcp/server-card.json
Server card of the everything address.
https://mcp.ugc.fans/studio/server-card
Server card of the Studio address.
Signing in
Both addresses use OAuth 2.1: the authorization code flow with PKCE (S256) and no client secret. A call to a tool that needs an account, made without a token, answers 401 with a WWW-Authenticate header. The header names the protected resource metadata, which starts the sign-in in a client that supports it. ugcfans_search_templates and ugcfans_list_models need no sign-in.
A client is known in one of three ways: UGCFans registered it, it publishes a client metadata document at an https address that serves as its client id, or it registered itself at https://ugc.fans/oauth/register (Dynamic Client Registration). A self registration ends 90 days after the client was last used, and the consent page marks it with a warning.
The client sends the account holder to the consent page at https://ugc.fans/connect/authorize. A signed-out holder signs in there with Google or GitHub, which creates the account on first use while sign-up is open. The page names the client and the host it returns to, the account, and the permissions asked, and offers Allow or Cancel. Cancel returns access_denied to the client.
Scopes
studio
always granted
Consent page wording: "Make films and clips from your websites." Allows the Studio tools: capturing a website, launch films and stings, changing and exporting a film, finishing a clip, transcripts and turning an ad into a film. No credits are spent.
make
can be switched off
everything address only
Consent page wording: Spend credits on images, video and ads. Allows ugcfans_estimate and the tools that make images, video, ads, scripts, speech, clips of a saved person and reference breakdowns.
library
can be switched off
Consent page wording: "Read and save your brands, products and people." Allows listing files, making share links and saving brands, products, generated presenters and stock voices. Nothing is spent.
account
always granted
Consent page wording: "See your plan and credits." Allows ugcfans_get_account, which reads the plan, the balance and its expiry. Read only.
ugcfans_get_job, ugcfans_wait_job and ugcfans_cancel_job accept a token of any scope. A call that needs a scope the grant lacks answers 403 with insufficient_scope and names the scopes to ask for. A client can ask again.
Tokens and connections
- An authorization code lasts 60 seconds and is used once. An access token lasts 60 minutes.
- Each use of a refresh token returns a new one. A refresh token used twice ends the connection.
- A connection lasts 30 days from its last refresh. A client in use stays connected. An account holds up to 100 connections.
- A personal access token serves scripts and editors that send a header. Connections in the account makes one, shows it once and stores only its hash. It carries the scopes chosen when it was made, lasts 365 days, works on both addresses and is sent as Authorization: Bearer. An account holds up to 20 tokens.
Disconnecting
Connections in the account (ugc.fans/account/connections) lists each connected client with Disconnect and each personal token with Revoke. Either ends access at once. A client can also revoke its own token at https://ugc.fans/oauth/revoke (RFC 7009), which ends the whole connection. Deleting the account revokes every connection.
Tools
26 tools. The first 16 are on both addresses. The last 10 are on the everything address only. Each row names the tool, what it does, the scope it asks for and whether it spends credits.
Studio tools
ugcfans_search_templates
no sign-in
free
Search ad templates and formats
ugcfans_get_account
account
free
Show plan and credits
ugcfans_capture_website
studio
free
Photograph a website for a film
ugcfans_get_capture
studio
free
Read a website capture
ugcfans_make_launch_film
studio
free
Make a launch film from a capture
ugcfans_make_site_sting
studio
free
Make a sting from chosen website parts
ugcfans_ad_to_film
studio
free
Turn a finished ad into an editable film
ugcfans_set_film_words
studio
free
Change the words of a film
ugcfans_export_film
studio
free
Export a film to MP4
ugcfans_finish_clip
studio
free
Trim, reformat, caption and brand a clip
ugcfans_transcribe
studio
free
Transcribe a clip
ugcfans_list_files
library
free
List files in the library
ugcfans_share_file
library
free
Make a link for a file
ugcfans_get_job
any scope
free
Read a job
ugcfans_wait_job
any scope
free
Wait for a job
ugcfans_cancel_job
any scope
free
Cancel a job
Make tools
ugcfans_list_models
no sign-in
free
List the qualities and their credit prices
ugcfans_estimate
make
free
Price an ad, image or video
ugcfans_make_image
make
credits
Make an image
ugcfans_make_video
make
credits
Make a video clip
ugcfans_make_ad
make
credits
Make a UGC ad
ugcfans_write_script
make
credits
Write a script, hooks or a translation
ugcfans_make_speech
make
credits
Speak a line in a saved voice
ugcfans_make_performance
make
credits
Make a clip of a saved person
ugcfans_read_reference
make
credits
Break down a reference video
ugcfans_save_asset
library
free
Save a brand, product, presenter or voice
Jobs
Work of long duration answers with a job. The job carries its id, its kind, the status working and a poll interval of 5 seconds. The tool ugcfans_wait_job holds the call for up to 45 seconds and returns as soon as the job ends. The tool ugcfans_get_job reads the state once. The tool ugcfans_cancel_job stops a job that has not reached a provider, and a cancelled job is not charged.
A job ends done, failed or cancelled. A done job lists its files as links, up to six to a result, and a small picture is also returned inline. A failed job states the reason in a sentence and a code. A job that stopped after a provider may have received it is reported as failed and is not sent again automatically; ugcfans_list_files shows what exists before a client asks again.
Credits
The Studio tools spend no credits. Of the 10 Make tools, 7 spend credits; the price list, estimates and saving assets are free.
Quotes
Images, video and ads are priced before they are made. ugcfans_estimate accepts the request and returns the most it can cost in credits, the dollar figures behind it, any warnings and a quote valid for ten minutes. The make tool accepts the quote with the same request and refuses it if any field changed, which prices the request again. Called without a quote, a make tool returns the estimate and makes nothing. An expired quote is refused with a request to estimate again.
ugcfans_make_speech prices the line itself before it makes it. Scripts, reference breakdowns and clips of a saved person spend a few credits, checked against the account allowance when they are submitted. A clip of a saved person costs approximately the price of its avatar model, which ugcfans_list_models gives.
Balance
Every member account receives a welcome gift of credits at its first sign-in. ugcfans_get_account reports the credits left, granted and spent, when they expire and the plan. A premium model needs Tier B and is refused on any other account with the sentence "This model is part of Tier B." The pricing page states the gift, the plans and the price of every model. Plans are purchased inside the account on ugc.fans after sign-in. No tool accepts a payment.
When credits run out
A request the balance cannot cover returns a result with status needs_credits. The result carries the unit (credits), the credits the account has, the credits the request needs, a link to the page that describes plans and credits, and a note that credits are purchased on ugc.fans. It is not an error, and nothing is made. The assistant relays it; the account holder adds credits inside the account.
Other refusals are sentences with a next step: UGC Fans is busy, with the seconds to wait; an earlier charge is still settling; the account is not enabled yet; the request changed after it was priced.
Limits
- 240 calls a minute for each account on mcp.ugc.fans. Calls without a valid token are counted for each calling address. A call over the limit answers 429 with Retry-After: 60. The counters are approximate.
- Up to 32 jobs for each account wait in the pipeline queue. A full queue answers that UGC Fans is busy and states when to retry. A request body is up to 1 MiB.
- Results are links that expire. A file link lasts 6 hours. A showcase page made by ugcfans_share_file lasts 30 days and carries the Made with UGC Fans badge. Anyone who holds a link opens the file until it expires.
- There is no upload tool. Footage is added to the library at ugc.fans/library, and ugcfans_list_files returns its address (out/...), which the clip, transcript and reference tools accept as their source.
- A transcript covers up to 10 minutes of audio or video. A reference breakdown covers up to 3 minutes. ugcfans_finish_clip runs up to 6 operations a call, and a call that runs past 4 minutes returns the job it is on. An ad turned into a film is a finished video of up to 96 MiB. A launch film runs 12 seconds. Website capture opens public http and https pages on ports 80 and 443.
- A person on screen needs a standing consent saved in the library. ugcfans_save_asset saves generated presenters and stock voices only.
- An exported film carries a content credential. Media made with AI models is declared as AI generated.
Install and help
The Connect page carries the install link or command for each client. The plugin for the everything address is at github.com/ugcfans/gpt-plugin, and the Studio plugin is at github.com/ugcfans/claude-plugin. Both are MIT licensed.
Write to support@ugc.fans with a question about the server. The support page lists what to include. The privacy policy and the terms of service cover data and use.
Questions
Which address should a client use?
https://mcp.ugc.fans/mcp serves every tool. https://mcp.ugc.fans/studio serves the Studio tools alone, and no tool on it spends credits.
How does a client sign in?
Through OAuth 2.1 with PKCE. The client sends the account holder to the consent page at ugc.fans, where Google or GitHub sign-in and a choice of permissions come before any access is granted. Scripts can send a personal access token instead.
How long does a tool call run?
Short work answers at once. Longer work answers with a job id, and ugcfans_wait_job follows the job until it ends or its wait limit is reached.
What happens when the account has too few credits?
The make tool answers needs_credits with the credits held and the credits needed, and makes nothing. Credits are added inside the account on ugc.fans.