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
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
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.