TikTok Ads MCP
by AdsMCP· v0.1.0MITView source

Pull yesterday's TikTok Ads spend, ROAS, and CTR in 30 seconds — across every client account, from inside Claude.

Built for paid-media operators running multiple TikTok ad accounts. One sign-in covers every client. Self-host the Python server, or skip the TikTok developer review entirely via the hosted endpoint.

Morning report
20 min/day30 sec
Client accounts
1 by 1All in 1 chat
Setup
Days~1 min

Who this is for

Getting access to TikTok's advertising data is more cumbersome than Facebook. Marketers wait days for TikTok to approve their developer app before any reporting tool can talk to their ad accounts.

kitchn.io — TikTok ad reporting onboarding

How this changes your work

Daily TikTok account health check

Today

Open TikTok Ads Manager, click into each campaign, copy yesterday's spend and ROAS by ad group, paste into Notion. 20 minutes — every morning, before the actual work starts.

With TikTok Ads MCP
You ask

Show me yesterday's TikTok spend, ROAS, and CTR by ad group across my active campaigns. Flag anything where CTR dropped >25% day-over-day.

Claude

Yesterday's TikTok account health

5 active campaigns, 18 ad groups. Total spend $1,240. Avg ROAS 2.7. 3 ad groups with CTR drop >25%: AG_payment (-31%), AG_video2 (-28%), AG_holiday (-26%).

Live numbers from your TikTok ad account — same data Ads Manager shows, without the click-through.

20 min → 30 sec

Replaces tab-juggling across TikTok Ads Manager campaign + ad-group views

Switch between client ad accounts

Today

Log out of TikTok Ads Manager, log back in with another client's seat, generate a fresh access token, paste it into your script. Per-client friction every time you change accounts.

With TikTok Ads MCP
You ask

Switch to advertiser account act_99182 and pull last week's campaign performance.

Claude

Switched to BrandY Q4 account

Now operating on act_99182 (BrandY Q4). 8 campaigns active, total spend $9,820 last 7 days. Top performer: 'TT-creator-q4' (ROAS 4.1).

One sign-in covers every client account you have access to — no re-logging in to switch.

5 min → 1 chat message

One sign-in, many client accounts

Monday weekly client performance report

Today

Pull every campaign manually, export to CSV, transpose into a Google Sheet, build the week-over-week deltas by hand. 90 minutes every Monday before strategy.

With TikTok Ads MCP
You ask

Pull week-over-week campaign performance for all active TikTok campaigns. Show spend, conversions, CPA, ROAS deltas vs last week.

Claude

Weekly TikTok campaign report

11 active campaigns. Total spend $14,820 (-8% WoW). Avg CPA $42 (+12% WoW — flag for review). 4 campaigns with CPA spike: TT-spring (+38%), TT-launch-b (+27%), TT-creator-q4 (+18%), TT-uplift (+14%).

Last 7 days vs the 7 days before — Claude builds the delta table so you arrive at Monday already knowing where to look.

90 min → 90 sec

Native multi-period composition; no spreadsheet step

Skip the TikTok developer review entirely

Today

Register as a TikTok Developer, register your app, wait for TikTok to approve it, generate access tokens, set up the redirect handler. Days of waiting before you can pull a single report.

With TikTok Ads MCP
You ask

Connect my TikTok ad account.

Claude

TikTok ad account connected

Authenticated 1 advertiser account (act_99182). About 1 minute via the AdsMCP hosted endpoint — no TikTok Developer Portal app review required.

AdsMCP runs the developer relationship with TikTok so you don't have to.

Days → ~1 minute

Hosted endpoint absorbs the TikTok app-review process

Works with

Proof

20 min → 30 sec

morning ad health check across all your client accounts

Replaces clicking through TikTok Ads Manager for each campaign

50+

client ad accounts you can pull from one sign-in

Single TikTok For Business consent covers every advertiser the user can access

