# UGC Agent for AI agents

UGC Agent (https://ugcagent.app) is a data hub for UGC marketing: a database of 33,000+ Instagram and TikTok UGC creators with public emails, data on 500+ brands running UGC programs, tracking for every creator video, a creator CRM and an AI agent that finds new creators from a brief. Everything is available to AI agents through a hosted MCP server.

- MCP endpoint: https://mcp.ugcagent.app/mcp (remote, Streamable HTTP)
- Auth: OAuth 2.1 (dynamic client registration, PKCE S256, refresh tokens) or the device flow below
- Official MCP Registry name: io.github.VicPitic/ugc-agent
- Plan: MCP tools need Premium, Ultra or Enterprise. Every plan starts with a 3-day free trial: https://ugcagent.app/pricing/
- Human docs: https://ugcagent.app/features/ugc-agent-mcp/

## Prompt to give your agent

Paste this into Claude, ChatGPT, Codex, Cursor or any agent that can add MCP servers:

```text
Set up UGC Agent (https://ugcagent.app) for me. It is a data hub for UGC marketing: 33,000+ Instagram and TikTok UGC creators with public emails, data on 500+ brands running UGC, creator video tracking and an AI sourcing agent, all available as MCP tools.

1. Add the UGC Agent MCP server (remote, Streamable HTTP, OAuth): https://mcp.ugcagent.app/mcp
   - Claude Code: claude mcp add --transport http ugcagent https://mcp.ugcagent.app/mcp (then run /mcp to sign in)
   - Codex: codex mcp add ugcagent --url https://mcp.ugcagent.app/mcp && codex mcp login ugcagent
   - Claude, ChatGPT, Cursor or any other client: add a custom connector / remote MCP server with that URL.
2. Sign me in. The client opens a UGC Agent page where I approve the connection. If I don't have an account yet, the same page creates one with Google or email, so just send me the link.
3. If you can't open a browser callback, use the device flow: POST https://mcp.ugcagent.app/oauth/device_authorization with client_id=ugcagent-agent, give me the verification link, then poll https://mcp.ugcagent.app/oauth/token until it returns a token. Details: https://ugcagent.app/agents.md
4. Once connected, list the UGC Agent tools and suggest a first creator search for my brand.

MCP tools need the Premium plan or higher. Every plan starts with a 3-day free trial.
```

## Connect an MCP client (OAuth)

Add the endpoint and let the client sign the user in. No API key or private URL to copy.

```bash
# Claude Code (then run /mcp and pick ugcagent to sign in)
claude mcp add --transport http ugcagent https://mcp.ugcagent.app/mcp

# Codex
codex mcp add ugcagent --url https://mcp.ugcagent.app/mcp
codex mcp login ugcagent
```

Claude (claude.ai, Desktop), ChatGPT, Cursor, Windsurf, Cline and other clients: add a custom connector or remote MCP server with https://mcp.ugcagent.app/mcp. The client opens a UGC Agent page in the browser.

What happens:

1. The first request returns 401 with `WWW-Authenticate: Bearer resource_metadata="https://mcp.ugcagent.app/.well-known/oauth-protected-resource/mcp"`.
2. Authorization server metadata: https://mcp.ugcagent.app/.well-known/oauth-authorization-server
3. The client registers itself (`POST /oauth/register`) and opens `/oauth/authorize` with PKCE.
4. The user lands on app.ugcagent.app, signs in or creates an account (Google or email link), and approves.
5. The client exchanges the code at `/oauth/token` and calls the MCP with `Authorization: Bearer <access_token>`. Access tokens last an hour; refresh tokens rotate on use.

## Agents without a browser callback (device flow)

Any agent that can make HTTP requests can connect a user, including a brand-new user, with a code they approve in their browser. No registration needed: use the public client id `ugcagent-agent`.

```bash
# 1. Start. client_name is shown to the user on the approval screen.
curl -s https://mcp.ugcagent.app/oauth/device_authorization \
  -d client_id=ugcagent-agent -d client_name="Your agent name"
# -> {"device_code":"...","user_code":"BCDF-GHJK","verification_uri":"https://app.ugcagent.app/activate",
#     "verification_uri_complete":"https://app.ugcagent.app/activate?code=BCDF-GHJK","expires_in":900,"interval":5}

# 2. Send the user verification_uri_complete. They sign in or sign up, then approve.

# 3. Poll every 5 seconds until you get tokens (authorization_pending until then).
curl -s https://mcp.ugcagent.app/oauth/token \
  -d grant_type=urn:ietf:params:oauth:grant-type:device_code \
  -d client_id=ugcagent-agent -d device_code=<device_code>
# -> {"access_token":"ugc_oat_...","refresh_token":"ugc_ort_...","token_type":"Bearer","expires_in":3600}

# 4. Use the MCP (or refresh with grant_type=refresh_token when the hour is up).
curl -s https://mcp.ugcagent.app/mcp -H "Authorization: Bearer <access_token>" \
  -H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
```

## Other ways in

- Developer API key (Ultra): `Authorization: Bearer ugc_live_...` on the same endpoint, or the REST API documented at https://ugcagent.app/developers/api/
- Clients set up before OAuth keep working with the private URL shown in the app. Treat it like a password.

## What the tools do

Search live Instagram and TikTok for UGC creators from a brief and return qualified creators with public emails, analyze a creator's content, find the creators behind a brand's UGC, research trends, draft scripts and outreach, manage saved lists and the creator CRM, and create or update sourcing automations. Plan limits and the monthly lead pool apply exactly as in the web app. UGC Agent does not send outreach or pay creators; the user's team does.

## Revoking access

Users see every connected agent in the app (MCP setup, Connected agents) and can revoke any of them. Revoking kills its tokens.
