Skip to content
Get MCP AdsGet MCP Ads, home

MCP server

TikTok Ads MCP Server

Auction reporting, creative fatigue recipes, audience overlap, Spark Ads joins.
https://mcp.getmcpads.com/tiktok-ads/mcp
Start free

This endpoint serves TikTok Ads on its own. One shared URL reaches every platform you connect.

64
Tools
29
That write
277
Metrics
18
Dimensions

Ask it

What you can ask it.

Real questions, with the tools each one resolves to. Every tool named below is in the catalogue on this page.

4 questions

One exchange

You type the sentence into your assistant. TikTok Ads answers through the tools named here, and nothing else is called.

Every question, every platform

Claude

“Which TikTok creatives are fatiguing, and what should we swap them for?”

Resolves to3 tools
  • tiktok_get_creative_fatigue_recipes
  • tiktok_get_insights
  • tiktok_get_creatives

Reads ad-level daily reporting, spots the frequency and CTR decay pattern, and returns the refresh recipes TikTok's own diagnostics imply.

3 more

Are two of our TikTok ad groups bidding against each other?

Compares targeting fields, custom audiences and saved audiences across ad groups and reports where the overlap is large enough to matter.

tiktok_get_audience_overlaptiktok_get_adgroupstiktok_get_audience_details

Spend, CPA and ROAS by campaign across all four platforms, last 7 days against the 7 before.

One request, four APIs. Each platform's insights tool plans its own query, then the assistant lines the rows up in a single table.

meta_get_insightsgoogle_ads_get_insightstiktok_get_insightspinterest_run_report

Relaunch the TikTok campaigns we paused during the stock shortage.

Finds the campaigns by delivery status and previous status, then resumes them and confirms the new budget on each.

tiktok_get_delivery_statustiktok_update_campaign_statustiktok_update_campaign_budget

Playbooks

The work it does every week.

Audits, weekly reports and the rest of the recurring jobs that call a TikTok Ads tool. Each one is written against the shipped gateway, so following it works.

The ledger

Every TikTok Ads tool, as the gateway ships it.

Each description is the one the tool reports to your assistant during discovery, which is what it reads before deciding to call it.

29 write

What it can change: Create paused campaigns, ad groups and ads, including native Smart+ workflows. Edit targeting, budgets, schedules and supported creative fields; upload images and videos. Preview and confirm changes. Every write previews first.