Days → ~1 min

from 'I want TikTok reports' to 'Claude is connected'

Hosted endpoint at adsmcp.com/onboarding skips TikTok's app-review wait

Mon AM

weekly client roll-up moves from 90-minute spreadsheet to one chat

Composed week-over-week deltas, no CSV step

Free

MIT-licensed open source — hosted plan priced separately

pyproject.toml license=MIT

Use it with

TikTok Ads MCP works with Claude Desktop, Claude Code, Cursor, Codex, Gemini, Windsurf, OpenClaw, and Hermes — any MCP-compatible AI client. Get it running in seconds.

Compatible withClaude Desktop (local stdio)AdsMCP Remote MCP (recommended)
Install on ElasticFlow
One click. Managed auth.

Pre-configured environment, OAuth handled for you. No command-line work.

Install on ElasticFlow →

Managed auth · No laptop setup.

OAuth — authorise in one click

Install on your AI client
Claude Desktop (local stdio) · AdsMCP Remote MCP (recommended)

Copy a config snippet into your AI client and restart.

  • Run `pip install -e .` (or `uv sync`) before first launch.
  • TikTok Developer Portal app review required for local self-host.
{
  "mcpServers": {
    "tiktok-ads": {
      "command": "python",
      "args": ["/path/to/adsmcp-server/run_server.py"],
      "cwd": "/path/to/adsmcp-server",
      "env": {
        "TIKTOK_APP_ID": "your_app_id",
        "TIKTOK_APP_SECRET": "your_app_secret"
      }
    }
  }
}

Restart Claude Desktop after editing claude_desktop_config.json.

Authentication

Steps

  1. Tell TikTok you want to read your ads data

    Go to business-api.tiktok.com → My Apps → Create App. You're registering a developer app — TikTok reviews it (usually 1-3 days) before letting it talk to your ad accounts. If you'd rather not wait, the AdsMCP hosted endpoint at adsmcp.com/onboarding has already cleared this step for you.

  2. Copy the two keys TikTok gives you

    Once your app is approved, copy the App ID and App Secret from the TikTok developer console. Also note your advertiser ID (the act_… number from TikTok Ads Manager) — that's the ad account Claude will work with first.

  3. Drop the keys into your environment

    Add TIKTOK_APP_ID and TIKTOK_APP_SECRET to your .env file (or the env block of your MCP client config). The server reads them at startup, so you never paste sensitive keys into Claude itself.

  4. Sign in to TikTok from Claude

    Ask Claude to start the TikTok connection. Claude gives you a one-time URL — open it, grant access to the advertiser accounts you'll work with, copy the code TikTok returns, and hand it back to Claude in one prompt. From then on Claude renews the connection automatically.

  5. Switch between client ad accounts as you go

    When you manage several clients, ask Claude to switch to a different advertiser ID. You signed in once with a TikTok user who can see all of them — Claude moves between them per prompt, no fresh sign-in needed.

Scopes explained

ScopeWhy this MCP needs it
user_infoConfirms which TikTok For Business user is signed in — used to determine which advertiser accounts Claude can see.
campaign.managementRequired to see your campaigns and ad groups (and to edit them in future releases).
ads.reportingRequired to pull spend, ROAS, CTR, and conversions — the report data.

Troubleshooting

~7 min first time

MIT · v0.1.0 · released today

What Claude can do

What Claude can do for you on TikTok Ads — grouped by the job you'd actually run, not by API namespace. Read-side coverage today (writes coming).

One consent flow at TikTok For Business covers every advertiser account you have access to.

Sign in to TikTok For Business

Sends you to TikTok's consent screen. Grant access to the advertiser accounts you'll operate on.

Finish the sign-in handshake

Takes the authorization code from TikTok's redirect and stores the token. Refresh handled automatically.

Check that you're still signed in

Tells Claude which advertiser accounts are connected and when the session expires.

