# TikTok MCP server: post from your AI agent, with your approval

A TikTok MCP server lets an AI agent such as Claude, ChatGPT or Codex work with TikTok through tools. Flaghand is one
for posting: your agent drafts TikTok photo and video posts, checks them and asks you. You approve each exact post
with your passkey, and Flaghand posts it then, or at its time. **TikTok hasn't audited Flaghand's app yet.** Until it
does, a direct post works only for a private TikTok account, as Only me. The other way is sending the post to your
TikTok inbox as a draft, which you finish and publish in the TikTok app.

It's not for reading TikTok: other people's videos, search, trends, analytics or scraping. It doesn't run TikTok ads
either. For those jobs, see [other TikTok MCP servers](#other-tiktok-mcp-servers) below.

## Until TikTok audits the app

TikTok limits apps it hasn't audited. Flaghand's TikTok app is `unaudited`, so today:

- **Posting directly** works only for a private TikTok account, with who can view set to Only me (`SELF_ONLY`).
  Choosing Only me on a public account isn't enough.
- **Sending to the inbox** works for every account. TikTok puts the post in your TikTok inbox as a draft. You finish
  it and publish it in the TikTok app, where you choose who can view it.

When a direct post can't go out, Flaghand's check offers the inbox instead. Flaghand doesn't promise a public TikTok
post until TikTok audits the app.

## Set it up

The server is `https://app.flaghand.com/mcp`. Add it to your app:

- Claude (Free, Pro and Max; Free allows one custom connector): **Customize › Connectors › Add custom connector**,
  enter Flaghand and `https://app.flaghand.com/mcp`, then **Add** and **Connect**, and sign in. On Team and Enterprise an Owner adds
  it under **Organization settings › Connectors**, then each member connects.
- ChatGPT (Business, Enterprise and Edu, on the web): **Plugins › + › Add custom MCP server**, enter `https://app.flaghand.com/mcp`
  under **Connection**, choose **OAuth**, create it as a plugin, install it and sign in. OpenAI's help describes read
  access only on Pro and doesn't establish custom servers on Plus.
- Claude Code: an agent setting this up works over HTTP in its current session, with the steps below. For later
  sessions it registers the server with its token:
  `claude mcp add --scope user --transport http flaghand https://app.flaghand.com/mcp --header 'Authorization: Bearer ${FLAGHAND_TOKEN}'`.
  Only a person typing in Claude Code themselves runs
  `claude mcp add --scope user --transport http flaghand https://app.flaghand.com/mcp`, then `/mcp` to sign in.
- Codex: `codex mcp add flaghand --url https://app.flaghand.com/mcp` adds the server and signs in. With a saved workspace token
  instead: `codex mcp add flaghand --url https://app.flaghand.com/mcp --bearer-token-env-var FLAGHAND_TOKEN` (only the variable's
  name is saved).
- Cursor: merge `{"mcpServers": {"flaghand": {"url": "https://app.flaghand.com/mcp"}}}` into `~/.cursor/mcp.json`, then connect
  Flaghand in Cursor's MCP settings and sign in.
- Gemini CLI: merge `{"mcpServers": {"flaghand": {"httpUrl": "https://app.flaghand.com/mcp", "oauth": {"enabled": true}}}}` into
  `~/.gemini/settings.json`, then run `/mcp auth flaghand` in the next session and sign in.

In Claude and ChatGPT, new and existing accounts use the same sign-in page.
[Start here](/schedule)
to get an account, or create it free on the sign-in page, then click **Allow**. You add a card when you approve your
first post, or to continue after the free start ([current terms](/pricing)).

### A coding agent signing you up over HTTP

Claude Code, Codex or Gemini CLI with no Flaghand account yet:

1. **Read the plans** (no sign-in):

   ```sh
   curl https://app.flaghand.com/api/v1/plans
   ```

2. **Start the sign-up:**

   ```sh
   curl -X POST https://app.flaghand.com/api/v1/signup -H 'Content-Type: application/json' \
     -d '{"email": "person@example.com", "plan": "monthly", "agent_name": "Claude Code"}'
   ```

   Give the person `signup_url` and `for_person` as they are. Save `claim_code` to a private file such as
   `claim.json`: it's a secret, so keep it out of chat and command arguments.
3. **Claim the token** once they've finished:

   ```sh
   curl -X POST https://app.flaghand.com/api/v1/signup/claim -H 'Content-Type: application/json' -d @claim.json
   ```

   A `202` with `"status": "pending"` means they haven't finished: wait the `Retry-After` seconds and claim again.
   Put the token in your secret store and use it with `Authorization: Bearer`.

The full recipe is [set up and connect](https://app.flaghand.com/docs/setup.md).

## Connect TikTok

You connect TikTok on TikTok's own sign-in and consent screen. Your TikTok password is never typed into Flaghand.

- **In Flaghand:** open **Settings** and choose **Connect TikTok**.
- **From your agent:** an agent that signed you up can start it with
  `POST https://app.flaghand.com/api/v1/workspaces/{workspace}/connections/tiktok/start` and give you the link. A connector token
  from Claude or ChatGPT can't start connections, so the agent sends you to Settings instead.

TikTok asks you to allow `user.info.basic`, `video.publish` and `video.upload`. The connection is pinned to that
TikTok account. TikTok's login lasts 2 hours and renews on its own for up to 180 days. A login not renewed in 180
days, or one you revoked in TikTok, shows `expired`: connect it again.

## Draft, approve, post

Ask your agent, for example: "Use Flaghand: make a five-slide TikTok photo post from these notes and send it to me
for approval."

1. **The agent drafts.** A `tiktok_photo` draft has 1 to 35 photos (JPEG, PNG or WebP) or a slideshow Flaghand draws,
   a title of up to 90 characters and a description of up to 4,000. A `tiktok_video` draft has one MP4 or MOV of up
   to 64 MB and a title of up to 2,200 characters. `post_mode` is `"direct"` or `"inbox"`.
2. **The agent checks it.** The check lists everything that would stop it posting, such as a video longer than
   TikTok allows the account. It also lists the choices that are yours to make.
3. **The agent asks you.** It sends one approval link. Nothing reaches TikTok before you approve.
4. **You choose and approve.** For a direct post, TikTok requires you to choose who can view it, with nothing chosen
   for you. Comments, and for videos Duet and Stitch, stay off unless you turn them on. You also say whether it's
   promotional content or a paid partnership. Then you approve with Face ID, Touch ID or a security key. Your passkey
   approval is your consent to TikTok's Music Usage Confirmation. An inbox post takes no choices here: you make them
   in TikTok.
5. **Flaghand posts it.** It goes out now or at its time. Just before a post at a time goes out, Flaghand reads
   TikTok's settings for the account again. If your choices no longer fit, nothing is sent, the post is held and
   you're told.

Afterwards the job reads `posted` with the post's link, `inbox` when it's waiting in your TikTok inbox, or `failed`
with TikTok's reason. Flaghand never sends the same post to TikTok twice.

## What the agent can and can't do on TikTok

| | Through Flaghand today |
|---|---|
| Draft photo posts | Yes. 1 to 35 photos, or a slideshow Flaghand draws from slides |
| Draft video posts | Yes. One MP4 or MOV of up to 64 MB |
| Upload media | Yes |
| Mark a post as made with AI | Yes, on a direct post. An inbox draft can't carry the label; you turn it on in TikTok |
| Check a post and request approval | Yes |
| Approve, schedule or post | No. Only you, with your passkey |
| Pick who can view, comments, Duet, Stitch or disclosure | No. You choose these when you approve |
| Post publicly | Not yet. Until TikTok's audit: private account as Only me, or the inbox |
| Connect your TikTok account | Only if it signed you up, and only by giving you TikTok's own consent link |
| Read TikTok analytics | No. TikTok's posting permissions don't include them. You or the agent can record views and likes in Flaghand by hand |
| Read other accounts, search, comment, like, follow or send messages | No |

The sign-in token has four scopes: `read`, `drafts`, `media` and `request-approval`. No scope can approve, schedule
or post. Right before posting, Flaghand checks your signed approval again and asks TikTok for the account's settings
again. If anything changed since you approved, nothing is sent and you approve again.

## Other TikTok MCP servers

For jobs Flaghand doesn't do:

- **TikTok for Business MCP Server** is TikTok's own, for its ads platform. TikTok's help page says agents can create
  campaigns, pull performance reports, adjust budgets and refine audiences. It's about ads, not posting to a
  creator's account.
- **[Seym0n/tiktok-mcp](https://github.com/Seym0n/tiktok-mcp)** reads TikTok through the TikNeuron service: a video's
  subtitles, a post's details and counts, and video search. It needs a TikNeuron API key. It doesn't post.

## Questions

**Is there a TikTok MCP for Claude?** Yes. In Claude, open Customize › Connectors › Add custom connector, add
https://app.flaghand.com/mcp and sign in. Claude can then draft TikTok photo and video posts and ask you to approve
them. Claude Code, Codex, Cursor and Gemini CLI use the same server.

**Is there an official TikTok MCP server?** TikTok runs the TikTok for Business MCP Server, for its ads platform:
campaigns, budgets, audiences and reports. Its help page doesn't describe posting to a creator's account. Flaghand
posts through TikTok's official Content Posting API, after you sign in on TikTok.

**Can my agent post to TikTok without asking me?** No. Approving takes your passkey, and no Flaghand token can
approve, schedule or post. Flaghand checks your signed approval again right before it posts.

**Will my TikTok posts be public?** Not yet. TikTok hasn't audited Flaghand's app, so a direct post works only for a
private TikTok account, as Only me. Or Flaghand sends the post to your TikTok inbox as a draft, and you publish it in
the TikTok app with the settings you choose there.

**Can it read my TikTok analytics or other accounts?** No. Flaghand reads only your account's name, picture and
current posting options. You or your agent can record a post's views, likes and shares in Flaghand by hand.

**How do I take the agent's access away?** In Flaghand, open Settings › Agents and click Revoke. To disconnect TikTok,
remove the account in Flaghand: it revokes Flaghand's access at TikTok and deletes the stored tokens.

## Related guides

[How to schedule TikTok posts](/docs/guides/how-to-schedule-tiktok-posts) compares TikTok Studio with tools and the
API. [TikTok's Content Posting API, explained](/docs/guides/tiktok-content-posting-api) covers Direct Post, the inbox
and the audit. [How to cross-post to X, LinkedIn and TikTok](/docs/guides/how-to-cross-post-x-linkedin-tiktok) and
[video specs for TikTok, X and LinkedIn](/docs/guides/video-specs-tiktok-x-linkedin) help with one post on several
networks. [Let an AI agent post safely](/docs/guides/let-an-ai-agent-post-safely) explains the approval.
[Flaghand and TikTok](/tiktok) covers permissions and what Flaghand keeps.

## Sources

Checked on November 3, 2026.

- Flaghand: [TikTok](https://app.flaghand.com/docs/tiktok.md), [set up and connect](https://app.flaghand.com/docs/setup.md),
  [agents](https://app.flaghand.com/docs/agents.md)
- TikTok: [Content Sharing Guidelines](https://developers.tiktok.com/doc/content-sharing-guidelines),
  [About TikTok for Business MCP Server](https://ads.tiktok.com/resources/help/article/about-tiktok-for-business-mcp-server)
- [Seym0n/tiktok-mcp](https://github.com/Seym0n/tiktok-mcp)

TikTok is a trademark of its owner. Claude, ChatGPT, Codex, Cursor and Gemini are trademarks of their owners.
Flaghand isn't affiliated with or endorsed by them.

[All guides](/docs/guides.md)
