Daily TikTok account health check
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.
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.
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.
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.
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.
Pre-configured environment, OAuth handled for you. No command-line work.
Install on ElasticFlow →Managed auth · No laptop setup.
OAuth — authorise in one click
Copy a config snippet into your AI client and restart.
{
"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.
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.
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.
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.
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.
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.
| Scope | Why this MCP needs it |
|---|---|
user_info | Confirms which TikTok For Business user is signed in — used to determine which advertiser accounts Claude can see. |
campaign.management | Required to see your campaigns and ad groups (and to edit them in future releases). |
ads.reporting | Required to pull spend, ROAS, CTR, and conversions — the report data. |
~7 min first time
MIT · v0.1.0 · released today
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.
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.
Replaces tab-juggling across TikTok Ads Manager campaign + ad-group views
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.
Switch to advertiser account act_99182 and pull last week's campaign performance.
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.
One sign-in, many client accounts
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.
Pull week-over-week campaign performance for all active TikTok campaigns. Show spend, conversions, CPA, ROAS deltas vs last week.
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.
Native multi-period composition; no spreadsheet step
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.
Connect my TikTok ad account.
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.
Hosted endpoint absorbs the TikTok app-review process
morning ad health check across all your client accounts
Replaces clicking through TikTok Ads Manager for each campaign
client ad accounts you can pull from one sign-in
Single TikTok For Business consent covers every advertiser the user can access
from 'I want TikTok reports' to 'Claude is connected'
Hosted endpoint at adsmcp.com/onboarding skips TikTok's app-review wait
weekly client roll-up moves from 90-minute spreadsheet to one chat
Composed week-over-week deltas, no CSV step
MIT-licensed open source — hosted plan priced separately
pyproject.toml license=MIT
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.
Sends you to TikTok's consent screen. Grant access to the advertiser accounts you'll operate on.
Takes the authorization code from TikTok's redirect and stores the token. Refresh handled automatically.
Tells Claude which advertiser accounts are connected and when the session expires.
Move between advertiser accounts without re-logging in — Claude operates on whichever one you point it at.
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.
Returns campaign name, objective, daily/lifetime budget, status, and schedule for every campaign in the active advertiser.
Full campaign object — budget rules, bidding, targeting summary, schedule, status timestamps.
Per ad group: targeting spec, budget, status, conversion goal.
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.
Headline metrics for every campaign. Date presets or custom range. Use this for the daily morning roll-up.
Same metrics as campaign performance plus breakdowns by placement, age, gender, country, and hour — the level where creative diagnosis lives.
tiktok_ads_get_campaign_performance · tiktok_ads_get_adgroup_performance
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.'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 scalev0.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.
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.
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 trustThe 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.
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.