Integrate TikTok Ads Manager MCP server into your Slack workspace for instant access to your AI agent.
Tools that your AI agent can use through this MCP server to interact with TikTok Ads Manager
Upload an image or video to the TikTok Ads Asset Library and return its asset ID. Always run this tool before Create or Update Ad when using new creative — the ad creation API requires asset IDs, not file URLs. Provide a publicly accessible URL or a /tmp file path. Returns image_id for images and video_id for videos. Supported image formats: JPG, JPEG, PNG. Supported video formats: MP4, MOV, MPEG, AVI. For images, see See the documentation. For videos, see See the documentation.
Update a TikTok custom audience — rename it, or add/remove/replace members via a file of hashed identifiers. To rename only, provide audience_name and omit identifiers/file_path. To modify members, provide identifiers or file_path and set action (APPEND, REMOVE, or REPLACE). The file upload and audience update happen in one tool call. Audience size must remain ≥ 1,000 after the operation. Use List Audiences to find the audience_id. See the documentation
Send a server-side web conversion event to TikTok via the Events API. Use this to report purchases, sign-ups, and other conversions without relying on browser-side tracking. pixel_id is the TikTok Pixel ID found in Events Manager — not the same as advertiser_id. Standard event names: Purchase, CompleteRegistration, ViewContent, AddToCart, InitiateCheckout, Subscribe, Contact, Download. User identifiers (email, phone_number, external_id) must be SHA256-hashed before passing. timestamp uses ISO 8601 format (e.g., 2024-01-15T19:49:27Z). Defaults to current time if omitted. See the documentation
Get information about one or more TikTok posts published via a linked identity, for use as Spark Ad creatives. Returns video duration, dimensions, cover image, authorization status, and visibility. Requires an identity (identity_type + identity_id) — use /identity/get/ to find identities linked to your ad account. Pass either item_id (single post) or item_ids (up to 20 posts). Pass the returned item_id to Create or Update Ad as tiktok_item_id to create a Spark Ad. See the documentation
List campaigns in a TikTok Ads account with optional filters. Returns campaign IDs, names, status, objective, and budget. Use campaign IDs returned here as input to List Ad Groups or Get Report. See the documentation
List custom audiences in a TikTok Ads account. Returns audience IDs, names, types, coverage, validity, and expiry. Returns both owned and shared audiences — use is_creator in the response to check ownership. Use audience IDs returned here as input to Update Audience or Create Lookalike Audience. See the documentation
List ads in a TikTok Ads account with optional filters. Returns ad IDs, names, status, and creative details. Use campaign or ad group IDs from List Campaigns / List Ad Groups to narrow results. See the documentation
List ad groups in a TikTok Ads account with optional filters. Returns ad group IDs, names, status, budget, schedule, and targeting. Use campaign IDs from List Campaigns to filter. Use ad group IDs returned here as input to List Ads or Create or Update Ad. See the documentation
Run a synchronous report to retrieve performance metrics for campaigns, ad groups, or ads. report_type is required. advertiser_id is required for BASIC, AUDIENCE, PLAYABLE_MATERIAL, CATALOG, and TT_SHOP reports; use bc_id for BC reports. data_level is required for BASIC, AUDIENCE, and CATALOG reports. start_date and end_date are required unless query_lifetime is true. dimensions must include an entity ID dimension for the chosen level (campaign_id, adgroup_id, or ad_id) plus a time dimension (stat_time_day or stat_time_hour). Common metrics: impressions, clicks, spend, cpc, cpm, ctr, reach, conversion, cost_per_conversion. See the documentation
Identity tool — call this first when a user references 'my account' or 'my campaigns'. Returns account details (name, currency, timezone, status) for the given advertiser ID. Find your advertiser ID in the TikTok Ads Manager URL after aadvid=. See the documentation.
Create a new TikTok campaign or update an existing one. Omit campaign_id to create; provide it to update. objective_type, budget_mode, and budget are required when creating but are not accepted by the update endpoint. Common objective types: REACH, TRAFFIC, VIDEO_VIEWS, LEAD_GENERATION, APP_PROMOTION, CONVERSIONS, PRODUCT_SALES. After creating a campaign, use Create or Update Ad Group to add targeting and budget. For create, see documentation. For update, see documentation.
Create a new TikTok ad or update an existing one. Omit ad_id to create; provide it to update. Creative assets must be uploaded first using Upload Creative — the API requires asset IDs, not file URLs. identity_type and identity_id are required in v1.3; use CUSTOMIZED_USER for non-Spark Ads. For create, see documentation. For update, see documentation.
Create a new TikTok ad group or update an existing one. Omit adgroup_id to create; provide it to update. Ad groups control placement, targeting, budget, schedule, bidding, and optimization within a campaign. billing_event must correspond to the chosen optimization_goal — e.g., CLICK → CPC, CONVERT/INSTALL → OCPM, REACH/SHOW → CPM, ENGAGED_VIEW → CPV. Use campaign IDs from Create or Update Campaign or List Campaigns. For create, see documentation. For update, see documentation.
Create a TikTok lookalike audience based on an existing custom audience. TikTok finds users who share characteristics with the source audience. Use List Audiences to find the source audience ID. audience_size controls reach vs accuracy: NARROW = most similar (smallest), BALANCED = mixed, BROAD = largest reach. Location IDs: 6252001 = United States, 6269131 = United Kingdom. Newly created audiences require up to 48 hours to be analyzed before they become active. See the documentation
Create a new TikTok custom audience from hashed customer identifiers. Uploads the identifiers first, then creates the audience — both steps happen in one tool call. Provide either identifiers (a list of SHA256-hashed values passed directly) or file_path (a CSV file with one identifier per line). identifier_type controls the hash format: EMAIL_SHA256 for hashed emails, PHONE_SHA256 for hashed phone numbers, IDFA_SHA256 or GAID_SHA256 for device IDs. To add members to an existing audience, use Update Audience instead. See the documentation