Connect
Optimize
Secure
Announcing StackOne Defender: leading open-source prompt injection guard for your agent • Read More →
Production-ready TikTok Ads MCP server with 51 extensible actions — plus built-in authentication, security, and optimized execution.
Coverage
Create, read, update, and delete across TikTok Ads — and extend your agent's capabilities with custom actions.
Authentication
Per-user OAuth in one call. Your TikTok Ads MCP server gets session-scoped tokens with zero credentials stored on your infra.
Agent Auth →Security
Every TikTok Ads tool response scanned for prompt injection in milliseconds — 88.7% accuracy, all running on CPU.
Prompt Injection Defense →Performance
Free up to 96% of your agent's context window to enhance reasoning and reduce cost, on every TikTok Ads call.
Tools Discovery →A TikTok Ads MCP server lets AI agents read and write TikTok Ads data through the Model Context Protocol — Anthropic's open standard for connecting LLMs to external tools. StackOne's TikTok Ads MCP server ships with 51 pre-built actions, fully extensible via the Connector Builder — plus managed authentication, prompt injection defense, and optimized agent context. Connect it from MCP clients like Claude Desktop, Cursor, and VS Code, or from agent frameworks like OpenAI Agents SDK, LangChain, and Vercel AI SDK.
Every action from TikTok Ads's API, ready for your agent. Create, read, update, and delete — scoped to exactly what you need.
Create a new ad group under an existing TikTok Ads campaign via POST /adgroup/create/, configuring audience targeting (location, demographics, interests, devices), budget and bid strategy, delivery schedule, ad placements, optimization goals, and brand safety settings in a single request
Retrieve a paginated list of ad groups for a TikTok Ads advertiser account via GET /adgroup/get/, with optional filtering by campaign IDs, ad group status, objective type, name, or creation date range, returning full targeting, budget, schedule, placement, and bid configuration for each ad group
Partially update an existing TikTok Ads ad group via POST /adgroup/update/, modifying only the fields you include in the request (name, budget, bid strategy, targeting, schedule, dayparting, or social settings) while all omitted fields retain their current values
Create up to 20 ads within an existing ad group via POST /ad/create/, each defined as a creative object with ad format, identity profile, ad text, CTA, and optional assets (production only, ads enter TikTok review before delivery)
Retrieve ads (the lowest tier of TikTok's Campaign > Ad Group > Ad hierarchy) via GET /ad/get/ with filtering by campaign, ad group, ad IDs, delivery status, or creation date, returning creative details, review status, and delivery state
Modify an existing ad's creative content, identity, ad text, CTA, or landing page via POST /ad/update/, with optional incremental (patch) update mode for select fields (production only, changes may trigger re-review)
Create a new advertising campaign under a TikTok Ads advertiser account via POST /campaign/create/, specifying the marketing objective, budget mode, and budget amount. Returns the newly assigned campaign_id for use in subsequent ad group and ad creation
Retrieve a paginated list of all advertising campaigns under a TikTok Ads advertiser account, with optional filtering by campaign IDs, delivery status, objective type, and creation date range via GET /campaign/get/ (TikTok Business API v1.3)
Partially update an existing TikTok Ads campaign's name, budget amount, or budget mode via POST /campaign/update/. Only explicitly provided fields are modified; omitted fields retain their current values. The campaign must not be in DELETE status
Upload an image to the advertiser's TikTok Ads creative library from a publicly accessible URL, returning an image_id for use in ad creatives
Search and retrieve ad image assets from the advertiser's creative library with optional filtering by image IDs, material IDs, or dimensions
Upload a video to the advertiser's TikTok Ads creative library from a public URL or bind an existing TikTok video to the ad account, returning a video_id for use in ad creatives
Search and retrieve ad video assets from the advertiser's creative library with optional filtering by video IDs, material IDs, or dimensions
Create a CUSTOMIZED_USER identity with a display name and optional avatar via POST /identity/create/, returning an identity_id for use in ad creation (note CUSTOMIZED_USER is deprecated for TikTok placement ads)
Permanently delete a CUSTOMIZED_USER identity via POST /identity/delete/. Since custom identities cannot be edited, delete and recreate to make changes
Create a new TikTok Pixel for website conversion tracking via POST /pixel/create/. Returns the pixel_id and pixel_code for embedding in your website JavaScript or using with the Events API for server-to-server event tracking
Retrieve a paginated list of TikTok Pixels and their associated event configurations for an advertiser account via GET /pixel/list/, with optional filtering by pixel code, pixel ID, or pixel name (fuzzy match)
Update an existing TikTok Pixel's name, Advanced Matching configuration, first-party cookie settings, and expanded data sharing preferences via POST /pixel/update/. Supports both Manual and Automatic Advanced Matching for improved conversion attribution
Search for targeting options by keyword across multiple categories (geographic locations, interest categories, interest keywords, and purchase intention keywords). Production only
List available targeting options by type for specific geographic locations, currently supporting ISP (Internet Service Provider) targeting. Production only
Create a rule-based custom audience by defining inclusion and exclusion rules that target users based on specific actions and behaviors (e.g., ad engagement, app activity, website visits)
Create a lookalike audience that finds new users similar to an existing source audience, expanding reach while maintaining targeting relevance. Production only (not available on sandbox)
Retrieve comprehensive account profile, status, and configuration details for one or more TikTok Ads advertiser accounts via GET /advertiser/info/, including timezone, currency, role, balance, industry, and business verification status
List all TikTok Ads advertiser accounts authorized for the authenticated OAuth2 app via GET /oauth2/advertiser/get/. Returns account IDs, names, and statuses. OAuth2 authentication only -- not available with sandbox API keys
Retrieve all registered mobile apps associated with a TikTok Ads advertiser account via GET /app/list/, returning app IDs, names, platform types (Android/iOS), and download URLs. Required for creating APP_PROMOTION campaigns and configuring app-based ad groups. Production only -- not available on sandbox
List all custom audiences (both owned and shared) under the advertiser account with pagination, returning audience IDs, names, types, and expiration info
Retrieve detailed information for specific audiences by their IDs, including processing status, modification history, shared status, and lookalike specifications
Retrieve detailed metadata for one or more uploaded image assets by their IDs, including dimensions, file size, format, and CDN preview URLs
Retrieve detailed metadata for one or more uploaded video assets by their IDs, including duration, dimensions, processing status, and thumbnail URL
Retrieve all identities (public-facing ad profiles) under a TikTok Ads account via GET /identity/get/, with optional filtering by identity type or display name for Spark Ads workflows
Retrieve detailed profile information for a specific identity via GET /identity/info/, including display name, avatar URL, username, and messaging capabilities (production only, returns error 50000 on sandbox)
Retrieve video and carousel posts published by a TikTok identity via GET /identity/video/get/, returning item_id values needed for Spark Ads creation (production only, requires a real TikTok account identity)
Check whether the background music in a TikTok post is licensed for ad use in specified target locations and time period via GET /identity/music/authorization/ (production only, must be called before creating Spark Ads with music)
Retrieve detailed metadata for one or more TikTok posts (video or carousel) via GET /identity/video/info/, including post content, engagement data, and Spark Ads eligibility (production only)
Retrieve the full list of targetable geographic regions (countries, states, cities, DMAs) with their TikTok location IDs, filtered by placement and campaign objective. Production only
Retrieve the full hierarchical taxonomy of interest-based targeting categories with their TikTok category IDs for use in ad group interest targeting. Production only
Retrieve the full list of available language targeting options with their codes for use in ad group language targeting. Production only
Retrieve the taxonomy of behavioral action categories for targeting users based on recent in-app actions (video interactions, creator follows, hashtag views). Production only
Batch enable, disable, or permanently delete up to 20 TikTok Ads ad groups in a single request via POST /adgroup/status/update/, with optional partial success mode to skip ineligible ad groups rather than failing the entire batch
Update the lifetime budgets of up to 20 ad groups immediately, or schedule daily/dynamic daily budget changes for up to 20 ad groups to take effect the following day at 00:00 in the ad account's time zone, via POST /adgroup/budget/update/
Batch enable, disable, or permanently delete up to 20 TikTok ads or ACO (Automated Creative Optimization) ads via POST /ad/status/update/ (production only, deleted ads cannot be restored)
Update the display name of an existing custom audience. Does not modify the audience's matched user data or targeting rules
Batch update the delivery status of one or more TikTok Ads campaigns via POST /campaign/status/update/, supporting ENABLE, DISABLE, and DELETE operations. Disabling a campaign cascades to pause all child ad groups and ads; deleting is permanent and irreversible
Rename a video asset in the advertiser's creative library by specifying its video_id and the new file_name
Rename an image asset in the advertiser's creative library by specifying its image_id and the new file_name
Permanently delete one or more custom audiences by their IDs. This action is irreversible and automatically removes the audience from any ad groups currently targeting it
Trigger a manual refresh of one or more lookalike audiences to re-analyze the source audience and update the matched users with the latest data. Production only (not available on sandbox)
Connect or disconnect a custom audience from one or more ad groups for inclusion or exclusion targeting. Production only (not available on sandbox)
Run a synchronous integrated report via GET /report/integrated/get/ to retrieve ad performance metrics grouped by configurable dimensions (campaign, ad group, ad, or time). Returns up to 20,000 rows per request with support for BASIC, AUDIENCE, CATALOG, and other report types
Get AI-recommended interest and behavioral action categories optimized for your campaign objective, placements, and target regions. Production only
Get recommended interest keywords related to a seed keyword, returning keyword IDs for use in ad group interest keyword targeting. Production only
One endpoint. Any framework. Your agent is talking to TikTok Ads in under 10 lines of code.
MCP Clients
Agent Frameworks
{
"mcpServers": {
"stackone": {
"command": "npx",
"args": [
"-y",
"mcp-remote@latest",
"https://api.stackone.com/mcp?x-account-id=<account_id>",
"--header",
"Authorization: Basic <YOUR_BASE64_TOKEN>"
]
}
}
}Anthropic's code_execution processes data already in context. Custom MCP code mode keeps raw tool responses in a sandbox. 14K tokens vs 500.
11 min
Benchmarking BM25, TF-IDF, and hybrid search for MCP tool discovery across 916 tools. The 80/20 TF-IDF/BM25 hybrid hits 21% Top-1 accuracy in under 1ms.
10 min
MCP tools that read emails, CRM records, and tickets are indirect prompt injection vectors. Here's how we built a two-tier defense that scans tool results in ~11ms.
12 min
origin_owner_id.All the tools you need to build and scale AI agent integrations, with best-in-class connectivity, execution, and security.