64 tools

  • tiktok_create_adgroupwrite

    Create DISABLED classic TikTok adgroup. No option to launch active. Native objective/format eligibility is enforced by TikTok. Local preview by default. No automatic retry; advertiser ownership is checked before applying.

  • tiktok_create_adswrite

    Create DISABLED classic TikTok ads (video, image, carousel or authorized Spark content). No option to launch active. Native objective/format eligibility is enforced by TikTok. Local preview by default. No automatic retry; advertiser ownership is checked before applying.

  • tiktok_create_campaignwrite

    Create a TikTok campaign. It is always created disabled and there is no option to create it running. Previews by default.

  • tiktok_create_campaign_advancedwrite

    Create DISABLED classic TikTok campaign. No option to launch active. Native objective/format eligibility is enforced by TikTok. Local preview by default. No automatic retry; advertiser ownership is checked before applying.

  • tiktok_create_cta_portfoliowrite

    Create a dynamic CTA portfolio from the exact approved recommendations returned by creative/cta/recommend for this advertiser. Use its result.creative_portfolio_id as ad_configuration.call_to_action_id for Smart+ Spark website/app ads. Creates no ad and changes no delivery status. Local preview by default. No automatic retry; advertiser ownership is checked before applying.

  • tiktok_create_custom_identitywrite

    Create an advertiser-owned CUSTOMIZED_USER advertising identity for Pangle or Global App Bundle. Does not create a public TikTok profile or enable delivery. Custom identities cannot be used for new TikTok-placement ads. Uses TikTok’s default avatar. Local preview by default. No automatic retry; advertiser ownership is checked before applying.

  • tiktok_create_smart_plus_adwrite

    Create DISABLED upgraded Smart+ TikTok ads (video, image, carousel or authorized Spark content). No option to launch active. Native objective/format eligibility is enforced by TikTok. Local preview by default. No automatic retry; advertiser ownership is checked before applying.

  • tiktok_create_smart_plus_adgroupwrite

    Create DISABLED upgraded Smart+ TikTok adgroup. No option to launch active. Native objective/format eligibility is enforced by TikTok. Local preview by default. No automatic retry; advertiser ownership is checked before applying.

  • tiktok_create_smart_plus_campaignwrite

    Create DISABLED upgraded Smart+ TikTok campaign. No option to launch active. Native objective/format eligibility is enforced by TikTok. Local preview by default. No automatic retry; advertiser ownership is checked before applying.

  • tiktok_get_adgroups

    Read full native ad group configuration including targeting, custom/lookalike audience references and exclusions, geo, language, age/gender, placements, interests/behaviors, budget and schedule. Set smartPlus:true for upgraded Smart+ targeting_spec. Missing fields are unknown, not unrestricted targeting. Paginated.

  • tiktok_get_ads

    List ads for a TikTok advertiser. Returns ad ID, name, operation status, and creative info.

  • tiktok_get_advertiser_info

    Get detailed information for specific TikTok advertiser accounts: currency, timezone, status, balance.

  • tiktok_get_asset_urls

    Re-resolve fresh, publicly fetchable URLs for specific TikTok library assets (file/video/ad/info and file/image/ad/info). Call at display or download time: every TikTok media URL is signed and expires.

  • tiktok_get_async_report_status

    Check a TikTok async report task status by taskId when async report endpoints are available. No report creation or mutation is performed.

  • tiktok_get_audience_details

    Get custom/lookalike/saved audience details where TikTok DMP endpoints are accessible. Read-only only.

  • tiktok_get_audience_overlap

    Read-only audience overlap diagnostics across ad groups, custom audiences, saved audiences, and targeting fields.

  • tiktok_get_audience_report

    Read TikTok AUDIENCE performance reports by age or gender at advertiser, campaign, ad group or ad level, including delivery from eligible Smart+ campaigns. Multiple demographics return separate reports, not a joint distribution. Explicit pagination and native provider errors; no inference of configured targeting or Custom Audience membership.

  • tiktok_get_audiences

    List custom and lookalike audiences for a TikTok advertiser account.

  • tiktok_get_campaigns

    List campaigns for a TikTok advertiser account. Returns campaign ID, name, status, budget, and objective.

  • tiktok_get_carousel_music

    Get TikTok music recommendations for exactly the uploaded images in a standard, non-catalog image ad (one card) or carousel. Verifies each image is carousel-usable. Read-only; select a returned music_id in the approval preview and use the same images in the ad. Music is for use on TikTok only.

  • tiktok_get_creative_fatigue_recipes

    Find likely creative fatigue patterns from ad-level daily reporting and return read-only refresh recipes. Does not create, edit, or upload creatives.

  • tiktok_get_creatives

    Get creative details (video, image, text) for specific ads in a TikTok advertiser account.

  • tiktok_get_delivery_status

    Aggregate campaign, ad group, and ad delivery status/operation_status with simple diagnostics.

  • tiktok_get_entities_raw

    List TikTok campaigns, ad groups, or ads with caller-selected native fields, filtering, sorting, and pagination. This GET-only escape hatch exposes newly released entity fields without waiting for the MCP's curated schemas.

  • tiktok_get_events

    Discover pixel/app events or accessible tracking diagnostics for an advertiser. Uses best-effort endpoint checks plus reporting dimensions as fallback.

  • tiktok_get_insights

    Query TikTok Ads performance insights using the current native/calculated metric catalog and query planning. Use tiktok://metrics resource to see available metrics. Use tiktok://dimensions for dimensions. Age/gender dimensions route automatically to AUDIENCE reports via tiktok_get_audience_report, including campaign/ad group levels. Other dimensions use the BASIC planner. Multiple audience breakdowns remain separate reports, never joined.

  • tiktok_get_pixels

    List TikTok pixels and, when permissions allow it, pixel event metadata for an advertiser. Falls back with explicit warnings when endpoints are unavailable.

  • tiktok_get_read_endpoint

    Advanced GET-only TikTok Business API escape hatch for documented JSON read endpoints not yet modeled by a specialized MCP tool. Relative v1.3 paths and JSON-compatible query parameters are validated; OAuth, mutations, downloads, and lead-record paths are blocked.

  • tiktok_get_report_raw

    Run a native TikTok BASIC or AUDIENCE synchronous report with caller-selected dimensions and metrics. AUDIENCE supports demographics such as age/gender at campaign/adgroup levels; tiktok_get_audience_report provides a guided path. Use when a current API field is not yet in tiktok://metrics; unlike tiktok_get_insights, this tool does not calculate aliases or auto-split incompatible selections.

  • tiktok_get_search_ads_maturity

    Diagnose TikTok Search Ads maturity from keyword/search-term reporting and optional keyword recommendation endpoints. Read-only diagnostics only.

  • tiktok_get_shop_catalog_diagnostics

    Read-only TikTok Shop/catalog/e-commerce diagnostics. Tries catalog reporting first, then Shop auction metrics, and returns endpoint warnings when catalog permissions are unavailable.

  • tiktok_get_spark_ads

    Return Spark Ads context from ad fields when available, with a conservative fallback if Spark-specific fields are not supported.

  • tiktok_get_spark_organic_joins

    Join accessible Spark Ads fields with paid page/post reporting and optional organic identity/post endpoints when permissions allow. Read-only only.

  • tiktok_get_targeting

    Read configured ad group targeting and audience references: custom/lookalike inclusions/exclusions, geo, language, age/gender, placements, interests and behaviors. Supports classic and upgraded Smart+ (smartPlus:true), preserving targeting_spec and automatic targeting settings. Does not infer delivered audiences or hidden Smart+ signals. Use tiktok_get_audiences for audience names/types and tiktok_get_audience_report for delivered demographics.

  • tiktok_get_targeting_catalog

    Read TikTok targeting and planning catalogs: locations, languages, interests, behaviors, hashtags, Search Ads keyword ideas/health, devices, carriers, contextual tags, content exclusions, and time zones.

  • tiktok_get_uploaded_video

    Read one uploaded video from this advertiser’s media library. Returns ready only after its media information is available with positive duration and dimensions. Does not upload again.

  • tiktok_get_video_assets

    Return ad-linked TikTok video asset metadata from ad/get and video material endpoints when available.

  • tiktok_get_write_context

    Read the exact TikTok entity, parent settings and advertiser currency/timezone before editing or building a new configuration. Read-only.

  • tiktok_health_check

    Read-only health check for TikTok credentials, accessible advertisers, and advertiser info. Never returns tokens or secrets.

  • tiktok_list_ad_images

    List the advertiser's whole image library (file/image/ad/search): file name, dimensions, signature, carousel usability, and a publicly served image URL signed for roughly thirty days (image_url_expires_at gives the exact instant).

  • tiktok_list_ad_videos

    List the advertiser's whole video library (file/video/ad/search): file name, duration, dimensions, signature, and publicly served preview and cover URLs. Every TikTok URL is signed and expires after roughly six hours: re-resolve with tiktok_get_asset_urls before use.

  • tiktok_list_advertisers

    List all TikTok advertiser accounts accessible with the current token. Returns advertiser ID, name, and status.

  • tiktok_rename_adwrite

    Rename one classic TikTok ad. Does not change its budget, creative content or status. Local preview by default. No automatic retry; advertiser ownership is checked before applying.

  • tiktok_rename_adgroupwrite

    Rename one classic TikTok adgroup. Does not change its budget, creative content or status. Local preview by default. No automatic retry; advertiser ownership is checked before applying.

  • tiktok_rename_campaignwrite

    Rename one classic TikTok campaign. Does not change its budget, creative content or status. Local preview by default. No automatic retry; advertiser ownership is checked before applying.

  • tiktok_search_keywords

    Get keyword suggestions for TikTok Search Ads. Returns recommended keywords with search volume estimates.

  • tiktok_update_ad_statuswrite

    Pause or reactivate exactly one classic ad. Local preview by default. No automatic retry; advertiser ownership is checked before applying.

  • tiktok_update_adgroup_budgetwrite

    Change the budget of a TikTok ad group. Amount in the account currency, sent as is. Previews by default.

  • tiktok_update_adgroup_configurationwrite

    Update classic TikTok adgroup. Status is unchanged. Native objective/format eligibility is enforced by TikTok. Local preview by default. No automatic retry; advertiser ownership is checked before applying.

  • tiktok_update_adgroup_statuswrite

    Pause or reactivate a TikTok ad group. Previews by default.

  • tiktok_update_adswrite

    Update classic TikTok ads (video, image, carousel or authorized Spark content). Status is unchanged. Native objective/format eligibility is enforced by TikTok. Local preview by default. No automatic retry; advertiser ownership is checked before applying.

  • tiktok_update_campaign_budgetwrite

    Change a TikTok campaign budget, in the account currency. Previews by default.

  • tiktok_update_campaign_configurationwrite

    Update classic TikTok campaign. Status is unchanged. Native objective/format eligibility is enforced by TikTok. Local preview by default. No automatic retry; advertiser ownership is checked before applying.

  • tiktok_update_campaign_statuswrite

    Pause or reactivate a TikTok campaign. Previews by default.

  • tiktok_update_smart_plus_adwrite

    Update upgraded Smart+ TikTok ads (video, image, carousel or authorized Spark content). Status is unchanged. Native objective/format eligibility is enforced by TikTok. Local preview by default. No automatic retry; advertiser ownership is checked before applying.

  • tiktok_update_smart_plus_ad_statuswrite

    Pause or reactivate exactly one Smart+ ad. Local preview by default. No automatic retry; advertiser ownership is checked before applying.

  • tiktok_update_smart_plus_adgroupwrite

    Update upgraded Smart+ TikTok adgroup. Status is unchanged. Native objective/format eligibility is enforced by TikTok. Local preview by default. No automatic retry; advertiser ownership is checked before applying.

  • tiktok_update_smart_plus_adgroup_statuswrite

    Pause or reactivate exactly one Smart+ adgroup. Local preview by default. No automatic retry; advertiser ownership is checked before applying.

  • tiktok_update_smart_plus_campaignwrite

    Update upgraded Smart+ TikTok campaign. Status is unchanged. Native objective/format eligibility is enforced by TikTok. Local preview by default. No automatic retry; advertiser ownership is checked before applying.

  • tiktok_update_smart_plus_campaign_statuswrite

    Pause or reactivate exactly one Smart+ campaign. Local preview by default. No automatic retry; advertiser ownership is checked before applying.

  • tiktok_update_smart_plus_material_statuswrite

    Pause or reactivate selected creative materials inside one upgraded Smart+ ad. Parent campaign, ad group and ad statuses are unchanged; the shared library asset is not modified. Local preview by default. No automatic retry; advertiser ownership is checked before applying.

  • tiktok_upload_ad_imagewrite

    Import a image from a public HTTPS media URL or base64 file (up to 5 MiB). A single returned media ID is exposed at media.id, with the native receipt preserved in result. TikTok may process it asynchronously; acceptance is not proof the media is ready. Local preview by default. No automatic retry; advertiser ownership is checked before applying.

  • tiktok_upload_ad_videowrite

    Import a video from a public HTTPS media URL or base64 file (up to 5 MiB). A single returned media ID is exposed at media.id, with the native receipt preserved in result. TikTok may process it asynchronously; acceptance is not proof the media is ready. Local preview by default. No automatic retry; advertiser ownership is checked before applying.

  • tiktok_validate_query

    Validate a TikTok metric/dimension combination BEFORE executing. Checks dimension grouping rules, lifetime compatibility, and metric/dimension compatibility.

Catalogues

What you can measure, and how you can cut it.

The full catalogues live in the reference, where every entry carries the API field it maps to and the constraints that come with it. Here is their shape.

Metrics

277

App
68
Website
27
Calculated
26
Attribution
25
Tiktok
23
Skan
18
Core
16
Shop
15
Video
12
Social
9
Instant experience
8
Interactive
8
Offline
8
Live
7
Clicks
5
Messaging
2

All 277 metrics

Dimensions

18

Id
4
Targeting
4
Conversion
3
Search
3
Asset
2
Time
2

All 18 dimensions

Open source

Or run TikTok Ads yourself.

This server is published under Apache 2.0. Read every line, fork it, or run it on your own machine with your own credentials. Nothing is proxied through us.
npx -y @getmcpads/tiktok-ads-mcp-server
MCP Registry
com.getmcpads/tiktok-ads
Licence
Apache 2.0