ClipperTask for developers
An MCP server that acts on a person's ClipperTask account, and a free read-only API for everything public.
MCP server
https://mcp.clippertask.com/mcpStreamable HTTP, stateless. Sign-in is OAuth 2.1 with PKCE: register by client ID metadata document (an https client_id) or dynamically, then the person signs in to ClipperTask and allows your app. Discovery is at /.well-known/oauth-authorization-server on the server's host. Access tokens last an hour, refresh tokens rotate on every use.
# A creator, through their AI app
search_campaigns { "platforms": ["tiktok"], "genres": ["fps"], "sort": "cpm" }
get_campaign { "campaign": "neon-drift-81f3" } → can_join, why_not
join_campaign { "campaign": "neon-drift-81f3" } → the brief
submit_video { "campaign": "neon-drift-81f3", "video_url": "https://www.tiktok.com/@me/video/…" }
list_videos {} → views, status, earned_cents
# A studio
create_campaign { "details": { "name": "Neon Drift", "rate_per_1000_views_cents": 300, … } }
submit_campaign { "campaign": "neon-drift-81f3" } → in review until ClipperTask approves it
get_account {} → campaigns, budget left, videos to review
list_videos { "campaign": "neon-drift-81f3" } → video ids
review_video { "video_id": "…", "decision": "reject", "reason": "The game isn't shown." }
mark_payment { "video_id": "…", "what": "sent" }| Tool | For | What it does |
|---|---|---|
| get_account | Both | Role, profile state, what's waiting on them, and their campaigns with earnings or budget left |
| search_campaigns | Both | Live campaigns by words, platform, genre, rate; sorted by newest, rate, budget or deadline |
| get_campaign | Both | One campaign in full, whether this person can join and every rule they miss; every field for its studio |
| search_creators | Both | Creators by followers, genre, country and platform (names and channels for studios) |
| get_creator | Both | One creator's page, with ratings and the packages they sell |
| list_videos | Both | A creator's videos, or the videos sent to one of a studio's campaigns, with views, earnings and payment |
| get_profile | Both | The person's own profile, as their profile form shows it |
| update_account | Both | Display name, and email notifications on or off |
| list_notifications | Both | Latest notifications; mark_notifications_read clears them |
| report | Both | Report a creator, studio, campaign or video to the team |
| rate | Both | Rate the other side, 1 to 5, after a paid video |
| mark_payment | Both | Record a payment sent (studio) or received (creator) |
| list_deals | Both | Direct deals, or one with its whole history |
| act_on_deal | Both | Message, counter, accept, decline, cancel, deliver or complete a deal |
| update_creator_profile | Creators | Channels, country, genres, handle, bio, portfolio, languages, payout methods; only what changes |
| set_packages | Creators | The fixed-price posts they sell to studios |
| join_campaign | Creators | Join a live campaign; free, no application |
| submit_video | Creators | Send a posted video's link to a joined campaign |
| dismiss_invite | Creators | Hide a studio's invite |
| get_campaign_file | Creators | Read a joined campaign's file (studios can too) |
| update_studio_profile | Studios | Name, website, country, tagline, logo; only what changes |
| create_campaign | Studios | A draft, or straight to review; every campaign is approved by ClipperTask before it goes live |
| update_campaign | Studios | Change a campaign's fields; what creators joined on is locked once live |
| submit_campaign | Studios | Send a draft for review |
| close_campaign | Studios | End a campaign now |
| add_campaign_file | Studios | Attach footage, screenshots, a logo pack or a document |
| remove_campaign_file | Studios | Delete one of a campaign's files |
| review_video | Studios | Approve, or reject with a reason, a video sent to their campaign |
| get_shortlist | Studios | The creators they saved |
| shortlist_creator | Studios | Save a creator, or take them off |
| invite_creators | Studios | Invite creators, or the whole shortlist, to a live campaign |
| offer_deal | Studios | Order a post from a creator: one of their packages or a custom offer |
Scopes: campaigns:read (campaigns, creators, your own campaigns and videos); account:read (get_profile, list_notifications, list_deals); account:write (profiles, packages, account, notifications, report); campaigns:join (join_campaign, submit_video, dismiss_invite); campaigns:manage (campaigns, their files, shortlist, invites); videos:review (review_video); payments:write (mark_payment, rate); deals:write (offer_deal, act_on_deal). Errors come back with a code, a message for the person and often a next_action. Money is in US cents. Files go up as a public https link or base64 contents. Sign-in, linking Google or Discord, and admin work stay on the website.
Public API
The data behind the public pages, as JSON: no key, any origin. The schema is at https://clippertask.com/openapi.json. Every page also has a markdown copy: add .md to its URL.
GET /api/campaigns?q=&platform=tiktok&genre=fps&sort=cpm&limit=24&offset=0Live campaignsGET /api/campaigns/{slug}One campaignGET /api/creators?genre=fps&country=USCreators (masked when signed out)GET /api/creators/{handle}A creator's pageGET /api/advertisers/{slug}A studio's pageGET /api/constantsGenres, countries, platforms and their labelsGET /api/public-indexEvery public page, for crawling
Skill for Claude Code and Codex
SKILL.md tells a coding agent what ClipperTask is, how to connect it and which tool does what. Save it in your agent's skills folder.