Home>Connect>TikTok Ads to Claude Code

Connect TikTok Ads to Claude Code in One Command

By Ahmed Ashraf|Updated September 23, 2026
TikTok Ads Claude Code

Run claude mcp add --transport http paidsync https://mcp.paidsync.ai/mcp, type /mcp, and sign in with your PaidSync login. Claude Code then reaches your TikTok advertiser accounts through 13 tools: performance at advertiser, campaign, ad group and ad level, plus pause, enable, budget and bid changes on existing campaigns. Claude Code asks before it runs each tool.

Manage tier. Claude Code works on campaigns you already run. It does not create new TikTok campaigns.

Free to start · No credit card · OAuth 2.0 sign-in · 530+ tools total

The command

Claude Code talks to remote MCP servers over Streamable HTTP. PaidSync is one of them. Add it once and the same terminal that edits your code can report on and manage your TikTok campaigns.

claude mcp add --transport http paidsync https://mcp.paidsync.ai/mcp

By default that registers the server for the current project only. Add --scope user to make it available in every project on your machine. Run claude mcp list to confirm it is there, then start a session and type /mcp to sign in.

5-Step Setup

1

Sign up at paidsync.ai/signup

Takes 10 seconds. Google or email sign-in. The free plan is 15 tasks a month at $0, no card.

2

Connect TikTok Ads in the PaidSync dashboard

Click Connect on TikTok Ads and sign in with the TikTok account that has access to your advertiser accounts. TikTok Ads authorizes via TikTok OAuth. PaidSync stores the tokens encrypted at rest with AES-256-GCM.

Already inside Claude Code? Ask it to run connect_tiktok_ads. The tool returns an OAuth link to open in your browser.

3

Pick the advertiser Claude Code should work on

Inside a session, list_tiktok_advertisers shows every advertiser account your TikTok sign-in can reach, and set_active_tiktok_advertiser picks the one Claude Code works on. TikTok writes need an active advertiser first.

4

Add PaidSync to Claude Code

In your terminal, run:

claude mcp add --transport http paidsync https://mcp.paidsync.ai/mcp

Start a session, type /mcp, pick paidsync, and sign in with your PaidSync login in the browser window that opens. Claude Code stores the OAuth token for you. No key is pasted anywhere.

Setting this up for a team? Commit a .mcp.json at the repo root so every engineer gets the same connector:

{ "mcpServers": { "paidsync": { "type": "http", "url": "https://mcp.paidsync.ai/mcp" } } }

Prefer an API key, for example for headless runs? Send it in a header, never in the URL, where it would end up in logs:

claude mcp add --transport http paidsync https://mcp.paidsync.ai/mcp --header "Authorization: Bearer $PAIDSYNC_API_KEY"

In a committed .mcp.json, add "headers": { "Authorization": "Bearer ${PAIDSYNC_API_KEY}" } so the key stays in each engineer's environment and never enters git. Applying a change to Google Ads still requires the OAuth sign-in. On other platforms a key can apply changes too, so treat it like a password and prefer OAuth.

5

Test the connection

In a Claude Code session ask: “Show me TikTok spend and conversions by campaign for the last 7 days”

Claude Code returns impressions, clicks, CTR, CPC, CPM, spend and conversions for each campaign. The connection is live.

Free plan includes 15 tasks a month. Pro from $99 a month, Team from $249.

Start Free See a Demo

TikTok Ads prompts to try in Claude Code

Each prompt below maps to tools in the PaidSync TikTok Ads group. Claude Code picks the tool. The last column says whether the call can change anything in the advertiser account.

AskTools it callsChanges your account?
“List my TikTok advertiser accounts and make Acme the active one”list_tiktok_advertisers, set_active_tiktok_advertiserNo
“Show spend, CTR and conversions by campaign for the last 7 days”get_tiktok_performanceNo
“Drill into ad level for the top campaign”get_tiktok_performance, list_tiktok_adsNo
“List the ad groups in this campaign with status and budget”list_tiktok_adgroupsNo
“Pause the campaign with the worst cost per conversion”pause_tiktok_campaignYes, after you confirm
“Raise the budget on the Spring Sale campaign to $150”update_tiktok_campaign_budgetYes, after you confirm
“Lower the bid on this ad group to $0.80”update_tiktok_adgroupYes, after you confirm

Run it headless with claude -p

The -p flag runs Claude Code without the interactive session. Sign in once through /mcp and the stored OAuth token carries over. A report that lands in a file looks like this:

claude -p "Pull last 7 days TikTok performance at ad level and list the ads with the highest spend and no conversions." \ --allowedTools "mcp__paidsync" \ --output-format json > reports/tiktok-ads-$(date +%F).json

Reads run straight through, and so do writes. --allowedTools "mcp__paidsync" allows every PaidSync tool, writes included, with no prompt. For an unattended job, allow only the read tools it needs, each by name as mcp__paidsync__tool_name.

What reads and what writes

Of the 13 TikTok Ads tools, 6 only read and 5 can write. Reads cover advertisers, campaigns, ad groups, ads and performance. Writes cover pausing and enabling campaigns, campaign budgets, campaign names, and ad group status, budget, bid and name. Ad group changes and campaign budget and name changes preview by default with dry_run. Pausing or enabling a campaign has no dry run and needs an explicit confirm.

Over MCP, the approval step is Claude Code’s own prompt. It asks before it runs a tool unless you allowed it with --allowedTools or in your settings. PaidSync adds checks on its side. Deletes, pauses and budget changes need confirm_destructive, and a pre-write rule check blocks unsafe arguments. The approval card and one-tap undo apply only in the PaidSync workspace.

What Claude Code cannot do on TikTok

  • PaidSync does not create TikTok campaigns, ad groups or ads. Build them in TikTok Ads Manager, then manage them from Claude Code.
  • There are no audience or creative upload tools for TikTok in PaidSync.
  • update_tiktok_campaign changes the name only. Status goes through pause_tiktok_campaign and enable_tiktok_campaign, and budget through update_tiktok_campaign_budget.
  • A bid price change on an ad group only applies when the ad group uses a custom bid type.
  • TikTok reporting runs about one to two hours behind, so a check at 9am shows data up to roughly 7am or 8am.

Frequently Asked Questions

How do I connect TikTok Ads to Claude Code?

Sign up at paidsync.ai, connect TikTok Ads via TikTok OAuth in the dashboard, then run claude mcp add --transport http paidsync https://mcp.paidsync.ai/mcp in your terminal. Type /mcp inside a session, pick paidsync, and sign in with your PaidSync login.

Can Claude Code create TikTok campaigns?

No. TikTok is a manage tier platform in PaidSync. Claude Code can report on existing campaigns, pause and enable them, and change budgets and ad group bids. New campaigns are built in TikTok Ads Manager.

Can Claude Code change TikTok budgets?

Yes. update_tiktok_campaign_budget changes a campaign budget and update_tiktok_adgroup changes an ad group budget. Both preview as a dry run first, and Claude Code asks before it runs each tool.

Does it work in headless mode with claude -p?

Yes. Once you have signed in through /mcp, claude -p reuses the stored OAuth token. Reads run straight through. Writes need care. No one is there to answer the Claude Code prompt, so any write tool you allowed with --allowedTools runs straight through. For an unattended job, allow only the read tools it needs.

Is it free?

Yes. The free plan is $0 for 15 tasks a month with no card. Pro starts at $99 a month and Team at $249 a month.

TikTok reports and campaign management. One command in Claude Code.