Table of Contents
- Ask what your account allows
- Post a test video only you can see
- Publish it for everyone
- Turn screenshots into a photo post with music
- Pick the cover frame of a video
- Label an AI-generated video
- Mark a paid partnership
- Post one clip to TikTok, Reels and Shorts
- Queue a week of videos (Codex works well for this)
- What the agent sends
- Set it up in your client
A TikTok MCP server lets Claude Code, Cursor, Codex or another agent like Muse or OpenClaw upload a video to your TikTok and publish it for you. The quickest one to set up is PublishQ's: connect your TikTok account in PublishQ, then add the server to your agent. In Claude Code that's one line:
claude mcp add --transport http publishq https://publishq.com/mcpApprove it in the browser and you're ready. Below are nine prompts you can paste as they are, from a private test post to a week of scheduled videos.

TikTok wants every app to ask what your account allows before it posts, and to send your privacy choice explicitly. The PublishQ server has a tool for that, publishq_get_tiktok_creator_info, and a good agent calls it on its own. Several prompts below lean on it.
Ask what your account allows
What privacy options does my TikTok account have, and what's the longest video it accepts?
The agent calls publishq_get_tiktok_creator_info and reads back privacyLevelOptions and the maximum video length for your account. A public account usually offers PUBLIC_TO_EVERYONE, MUTUAL_FOLLOW_FRIENDS and SELF_ONLY. A private account offers FOLLOWER_OF_CREATOR in place of the public option.
Post a test video only you can see
Upload ./renders/launch.mp4 to TikTok as SELF_ONLY with the caption "Day 1 of building in public". Comments on, duet and stitch off.
Start here. SELF_ONLY puts the video on your account where nobody else sees it, so you can check the result in the TikTok app before posting anything for real.
Publish it for everyone
Post the same video publicly, with comments, duets and stitches on.
That's the same call with privacyLevel set to PUBLIC_TO_EVERYONE. TikTok has no defaults for the interaction settings, so every post carries disableComment, disableDuet and disableStitch as real values.
Turn screenshots into a photo post with music
Make a TikTok photo post from the 6 images in ./shots, title "Before and after", add music automatically and use the third image as the cover.
A photo post takes up to 35 images. autoAddMusic adds a soundtrack, photoCoverIndex picks the cover (counting from 0, so the third image is 2), and the title in content can be up to 90 characters. A longer text goes in description, which takes up to 4000. If you want to design the slides first, the TikTok carousel generator is free to use.

Pick the cover frame of a video
Use the frame at 4.5 seconds as the cover of launch.mp4.
The agent sets thumbnailTimestamp to 4500 (milliseconds). Without it, the cover is taken from the first second.
Label an AI-generated video
This clip was made with AI. Label it that way when you post it.
That sets videoMadeWithAi to true, and TikTok shows its "Creator labeled as AI-generated" label on the video.
Mark a paid partnership
This one is sponsored by a brand. Mark it as branded content.
brandContentToggle marks a paid partnership. If you're promoting your own business, the agent sets brandOrganicToggle instead.
Post one clip to TikTok, Reels and Shorts
Post launch.mp4 to TikTok, Instagram and YouTube. Use a shorter caption on TikTok.
One publishq_create_post call carries all three accounts, and postOverrides gives TikTok its own caption. The settings each platform needs sit on its own account entry. The Instagram MCP guide covers the Instagram side.

Queue a week of videos (Codex works well for this)
For every video in ./week, schedule a public TikTok at 18:00, one per day starting Monday, with the caption from the matching .txt file. Show me the list before you schedule.
Each video becomes its own post with a scheduledAt time. Scheduled posts can be edited or cancelled until they go out, and the TikTok scheduler shows the whole queue on a calendar. More batch prompts are on the Codex TikTok page.
What the agent sends
For prompt 3, the arguments look like this:
{
"content": "Day 1 of building in public",
"mediaIds": ["c9f2ab10-7777-8888-9999-aaaabbbbcccc"],
"accounts": [
{
"accountId": "d4e5f6a7-b8c9-0123-defa-456789abcdef",
"platformSpecificSettings": {
"privacyLevel": "PUBLIC_TO_EVERYONE",
"disableComment": false,
"disableDuet": false,
"disableStitch": false,
"brandContentToggle": false,
"brandOrganicToggle": false
}
}
],
"publishNow": true
}You won't write this by hand. Every field and allowed value is in the TikTok API guide, and the full tool list is in the MCP docs.
Set it up in your client
| Client | How to add it |
|---|---|
| Claude Code | claude mcp add --transport http publishq https://publishq.com/mcp, then Authenticate in /mcp (more) |
| Cursor | Add {"mcpServers": {"publishq": {"url": "https://publishq.com/mcp"}}} to ~/.cursor/mcp.json (more) |
| Codex | npx @publishq/cli@latest login, then codex mcp add publishq -- npx -y @publishq/mcp@latest |
| Claude or ChatGPT | Add https://publishq.com/mcp as a custom connector or app |
| Muse | See TikTok from Muse |
| OpenClaw | See TikTok from OpenClaw |
| Hermes Agent | See TikTok from Hermes Agent |
| Manus | See TikTok from Manus |
| Kiro | See TikTok from Kiro |
| Gemini CLI | See TikTok from Gemini CLI |
| Claude Cowork | See TikTok from Claude Cowork |
| Any other agent | Copy the line at the top of publishq.com/agents into it |
Before you post vertical video, the TikTok safe zone checker shows where the buttons and caption cover your frame.
Create a PublishQ account, connect TikTok, and paste prompt 1. You'll know in ten seconds whether everything works.
