Nothing in the registry creates campaigns, ad groups or creatives — the surface stops at reporting and lookups, which makes it a comfortable thing to point an assistant at during a spend review. The wasted-spend audit is the one tool that goes beyond raw reporting: it walks campaigns, ad groups and the report API to surface spend and clicks with nothing to show for them.
A local MCP server for the TikTok Ads API. It runs the OAuth flow from inside your MCP client, stores the tokens on your machine, and exposes read tools for campaigns, ad groups, ads, reporting, audiences and pixels.
- Authentication from the client: `tiktok_ads_login`, `tiktok_ads_complete_auth`, `tiktok_ads_auth_status`, `tiktok_ads_switch_ad_account`
- Campaign structure: `tiktok_ads_get_campaigns`, `tiktok_ads_get_campaign_details`, `tiktok_ads_get_adgroups`, `tiktok_ads_get_adgroup_details`, `tiktok_ads_get_ads`, `tiktok_ads_get_ad_details`
- Reporting at every level: `tiktok_ads_get_campaign_performance`, `tiktok_ads_get_adgroup_performance`, `tiktok_ads_get_ad_performance`, and `tiktok_ads_get_audience_breakdown`
- `tiktok_ads_wasted_spend_audit` — a read-only pass over spend and clicks with no conversion signal
- Account and tracking data: `tiktok_ads_get_custom_audiences`, `tiktok_ads_get_advertiser_info`, `tiktok_ads_get_location_info`, `tiktok_ads_get_pixel_list`, `tiktok_ads_get_pixel_event_stats`
- Every listed tool is wired to a real API call — there are no placeholder tools in the registry
Python 3.10 or newer, uv for dependencies, a TikTok For Business account with Marketing API access, and a developer app whose App ID and App Secret go into the client config as `TIKTOK_APP_ID` and `TIKTOK_APP_SECRET`. The app's redirect URI must match the one the server uses. Run the server through uv, not system Python, or the MCP client will start an interpreter without the dependencies. Tokens land in a local file under your home directory — treat it like a password.
One command plus a key — uvx tiktok-ads-mcp, then supply credentials
