MCP (streamable HTTP) · TikTok

Draft TikTok posts with Cline

Cline asks before each action, so posting to TikTok from it is deliberate: you approve the upload, then the draft, then the post itself in SocialHandoff. That last step matters on TikTok, where the approval screen shows the visibility and interaction settings chosen in Connections and TikTok's own consent text. Cline writes the caption and handles the upload; a person decides what goes live.

Prompt

Take clips/bug-of-the-week.mp4. Write a TikTok caption about the bug: what users saw, what caused it, and the one-line fix. 4 hashtags. Upload the video and create the TikTok draft.

How to do it

  1. Connect TikTok and mint a key In https://app.socialhandoff.com, open Connections, connect TikTok, then open TikTok settings on the account and choose visibility, comment/duet/stitch, and commercial disclosure. Then create an agent key named Cline scoped to TikTok with draft and schedule permission.
  2. Configure the remote server Open Configure MCP Servers in the Cline panel and add an entry to cline_mcp_settings.json with type streamableHttp, url https://app.socialhandoff.com/mcp, and an Authorization header.
  3. Attach media from the workspace Cline calls attach_media for the video or up to 35 photos: a public url, or the file as base64 data (up to 8 MB) with its mime type and alt text. Larger files go to POST https://app.socialhandoff.com/v1/media as multipart. The ids go into draft_post as mediaIds.
  4. Ask for the draft Paste the prompt into the Cline panel and approve the upload and the draft call as Cline asks.
  5. Approve with the consent text The approval screen shows the visibility and interaction settings chosen in Connections and TikTok's consent text. Approve, and it publishes; a video is sent to TikTok in chunks.

Example draft

Bug of the week: dates showing one day early, but only for users in Auckland.

The cause: we stored midnight in UTC. The fix: store the date, not the time.

#programming #bugs #softwareengineering #timezones

[Video: clips/bug-of-the-week.mp4, 31-second vertical explainer]

Gotchas

  • Visibility has no default. Posts are refused until the owner picks it in TikTok settings under Connections, along with comment, duet, and stitch.
  • Cline asks before each tool call unless you auto-approve it. Auto-approving draft_post is safe because drafts still wait for a person in the inbox.
  • Photo posts are fetched by URL, so the domain serving your media must be verified in the TikTok developer portal. Videos upload as bytes and skip this.
TikTok
  • Media: Every post needs one video or up to 35 photos. Text-only posts are not possible.
  • Video upload: Videos upload in chunks of 5 to 64 MB; smaller files go in one piece. Maximum duration depends on the creator account.
  • Photo posts: Up to 35 JPEG or WebP images, a title up to 90 characters, and a description up to 4,000 characters.
  • Required choices: TikTok requires a visibility setting with no default, comment/duet/stitch toggles, and a commercial content disclosure.
TikTok scheduler with approval and TikTok's required choices

Frequently asked questions

Can I post photos instead of a video?
Yes. A TikTok photo post takes up to 35 images. The domain serving them must be verified in the TikTok developer portal.
Why does Cline fall back to SSE?
The type field is missing or misspelled. Set it to streamableHttp, in camelCase.
Why are my TikTok posts private?
TikTok limits unaudited developer apps to private posts. Submit your app for TikTok's audit to lift the restriction; until then, posts are visible only to the account.

Let your agents post. Keep the final say.

Connect your first agent in minutes. Every draft waits in your inbox until you approve it.

14 days free. No card required.

The hosted version is opening soon

Leave your email and we will send one message when hosted accounts open, with your 14-day trial ready. Want it today? Self-host it free from the repo.

Start free trial