Post to TikTok from Claude or ChatGPT with an MCP server
TikTok’s official MCP server runs ads, not posts. Send videos and photo posts to TikTok from Claude, ChatGPT or Cursor via Mellow Hub, and what we have seen.
By Mellow · UpdatedCan Claude or ChatGPT post to TikTok?
They can send it, through Mellow Hub’s remote MCP server at https://www.mellow.world/mcp: after you connect your TikTok and approve the access, the assistant checks a video or a photo post with validate_post, sends it or schedules it with create_post, or puts it in your TikTok inbox as a draft to finish in the app. TikTok’s own MCP server is for ads. What happens after sending is TikTok’s: it reviews every video before anyone else sees it and does not report when that review ends.
Status: Hub’s TikTok uploads went through in production throughout September 2026, including a post Claude created on September 30 through its connector. On our own test accounts, which are registered in Russia, TikTok shows those uploads to nobody but their owner while posts from the phone app are public, and TikTok hasn’t said why. We have not yet seen a public TikTok post made through the API. What was tested.
Is there an official TikTok MCP server?
Yes, for advertising. TikTok’s TikTok for Business MCP server, announced on May 13, 2026, manages campaigns and reporting and posts nothing to a profile. Community servers mostly scrape: they download videos or search through sessions or cookies, which TikTok’s terms do not allow. A server built on TikTok’s own posting API has a harder problem: until TikTok audits the app behind it, everything it posts is private, for at most five users a day, and TikTok’s audit turns down tools that only post to their own team’s accounts.
| Server | What it does | How it gets access |
|---|---|---|
| TikTok for Business MCP | Ads: campaigns, creatives, reporting. No organic posts. | TikTok for Business sign-in |
| Evil0ctal/Douyin_TikTok_Download_API | Downloads and scrapes public videos and data. | A pool of TikTok sessions |
| Seym0n/tiktok-mcp | Subtitles and post details, for analysis. No posting. | A third-party API key |
| Mellow Hub | Videos, photo posts and drafts to TikTok, with eight other networks in one request. | TikTok login through Hub; OAuth consent or a Hub key |
Read on 1 October 2026 from each project’s own page. Descriptions of other servers are their own claims; Mellow has not tested them.
TikTok’s rules for posting apps are in its content sharing guidelines, read on 1 October 2026.
What TikTok account do I need?
A personal or creator TikTok account. Hub also has a separate TikTok Business connection for Business accounts that need business analytics; the ordinary connection is simpler otherwise. You sign in to TikTok yourself, and each account is one channel.
- Open Accounts in Hub and choose TikTok, or ask the assistant to call
connect_channelwithplatformset totiktok. That tool only returns a link and an instruction for a person. It needs thechannels:connectpermission. - Open the link and sign in to TikTok yourself. Hub never sees your TikTok password.
- Tell the assistant you are done. It calls
list_channelswithrefresh: trueand uses the returned channel ID, which begins withspc_. A username is not a substitute for that ID.
Connect Claude, ChatGPT, Cursor or another MCP client
Every client uses the same server URL, https://www.mellow.world/mcp, over Streamable HTTP. A client signs in with OAuth 2.1 (dynamic client registration and PKCE) or sends an owner-created Hub API key as a Bearer token. Menus change between client versions, so the official guides linked below describe the current screens. The last column says only what Mellow itself has tested, on any network.
| Client | How to add Hub | Tested by Mellow |
|---|---|---|
| Claude | On any plan, Free included: Customize → Connectors → + Add → Add custom connector. Name it Mellow Hub and paste the URL; if Claude asks how to identify itself, choose Register automatically. There is no client secret to copy. Step by step: the Claude guide. | In production on September 29 and 30, 2026: sign-in and consent, starting channel connections, moving a scheduled post’s time (the post then went out at that time on seven networks) and creating a post. |
| ChatGPT | On the web, on Business, Enterprise or Edu where developer mode is allowed: Settings → Apps → Create, with the URL and OAuth. Pro connects MCP apps for reading only. Step by step: the ChatGPT guide. | On October 2, 2026, as a developer-mode app with a test account: it published a post to Bluesky, scheduled another that went out on its own the next morning, and was refused a text over Bluesky’s limit before anything was sent. |
| Claude Code | claude mcp add --transport http mellow https://www.mellow.world/mcp, then sign in when Claude Code asks, or send a Hub key as a Bearer header. | On September 29, 2026, with an owner-created key, it sent one video to Instagram, Facebook, Threads, LinkedIn, X and TikTok in a single post through the production endpoint. All but TikTok went public with links. |
| Cursor | Add Mellow Hub as a remote HTTP MCP server with the URL, then complete sign-in. Cursor’s MCP documentation. | Not tested. |
| Your own client | Streamable HTTP. Start OAuth discovery from the first 401 response, or send a Hub key in the Authorization: Bearer header. | The official MCP Python SDK completed registration, consent and a publication to Instagram and Threads in production on September 20, 2026. |
- Add the server in your client and select Connect. Sign in to Mellow if asked. Hub’s consent screen names the app that is asking.
- Choose the permissions the task needs (below), select your TikTok channel, choose review or autopilot, a daily ceiling and an expiry, then approve.
- Back in the client, run the read-only check from the prompts below. Confirm the profile, the mode and the TikTok channel ID. Agents shows the grant’s permissions, channels and expiry.
- If a client cannot complete OAuth, create a key in Agents and set it as the client’s
Authorization: Bearerheader, from its secret settings or an environment variable. Never paste a key into a chat.
Which permissions to approve
| Permission | What it allows |
|---|---|
channels:read | Read the profile, the mode and the channels the grant covers: whoami, list_channels. |
posts:read | Check and preview a post and read results: validate_post, preview_post, get_post, list_posts. |
media:write | Register a public media URL or request a signed upload URL. |
posts:write and posts:publish | Create, schedule or publish a post; both are needed, even in review mode. posts:write also covers cancelling and rescheduling. |
channels:connect | Start a channel connection and return its link for a person. |
metrics:read | Read network-reported metrics for published posts. |
The consent screen arrives with every permission the assistant asked for already ticked, except spending AI credits. Untick anything it should not have.
What you delegate, and how to take it back
Hub treats an assistant’s access as a delegation you give once, with limits: the permissions, the channels (the ones you select, or explicitly all), review or autopilot, a daily ceiling of 1 to 1,000 posts (50 by default) and an expiry of 1, 7 or 30 days (30 by default). Autopilot is the default: the assistant publishes on its own within those limits. Choose review and each post waits for you to approve it in Hub. A key or a connected app cannot approve its own post.
Hub records the posts an assistant creates or has refused, approvals, reschedules, cancellations and connection attempts in a journal you read in Agents. Revoking a key or a connected app takes effect on its next request. Publishing always needs an idempotency key, so a retried request cannot publish twice.
TikTok rules Hub checks before anything is sent
This table is generated from the registry that validate_post enforces, the same one behind the rules for every network. These are Hub’s input rules; TikTok still judges the media itself when it fetches it.
| Rule | TikTok in Hub |
|---|---|
| Text | Up to 2,200 characters. |
| Title | Optional, up to 90 characters. Used as the headline on photo posts. |
| Media | 1 to 35 images or videos. One video, or up to 35 images as a photo post. Videos and images cannot be mixed. |
| Placement | None. |
| Also supported | Scheduling with scheduledAt, sending a draft to the network, several media items in one post, metrics for published posts (get_metrics). |
After sending. TikTok reviews every video before anyone else can see it, usually within minutes, and does not tell Mellow when it is done, so a TikTok reads as sent rather than live and links to the profile. An account whose region is Russia cannot publish through an app: TikTok blocks the video as created in Russia, while the same account's posts from a phone abroad go out. Some accounts can change the region (Settings and privacy → Account → User information → Account region), and many registered in Russia have no such item; for those, set `isDraft` so the video lands in the TikTok inbox and is posted from the phone. A song baked into the file that you don't hold the rights to can get a video muted; in a draft, a sound from TikTok's library can be added instead.
Promotion. A post that promotes a product, business or service has to say so, and TikTok labels it: `discloseYourBrand` when it promotes your own ("Promotional content"), `discloseBrandedContent` when another brand pays or gifts you for it ("Paid partnership", which cannot be private). Both may be set. Sent with neither, a promotional video is flagged by TikTok itself, and its owner is asked in the app to disclose it within 24 hours or its reach in For You may be limited.
Through the API a video can run up to 10 minutes, and each creator’s own ceiling may be 3, 5 or 10 minutes; a photo post takes up to 35 images with a title of up to 90 characters (TikTok for Developers, read on 1 October 2026).
When validate_post refuses the post
Read ok, issues and notes in the result. The check publishes nothing and reports every problem at once, each with its field and, for a network rule, its channel. Fix them together and validate again.
| Issue code | What it means | What to change |
|---|---|---|
media_kinds_mixed | Images and a video in one TikTok post. | One video, or images only as a photo post. |
media_too_many | More than 35 images. | Split them across two photo posts. |
title_too_long | A photo post title over 90 characters. | Shorten the title; the caption can be longer. |
branded_content_private | A paid partnership (discloseBrandedContent) set to private. | Make it public, or drop the branded-content flag. |
promotion_undisclosed | A note, not a refusal: the caption sends people to a website and the post says neither way whether it promotes something. | Set discloseYourBrand or discloseBrandedContent as true or false. |
Other refusals concern the request or the grant: schedule_in_past (use a future time with a UTC offset), insufficient_scope (approve a delegation with the missing permission), channel_out_of_scope (the channel is not in the grant), and at creation daily_limit_reached and idempotency_key_reused. A passing check is not proof of publication: TikTok can still refuse the media or the account. The free post checker runs the same input rules on a draft before you connect anything.
Prompts you can paste
Replace the bracketed parts. Each prompt names the tools to call, so the assistant does not have to guess the order.
Check the connection, read-only
Use only Mellow Hub. Call whoami, then list_channels, then list_platforms.
Tell me my TikTok channel ID, whether this connection is in review or
autopilot mode, how many posts it may still create today, and TikTok's
rules, including what happens after a video is sent. Do not create anything.A video as a draft, finished in the TikTok app
Use Mellow Hub. Send the video at [public https URL of an MP4] to my TikTok
as a draft (options.tiktok.isDraft true), with this caption: [caption].
Call register_media, then validate_post, then create_post once with
idempotencyKey "tiktok-draft-[short-name]", then get_post. Tell me to open
the TikTok inbox to add a sound and post it.A video promoting my own product, public
Use Mellow Hub. Post the video at [public https URL] to my TikTok, public,
comments on, with this caption: [caption with your link].
It promotes my own product: set options.tiktok.discloseYourBrand to true.
Validate, fix every issue, then create_post once with idempotencyKey
"tiktok-[short-name]-1" and get_post. Report the TikTok target's status and
remind me that TikTok reviews the video before others can see it.Media has to be reachable at a public https URL when TikTok fetches it. An agent that can make HTTP requests, such as Claude Code or a script of your own, can instead call request_upload_url, send a local file with PUT to the returned uploadUrl and use the returned mediaUrl. An assistant that only has Hub’s tools cannot send file bytes itself.
Publish once, then read the TikTok result
create_post is the step that publishes or schedules. It needs an idempotencyKey of 8 to 120 letters, digits or the characters . _ : -, stable for this post. If the response is lost or times out, send the same request with the same key: Hub returns the original post instead of making a second one. Reusing a key for different content is refused.
Under a review-mode grant the post comes back as pending_review and waits until you approve it, signed in, in Hub. Under autopilot it goes out at scheduledAt, or immediately without it. Always write scheduledAt with Z or an explicit UTC offset.
Then call get_post and read the TikTok entry in targets, not only the post’s status. publishing means TikTok has not reported a result yet; published comes with the post’s link; failed comes with the network’s message. In a post to several networks each target settles on its own and the post can end partial: republish only the failed channel, with a new key. Once TikTok has published a post, Hub cannot edit or delete it; cancel_post works only before it goes out.
Each destination counts once against your plan: one post to TikTok and two other networks is three publications. Validating, drafting and connecting work without a plan; publishing needs an active one. See plans.
What Mellow has tested with TikTok
Production records on 1 October 2026 show nine TikTok uploads through Hub between September 5 and September 30, on one ordinary TikTok account and one TikTok Business account, each accepted by TikTok and reported as published. Some came through Hub’s MCP endpoint: a video sent by a Claude Code session on September 29 together with Instagram, Facebook, Threads, LinkedIn and X, and a post Claude created through its claude.ai connector on September 30.
Both accounts are registered in Russia. On each video’s own page TikTok answers with the status ru_create_block, and the video is visible to its owner only, while the same accounts’ posts from a phone abroad are public. TikTok has not stated a reason. Accounts registered elsewhere have not been tested, so a public TikTok post through the API remains unverified.
Questions
Is there an official TikTok MCP server?
Yes, for ads: the TikTok for Business MCP server, announced on May 13, 2026, manages campaigns and reports. It does not post to a profile. Posting from an assistant goes through a publishing service such as Mellow Hub.
Why is my TikTok posted through an API private?
Usually because the app behind it has not passed TikTok’s audit: until then TikTok makes everything it posts private. On accounts registered in Russia, TikTok also keeps API uploads to their owner, which is what we see on our own test accounts. A draft sent to the TikTok inbox and posted from the phone avoids both.
Can Claude add a trending sound to a TikTok?
Not through the API: a sound from TikTok’s library is chosen in the app. Send the video as a draft and add the sound in the TikTok inbox before posting.
Do I have to label promotional TikToks?
Yes. TikTok asks every post that promotes a product, business or service to say so. In Hub, set discloseYourBrand for your own products and discloseBrandedContent for a paid partnership; a promotional post sent without either may be flagged by TikTok and its reach limited.
Related
- How to schedule TikTok posts, in TikTok itself and with a tool.
- Repurpose one video for TikTok, Reels and Shorts.
- Publish to social media with an MCP server: the workflow for every network.
- Before an AI agent posts: an MCP checklist.
- API and MCP reference and rules for every network.
- Plans: each destination counts once against the monthly publications.