# @getmcpads/tiktok-ads-mcp-server

Open-source MCP server for the TikTok Business API. 27 read tools and 5 write tools that preview before they apply, 277 metrics, 16 dimensions, keyword research. Self-hosted, bring your own token.

- **Type:** MCP server
- **Trust:** 60/100 (B), scored on the package rubric
- **Verification:** community-indexed — nobody has claimed this listing
- **Version:** 1.0.2
- **Author:** GetMCPAds
- **License:** Apache-2.0
- **npm:** @getmcpads/tiktok-ads-mcp-server
- **Source:** https://github.com/getmcpads-com/tiktok-ads-mcp-server
- **Compatible clients:** claude-code, cursor, copilot, gemini (basis: transport)

## Trust

60/100 (B), scored on the package rubric
- Publisher verified: no
- Install scripts: nothing suspicious found
- Prompt-injection scan: not run
- Obfuscation scan: not run
- Evidence age: 23 days

## Security scan

- **Status:** clean
- **Scanned:** 2026-08-31T13:40:53.283Z
- **Version scanned:** 1.0.2
- **CVEs:** none found by OSV at scan time

## Tools

32 declared. Statically extracted from the shipped source — a floor on the surface, not a census.
- `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 releas
- `tiktok_get_report_raw` — 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_g
- `tiktok_get_targeting_catalog` — Read TikTok targeting and planning catalogs: locations, languages, interests, behaviors, hashtags, Search Ads keyword ideas/health, devices, carriers, contextua
- `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-co
- `tiktok_health_check` — Read-only health check for TikTok credentials, accessible advertisers, and advertiser info. Never returns tokens or secrets.
- `tiktok_list_advertisers` — List all TikTok advertiser accounts accessible with the current token. Returns advertiser ID, name, and status.
- `tiktok_get_advertiser_info` — Get detailed information for specific TikTok advertiser accounts: currency, timezone, status, balance.
- `tiktok_get_campaigns` — List campaigns for a TikTok advertiser account. Returns campaign ID, name, status, budget, and objective.
- `tiktok_get_adgroups` — List ad groups for a TikTok advertiser. Returns targeting, budget, optimization goal, and schedule info.
- `tiktok_get_ads` — List ads for a TikTok advertiser. Returns ad ID, name, operation status, and creative info.
- `tiktok_get_insights` — Query TikTok Ads performance insights. Supports 400+ metrics with intelligent query planning. Use tiktok://metrics resource to see available metrics. Use tiktok
- `tiktok_get_creatives` — Get creative details (video, image, text) for specific ads in a TikTok advertiser account.
- `tiktok_get_audiences` — List custom and lookalike audiences for a TikTok advertiser account.
- `tiktok_search_keywords` — Get keyword suggestions for TikTok Search Ads. Returns recommended keywords with search volume estimates.
- `tiktok_validate_query` — Validate a TikTok metric/dimension combination BEFORE executing. Checks dimension grouping rules, lifetime compatibility, and metric/dimension compatibility.
- `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_events` — Discover pixel/app events or accessible tracking diagnostics for an advertiser. Uses best-effort endpoint checks plus reporting dimensions as fallback.
- `tiktok_get_delivery_status` — Aggregate campaign, ad group, and ad delivery status/operation_status with simple diagnostics.
- `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_video_assets` — Return ad-linked TikTok video asset metadata from ad/get and video material endpoints when available.
- `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_audience_details` — Get custom/lookalike/saved audience details where TikTok DMP endpoints are accessible. Read-only 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 permi
- `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_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_audience_overlap` — Read-only audience overlap diagnostics across ad groups, custom audiences, saved audiences, and targeting fields.
- `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_update_campaign_status` — Pause or reactivate a TikTok campaign. Previews by default: without confirm: true, the tool describes the change without applying it.
- `tiktok_update_adgroup_status` — Pause or reactivate a TikTok ad group. Previews by default.
- `tiktok_create_campaign` — Create a TikTok campaign. It is always created DISABLE and there is no option to create it running. Previews by default.
- `tiktok_update_campaign_budget` — Change a TikTok campaign budget, in the account currency. Previews by default.
- `tiktok_update_adgroup_budget` — Change the budget of a TikTok ad group, in the account currency. Previews by default.

## Install

**Verdict: review** — Installable, but 1 thing to check first: No publisher has proved control of this listing; it is indexed, not vouched for.
**Cautions** (coverage gaps and advisories — never blocking)
- No publisher has proved control of this listing; it is indexed, not vouched for.
**Config** (claude-code):
```json
"{\n  \"mcpServers\": {\n    \"tiktok-ads-mcp-server\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"@getmcpads/tiktok-ads-mcp-server\"\n      ],\n      \"env\": {\n        \"TIKTOK_ACCESS_TOKEN\": \"<YOUR_TIKTOK_ACCESS_TOKEN>\",\n        \"TIKTOK_APP_SECRET\": \"<YOUR_TIKTOK_APP_SECRET>\"\n      }\n    }\n  }\n}"
```
**Credentials it will ask for** (names only — Forge never holds a value):
- `TIKTOK_ACCESS_TOKEN` — Tiktok Access Token (required)
- `TIKTOK_APP_SECRET` — Tiktok App Secret (optional)
Placeholders only. Forge never holds, brokers, or transmits a credential value — replace each <YOUR_NAME> in your own config file. Do not send a value back to Forge; no Forge endpoint accepts one.
- This entry needs 2 credentials (1 required). The generated config carries placeholders, so it will fail in the editor rather than at runtime if they are left unset.

## Blast radius

Moderate blast radius — holds an api key; runs on your machine.
- Floor 25, ceiling 25 (tier: moderate)
- This is impact, not likelihood. A high radius is not a defect: a filesystem server is supposed to write files. It is never part of the trust score.

## Machine-readable views of this entry

- Signed JSON: https://forgeregistry.com/api/v1/packages/%40getmcpads%2Ftiktok-ads-mcp-server
- Install plan: https://forgeregistry.com/api/v1/packages/%40getmcpads%2Ftiktok-ads-mcp-server/install-plan
- Alternatives: https://forgeregistry.com/api/v1/alternatives/%40getmcpads%2Ftiktok-ads-mcp-server
- HTML page: https://forgeregistry.com/registry/%40getmcpads%2Ftiktok-ads-mcp-server
- MCP: POST https://forgeregistry.com/api/mcp → `forge_get_package` / `forge_install_plan`

## About this document

Generated by Forge (https://forgeregistry.com) — a compact rendering of the same record served, signed, at the JSON URL above. Trust and scan facts are the registry's own measurements; anything Forge did not measure is named as unmeasured rather than omitted.
