tiktok-ads-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LOG_LEVEL | No | Log 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 5 write tools. Write tools are disabled by default. | unset |
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_infoB | Get detailed information for specific TikTok advertiser accounts: currency, timezone, status, balance. |
| tiktok_get_campaignsB | List campaigns for a TikTok advertiser account. Returns campaign ID, name, status, budget, and objective. |
| tiktok_get_adgroupsB | List ad groups for a TikTok advertiser. Returns targeting, budget, optimization goal, and schedule info. |
| tiktok_get_adsC | List ads for a TikTok advertiser. Returns ad ID, name, operation status, and creative info. |
| tiktok_get_insightsA | Query TikTok Ads performance insights. Supports 400+ metrics with intelligent query planning. Use tiktok://metrics resource to see available metrics. Use tiktok://dimensions for dimensions. The query planner automatically splits requests when dimension combinations are incompatible (only 1 ID dimension + 1 time dimension allowed per request). |
| tiktok_get_creativesB | Get creative details (video, image, text) for specific ads in a TikTok advertiser account. |
| tiktok_get_audiencesB | 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_pixelsB | 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_assetsC | Return ad-linked TikTok video asset metadata from ad/get and video material endpoints when available. |
| tiktok_get_spark_adsB | 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_maturityB | 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_overlapB | 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_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 synchronous report with caller-selected dimensions and metrics. 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_catalogC | 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. |
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 27 tools
Many tools have distinct read-only purposes, but there is meaningful overlap among audience tools, creative/video asset tools, and raw/escape-hatch endpoints. The detailed descriptions help an agent choose, but several boundaries (e.g., get_audiences vs. get_audience_details vs. get_audience_overlap) are not immediately obvious.
The naming is predominantly tiktok_get_<object> with a few list_/search_/validate_ exceptions, and everything uses consistent snake_case. The pattern is clear and predictable, with only minor deviations like health_check and validate_query.
27 tools is over the threshold where the set starts to feel heavy, and many are narrow diagnostic or raw-access variants that could be consolidated. The broad read-only scope explains the count, but it still exceeds what most agents need at once.
The server covers the read/diagnostics side of TikTok Ads extensively, including raw escape hatches for new fields. However, there are no create/update/delete operations, which is a notable gap for an 'ads' server unless it is explicitly intended to be read-only.