TikTok Ads by Get MCP Ads
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LOG_LEVEL | No | Logging level: debug, info, warn, error. | info |
| TIKTOK_BC_ID | No | Optional Business Center ID. | |
| TIKTOK_APP_ID | Yes | Required. The App ID the token belongs to. | |
| TIKTOK_APP_SECRET | No | Optional, for endpoints needing app authentication. | |
| TIKTOK_ACCESS_TOKEN | Yes | Required. Your access token for the TikTok Business API. | |
| TIKTOK_ADVERTISER_ID | No | Optional default advertiser ID, saves passing it on every call. | |
| TIKTOK_ENABLE_WRITES | No | Set to '1' to register the 29 write tools (disabled by default). |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| resources | {
"subscribe": false,
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| tiktok_health_checkA | Read-only health check for TikTok credentials, accessible advertisers, and advertiser info. Never returns tokens or secrets. |
| tiktok_list_advertisersA | List all TikTok advertiser accounts accessible with the current token. Returns advertiser ID, name, and status. |
| tiktok_get_advertiser_infoA | Get detailed information for specific TikTok advertiser accounts: currency, timezone, status, balance. |
| tiktok_get_campaignsA | List campaigns for a TikTok advertiser account. Returns campaign ID, name, status, budget, and objective. |
| tiktok_get_adgroupsA | 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_targetingA | 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_audience_reportA | 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_adsB | List ads for a TikTok advertiser. Returns ad ID, name, operation status, and creative info. |
| tiktok_get_insightsA | 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_creativesB | Get creative details (video, image, text) for specific ads in a TikTok advertiser account. |
| tiktok_get_audiencesA | List custom and lookalike audiences for a TikTok advertiser account. |
| tiktok_search_keywordsA | Get keyword suggestions for TikTok Search Ads. Returns recommended keywords with search volume estimates. |
| tiktok_validate_queryA | Validate a TikTok metric/dimension combination BEFORE executing. Checks dimension grouping rules, lifetime compatibility, and metric/dimension compatibility. |
| tiktok_get_pixelsA | 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_eventsA | Discover pixel/app events or accessible tracking diagnostics for an advertiser. Uses best-effort endpoint checks plus reporting dimensions as fallback. |
| tiktok_get_delivery_statusB | Aggregate campaign, ad group, and ad delivery status/operation_status with simple diagnostics. |
| tiktok_get_async_report_statusA | Check a TikTok async report task status by taskId when async report endpoints are available. No report creation or mutation is performed. |
| tiktok_get_video_assetsB | Return ad-linked TikTok video asset metadata from ad/get and video material endpoints when available. |
| tiktok_get_spark_adsA | Return Spark Ads context from ad fields when available, with a conservative fallback if Spark-specific fields are not supported. |
| tiktok_get_audience_detailsB | Get custom/lookalike/saved audience details where TikTok DMP endpoints are accessible. Read-only only. |
| tiktok_get_shop_catalog_diagnosticsA | 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_search_ads_maturityA | Diagnose TikTok Search Ads maturity from keyword/search-term reporting and optional keyword recommendation endpoints. Read-only diagnostics only. |
| tiktok_get_creative_fatigue_recipesA | 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_audience_overlapA | Read-only audience overlap diagnostics across ad groups, custom audiences, saved audiences, and targeting fields. |
| tiktok_get_spark_organic_joinsB | Join accessible Spark Ads fields with paid page/post reporting and optional organic identity/post endpoints when permissions allow. Read-only only. |
| tiktok_list_ad_videosA | 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_ad_imagesA | 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_get_asset_urlsA | 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_entities_rawA | 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_report_rawA | 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_targeting_catalogA | 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_read_endpointA | 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_carousel_musicA | 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_uploaded_videoA | 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_write_contextA | Read the exact TikTok entity, parent settings and advertiser currency/timezone before editing or building a new configuration. Read-only. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| tiktok-manifest | |
| tiktok-recipes | |
| tiktok-metrics | |
| tiktok-dimensions | |
| tiktok-compatibility |
TDQS
Scored across 35 tools
Many tools have overlapping boundaries: tiktok_get_campaigns, tiktok_get_adgroups, tiktok_get_ads, and tiktok_get_entities_raw all list entity configurations, while tiktok_get_insights, tiktok_get_audience_report, and tiktok_get_report_raw cover overlapping reporting territory. The descriptions are detailed, but an agent would need very careful parsing to reliably pick the right tool.
All tool names follow a consistent tiktok_{verb}_{noun} pattern in snake_case, with get and list as the dominant verbs. Minor exceptions like tiktok_health_check and tiktok_validate_query still fit the overall readable convention.
35 tools is a large surface for a single server, and many are narrow variants or raw fallback/escape-hatch tools that could be consolidated. While the TikTok Ads domain is broad, the set feels over-decomposed.
For a read-only analytics/insights server, coverage is strong: campaigns, ad groups, ads, audiences, creatives, pixels, events, targeting catalogs, diagnostics, and raw API escape hatches are all represented. The intentional absence of write operations is a scope choice rather than a dead end, though a general-purpose TikTok Ads server would need mutation tools.