ClippedDocs

Agents

MCP server

Clipped is an MCP server, so an agent can do everything in these docs without anyone writing HTTP calls: watch streamers, change settings and each streamer's rules, read clips, post them, and set up webhooks. One endpoint, the same key, the same limits.

Discover streams with list_games and list_live_streams — for example { "group": "shooters", "limit": 25 }. Results are ranked by combined viewers across the available platforms and include snapshot time when available and any missing platforms. Use a returned channel key with follow_streamer and its optional autoPost rule, or change rules with update_streamer and account defaults with update_settings.

Use open_streamer_editor for a standalone crop and settings page with following and auto-post controls. Editor links contain no API key or sign-in token: the browser must sign in to the same Clipped account as the MCP key. Every read and save checks that account again. Opening a link does not follow a streamer or turn posting on.

A refusal an agent can act on — no connected account, plan too small, a setting out of range — comes back as a tool result it can read, not a protocol error it can only give up on.

Examples

Point your agent at itJSON
{
  "mcpServers": {
    "clipped": {
      "type": "http",
      "url": "https://app.clipped.so/api/mcp",
      "headers": { "Authorization": "Bearer clip_sk_…" }
    }
  }
}

Tools

18 tools, each a thin call onto the same functions the REST endpoints use.

list_games

Browse Clipped's live game categories and genre groups across Twitch, Kick and YouTube. Returns canonical slugs, viewer counts, snapshot time when available, and any missing platforms. Use group slugs such as shooters with list_live_streams; use a category slug for one game.

list_live_streams

Find the busiest live streams across Twitch, Kick and YouTube, ranked by combined viewers. Optionally filter by a genre group (shooters) or a canonical game category slug from list_games. Default 25, maximum 100. This is the app's directory snapshot: report asOf and missing platforms when describing freshness or coverage. Each result has a channel key for follow_streamer/update_streamer and a private editorUrl for crop, settings, following and auto-post setup. Discovery does not follow anyone or change settings.

open_streamer_editor

Get a standalone browser page to adjust a streamer's live crop, facecam, clip settings, following and automatic posting. Returns a link to open or show the user. It requires a normal Clipped sign-in as the same account this API key belongs to; the URL grants no access and contains no API key or sign-in token. Opening it changes nothing. Works before following or recording a streamer, including offline (live crop preview requires a live stream).

whoami

The Clipped account this key belongs to: its plan, how many channels it may record at once, its stream-hour allowance and how much is left, and the API rate limits. Call this once at the start to find out what the account can do.

list_streamers

The streamers this account is watching, each with live (the recording running for them right now, or null) and the auto-post rule, clip ending and taste they are on. A watched streamer keeps being recorded whenever they go live, with nobody at a browser — this is what produces clips. Call it to see who is live.

get_streamer

One streamer: whether you watch them, whether they are live and being recorded now, and the rules their clips are on — each marked in own as the streamer's own or the account's default.

update_streamer

Give one streamer rules of their own, which beat the account's settings for their clips: whether their clips post themselves and from what score, whether those get captions burnt in, how long their clips run, and what makes a moment on their stream. Pass null for any of them to put the streamer back on the account's setting; leave one out to leave it alone. Works for a streamer you don't watch yet.

follow_streamer

Start watching a streamer, so Clipped records them whenever they go live and cuts clips from what happens. Takes a name or a link on Twitch, Kick or YouTube — 'jynxzi', 'kick:xqc', or a full URL. Optionally sets whether their clips post themselves in the same call. Needs a paid plan; a free account can only open one channel from the web app.

unfollow_streamer

Stop watching a streamer. Recording stops now; clips already cut are kept.

get_settings

Everything the account has chosen: whether clips post themselves by default and from what score, per-game and per-genre auto-post rules, how many may post a day, upload privacy, the shape clips are cut in, captions, how clips end, what makes a moment (taste), title and description templates, tags — and which destinations have accounts connected. Read this before changing anything.

update_settings

Change the account's settings. Send only what should change; everything left out stays as it is. The whole change is checked first, so one bad field changes nothing. These are the defaults for every streamer — a streamer's own rules (update_streamer) beat them. Answers with every setting as it now is. Connecting a YouTube, TikTok or Instagram account can't be done from here; that is a sign-in the account owner does in the browser.

list_webhooks

The URLs Clipped POSTs to when something happens — a clip is ready, a clip is posted, a streamer goes live or offline — with each one's last delivery and whether it is still on. An agent that can't receive HTTP should poll list_clips and list_streamers instead.

create_webhook

Have Clipped POST events to a public https URL as they happen: clip.ready, clip.published, streamer.live, streamer.offline. Starts from now — nothing from before is sent. The answer has a secret, shown only this once: the receiver checks each request's Clipped-Signature header (t=<unix>,v1=<hex HMAC-SHA256 of "<t>.<body>">) with it. Up to five per account.

test_webhook

Send a ping event to a webhook now and say how its URL answered — to check the receiver and its signature check before anything real happens.

delete_webhook

Stop sending events to a webhook, and forget it.

list_clips

Clips Clipped found, oldest first. This is how you find out a new clip exists: call it with no cursor to see what is there, keep the cursor from the answer, and pass it back next time to get only what has happened since. Polling with the cursor never skips a clip; one comes back again when it changes (cut, posted). Each clip has a video URL you can fetch with the same API key. Most clips are cut only when asked for: cut is uncut until then, and fetching video starts the cut and answers 202 until the mp4 is ready, about a minute.

get_clip

One clip by id, including its video URL and its thumbnail, a public image URL (null if it can't be made yet). Fetch that URL with the same API key to watch it; it is an mp4 and supports range requests, so you can pull part of it. If cut is not ready, fetching it starts the cut and answers 202 with Retry-After until it is, about a minute.

publish_clip

Post a clip to a connected account. The destination must already be connected in Clipped's settings by the person who owns the account — this cannot connect one. YouTube posts it as a Short (three minutes at most); TikTok puts it in the creator's inbox as a draft for them to finish (status drafted); Instagram posts it as a public Reel at once. Leave the title and description out to use the account's own templates, which is usually what you want. Waits for the upload and answers with where it landed.