MCP (stdio) · TikTok

Write TikTok captions in Claude Desktop and post them after approval

You filmed a 30-second demo on your phone; now it needs a caption, and ideally a hook. Claude Desktop is good at that, and SocialHandoff makes sure the video only posts to TikTok after a person approves it. Claude attaches the video from a public link with attach_media (or you add it in the inbox), drafts the caption with draft_post, and the approval screen shows the visibility you chose and TikTok's consent text before anything is posted.

Prompt

I filmed a 25-second video showing our app turning a photo of a receipt into an expense entry. Write a TikTok caption: a hook in the first line, one sentence on how it works, and 4 hashtags. The video is at https://example.com/video/receipt-demo.mp4. Attach it and save a 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 Claude Desktop scoped to TikTok with draft and schedule permission.
  2. Add the server to Claude Desktop Open Settings, then Developer, then Edit Config, and paste the mcpServers entry that runs npx -y socialhandoff-mcp with your key. Quit and reopen Claude Desktop so draft_post appears in the tools menu.
  3. Attach the media Give Claude Desktop a public https link to the video or up to 35 photos. It calls attach_media with the url and alt text, gets a media id, and passes it to draft_post in mediaIds. You can also attach files in the inbox instead. TikTok refuses approval or scheduling without media.
  4. Ask for the draft Describe the video and give Claude the prompt. It calls draft_post with networks set to tiktok and shows the card.
  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

POV: you never type an expense again.

Snap the receipt, and the amount, date, and store fill themselves in. That is it.

#smallbusiness #expenses #productivity #appdemo

[Video: 25-second vertical MP4 screen recording of the receipt scan, attached in the inbox]

Gotchas

  • If Claude calls schedule_post before the video is attached, the call is refused. That is by design: TikTok refuses text-only posts, so the draft stays pending until the video is there.
  • TikTok refuses text-only posts. The agent can draft the caption first, but approval and scheduling are refused until a video or photos are attached.
  • attach_media takes a public https link or small base64 data. For a photo that only lives on your laptop, attaching it in the inbox is usually quicker than pasting it into the chat.
  • Until TikTok audits your developer app, every post is private (visible only to the account), the posting account must be private, and only 5 accounts can post per day.
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

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.
Can Claude Desktop publish without me?
No. A new key is draft-only and can never approve its own drafts. You approve every post until you promote the key on the trust ladder.
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.

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