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/mcp

Streamable 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" }
ToolForWhat it does
get_accountBothRole, profile state, what's waiting on them, and their campaigns with earnings or budget left
search_campaignsBothLive campaigns by words, platform, genre, rate; sorted by newest, rate, budget or deadline
get_campaignBothOne campaign in full, whether this person can join and every rule they miss; every field for its studio
search_creatorsBothCreators by followers, genre, country and platform (names and channels for studios)
get_creatorBothOne creator's page, with ratings and the packages they sell
list_videosBothA creator's videos, or the videos sent to one of a studio's campaigns, with views, earnings and payment
get_profileBothThe person's own profile, as their profile form shows it
update_accountBothDisplay name, and email notifications on or off
list_notificationsBothLatest notifications; mark_notifications_read clears them
reportBothReport a creator, studio, campaign or video to the team
rateBothRate the other side, 1 to 5, after a paid video
mark_paymentBothRecord a payment sent (studio) or received (creator)
list_dealsBothDirect deals, or one with its whole history
act_on_dealBothMessage, counter, accept, decline, cancel, deliver or complete a deal
update_creator_profileCreatorsChannels, country, genres, handle, bio, portfolio, languages, payout methods; only what changes
set_packagesCreatorsThe fixed-price posts they sell to studios
join_campaignCreatorsJoin a live campaign; free, no application
submit_videoCreatorsSend a posted video's link to a joined campaign
dismiss_inviteCreatorsHide a studio's invite
get_campaign_fileCreatorsRead a joined campaign's file (studios can too)
update_studio_profileStudiosName, website, country, tagline, logo; only what changes
create_campaignStudiosA draft, or straight to review; every campaign is approved by ClipperTask before it goes live
update_campaignStudiosChange a campaign's fields; what creators joined on is locked once live
submit_campaignStudiosSend a draft for review
close_campaignStudiosEnd a campaign now
add_campaign_fileStudiosAttach footage, screenshots, a logo pack or a document
remove_campaign_fileStudiosDelete one of a campaign's files
review_videoStudiosApprove, or reject with a reason, a video sent to their campaign
get_shortlistStudiosThe creators they saved
shortlist_creatorStudiosSave a creator, or take them off
invite_creatorsStudiosInvite creators, or the whole shortlist, to a live campaign
offer_dealStudiosOrder 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 campaigns
  • GET /api/campaigns/{slug}One campaign
  • GET /api/creators?genre=fps&country=USCreators (masked when signed out)
  • GET /api/creators/{handle}A creator's page
  • GET /api/advertisers/{slug}A studio's page
  • GET /api/constantsGenres, countries, platforms and their labels
  • GET /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.