Switch to a different client account

Move between advertiser accounts without re-logging in — Claude operates on whichever one you point it at.

Show the 4 underlying tools

tiktok_ads_login · tiktok_ads_complete_auth · tiktok_ads_auth_status · tiktok_ads_switch_ad_account

Read-side coverage of the campaign tree — list, drill into details, see ad groups inside a campaign.

List your live TikTok campaigns

Returns campaign name, objective, daily/lifetime budget, status, and schedule for every campaign in the active advertiser.

Look inside one campaign

Full campaign object — budget rules, bidding, targeting summary, schedule, status timestamps.

List the ad groups inside a campaign

Per ad group: targeting spec, budget, status, conversion goal.

Show the 3 underlying tools

tiktok_ads_get_campaigns · tiktok_ads_get_campaign_details · tiktok_ads_get_adgroups

Metrics at campaign and ad-group level. Date presets (last 7 days, last 30 days) or custom ranges. Breakdowns by placement, audience, geo, hour.

Get campaign performance — spend, ROAS, CTR, conversions

Headline metrics for every campaign. Date presets or custom range. Use this for the daily morning roll-up.

Get ad-group performance with breakdowns

Same metrics as campaign performance plus breakdowns by placement, age, gender, country, and hour — the level where creative diagnosis lives.

Show the 2 underlying tools

tiktok_ads_get_campaign_performance · tiktok_ads_get_adgroup_performance

Common questions

Do I have to register as a TikTok developer to use this?

Only if you self-host the Python server. For local install: yes, register at the TikTok For Business Developer Portal, submit your app for review, wait days for approval. To skip all of that, use the hosted endpoint at adsmcp.com/onboarding — AdsMCP runs the developer side of the relationship and gets you to a working connection in about a minute.

kitchn.io — 'TikTok makes it more cumbersome than Facebook to get access to its Ads API.'
How many client ad accounts can I run from one sign-in?

As many as the TikTok user you sign in with can access. One consent flow covers every advertiser account on that user's TikTok For Business — Claude switches between them with one prompt. Agencies running 50+ client accounts can run them all from a single session without re-logging in for each.

tokportal.com — TikTok multi-account scaling at scale
Will Claude change my campaigns, or just read them?

v0.1.0 only reads — list campaigns, drill into details, pull performance metrics. Claude can't pause an ad group, change a budget, or launch a campaign yet. Write actions are on the roadmap. For the full read + write surface today, the hosted MCP at adsmcp.com covers more operations than the open-source repo.

Is this an official TikTok product?

No. It's an open-source community project by AdsMCP under MIT license. The hosted endpoint at adsmcp.com is operated by AdsMCP, not by TikTok.

I run TikTok ads for many clients — will TikTok flag the API traffic?

Two real risks: TikTok's per-app rate ceiling (1000 requests per hour) and account-trust signals when an automated tool talks to many advertisers from one IP. The server has built-in throttling and retry. For 50+ accounts at scale, the hosted MCP is the safer path — it distributes traffic across warmed credentials and IP pools that TikTok's risk engine doesn't flag.

tokportal.com — TikTok risk-engine + account trust
What does 'Alpha' mean for my agency workflow?

The open-source repo is at v0.1.0 — read-side basics are stable and used daily, but the tool list will grow and a few signatures may change in coming minor versions. For production agency workloads, the AdsMCP hosted MCP carries a stability commitment the open-source repo doesn't. If you self-host, pin the version in your pyproject.toml and watch the changelog before upgrading.

What's new

  • vv0.1.014-05-2026

    First public release. Claude can: sign in to your TikTok For Business account, switch between client advertiser accounts, list campaigns and ad groups, pull spend / ROAS / CTR / conversions with breakdowns by placement, age, gender, country, hour. Read-only — write actions (pause, edit budget, launch) ship in later releases. MIT-licensed; built-in retry handles TikTok rate spikes.