MCP YouTube Transcript
An MCP server retrieving transcripts of YouTube videos
Description from the maker (original English)
TikTok Ads MCP server: 35 read tools, 30 opt-in preview-first writes.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
TIKTOK_ACCESS_TOKEN, TIKTOK_APP_ID, TIKTOK_ADVERTISER_IDS, TIKTOK_APP_SECRET, TIKTOK_ADVERTISER_ID, TIKTOK_BC_ID, TIKTOK_BUSINESS_CENTER_ID, TIKTOK_ENABLE_WRITES, TIKTOK_ENVIRONMENT, LOG_LEVELValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"tiktok-ads": {
"command": "npx",
"args": [
"-y",
"@getmcpads/tiktok-ads-mcp-server"
],
"env": {
"TIKTOK_ACCESS_TOKEN": "your-value",
"TIKTOK_APP_ID": "your-value",
"TIKTOK_ADVERTISER_IDS": "your-value",
"TIKTOK_APP_SECRET": "your-value",
"TIKTOK_ADVERTISER_ID": "your-value",
"TIKTOK_BC_ID": "your-value",
"TIKTOK_BUSINESS_CENTER_ID": "your-value",
"TIKTOK_ENABLE_WRITES": "your-value",
"TIKTOK_ENVIRONMENT": "your-value",
"LOG_LEVEL": "your-value"
}
}
}
}Run this in your terminal
claude mcp add tiktok-ads --env TIKTOK_ACCESS_TOKEN=your-value --env TIKTOK_APP_ID=your-value --env TIKTOK_ADVERTISER_IDS=your-value --env TIKTOK_APP_SECRET=your-value --env TIKTOK_ADVERTISER_ID=your-value --env TIKTOK_BC_ID=your-value --env TIKTOK_BUSINESS_CENTER_ID=your-value --env TIKTOK_ENABLE_WRITES=your-value --env TIKTOK_ENVIRONMENT=your-value --env LOG_LEVEL=your-value -- npx -y @getmcpads/tiktok-ads-mcp-serverFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"tiktok-ads": {
"command": "npx",
"args": [
"-y",
"@getmcpads/tiktok-ads-mcp-server"
],
"env": {
"TIKTOK_ACCESS_TOKEN": "your-value",
"TIKTOK_APP_ID": "your-value",
"TIKTOK_ADVERTISER_IDS": "your-value",
"TIKTOK_APP_SECRET": "your-value",
"TIKTOK_ADVERTISER_ID": "your-value",
"TIKTOK_BC_ID": "your-value",
"TIKTOK_BUSINESS_CENTER_ID": "your-value",
"TIKTOK_ENABLE_WRITES": "your-value",
"TIKTOK_ENVIRONMENT": "your-value",
"LOG_LEVEL": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"tiktok-ads": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@getmcpads/tiktok-ads-mcp-server"
],
"env": {
"TIKTOK_ACCESS_TOKEN": "your-value",
"TIKTOK_APP_ID": "your-value",
"TIKTOK_ADVERTISER_IDS": "your-value",
"TIKTOK_APP_SECRET": "your-value",
"TIKTOK_ADVERTISER_ID": "your-value",
"TIKTOK_BC_ID": "your-value",
"TIKTOK_BUSINESS_CENTER_ID": "your-value",
"TIKTOK_ENABLE_WRITES": "your-value",
"TIKTOK_ENVIRONMENT": "your-value",
"LOG_LEVEL": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
TIKTOK_ADVERTISER_IDS envTIKTOK_ADVERTISER_ID envTIKTOK_BC_ID envTIKTOK_BUSINESS_CENTER_ID envTIKTOK_ENABLE_WRITES envTIKTOK_ENVIRONMENT envLOG_LEVEL envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 8, 2026
The registry name was verified against the domain getmcpads.com (the registry checks domain ownership)
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: TIKTOK_ACCESS_TOKEN, TIKTOK_APP_ID, TIKTOK_APP_SECRET
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (2.1.1) reached the registry 12 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: MCP YouTube Transcript, Google Analytics MCP, BibiGPT YouTube Video Summarizer
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
An MCP server retrieving transcripts of YouTube videos
GA4 MCP server for AI agents: schema discovery, server-side aggregation, analysis-ready defaults.
AI video summarizer: summarize and transcribe YouTube, Bilibili, TikTok and podcast videos.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
Explore campaign performance, inspect native assets and prepare changes from your MCP client.
Watch the film · What's new · Install · Tool reference · Try hosted getmcpads
[Play the 45-second film](https://www.getmcpads.com/home/film/get-mcp-ads-brand-film-1080p.mp4)
The film shows hosted getmcpads with sample data. Its MCP Apps, from creative galleries and alerts to Google Sheets exports and bulk launches, belong to the hosted product. This repository provides the standalone native API tools.
35 read tools · 30 write tools, disabled by default.
Run locally with your own platform credentials and a client that supports stdio MCP, such as Claude Desktop, Claude Code or Cursor. Your requests go directly to the platform. For managed connections, including supported ChatGPT setups, use the hosted option.
[v2.1.1: Zod 4 security update](https://github.com/get-mcp-ads/tiktok-ads-mcp-server/releases/tag/v2.1.1) · October 26, 2026
zod to 4.6.7. Every Zod release before 4.6.6 is covered by the high-severity advisory GHSA-mrhx-c7xc-m3w5: validating an oversized constrained collection can exhaust memory, and no Zod 3 release carries the fix. npm audit --omit=dev reports no vulnerability again.server-card.json is regenerated with Zod 4's JSON Schema output, which spells some constraints differently.Earlier releases
| Version | Date | Highlights |
|---|---|---|
| 2.1.0 | October 23, 2026 | Advertiser scoping and account rename |
| 2.0.1 | September 23, 2026 | Public repository restored |
| 2.0.0 | September 20, 2026 | Gateway sync and security fixes |
| 1.1.0 | September 13, 2026 | Platform capability sync and quality contracts |
| 1.0.2 | August 30, 2026 | Announce the package version over MCP. |
| 1.0.1 | August 30, 2026 | Add server.json and mcpName for the official MCP Registry, under com.getmcpads/tiktok-ads. |
| 1.0.0 | August 29, 2026 | First open-source release |
Full changelog · All releases
Source synchronization: SOURCE_SYNC.md.
Requires Node.js 22.23.4, 24.22.1, 26.12.1 or a newer release. These carry the October 2026 security fixes, and the server prints a warning on stderr when it runs on an older one. CI covers Node 22, 24 and 26.
No breaking change. A 2.0 configuration keeps working. What to know:
TIKTOK_ADVERTISER_IDS is optional. Without it, every advertiser the token reaches stays accessible, and the server prints one line on stderr recommending it. Set it to the advertisers this server may use.TIKTOK_ENABLE_WRITES still reads 1, yes and on as true, and prints one deprecation line on stderr. Use TIKTOK_ENABLE_WRITES=true.TIKTOK_ENVIRONMENT=sandbox and sent every request to production. Version 2.1.0 sends them to sandbox-ads.tiktok.com, bound to one advertiser: the single ID in TIKTOK_ADVERTISER_IDS, or TIKTOK_ADVERTISER_ID. Without either, sandbox calls are refused.Announced for 3.0.0: TIKTOK_ADVERTISER_IDS becomes required, and only the exact value true enables writes.
Read the current tool schemas before reusing saved arguments. Writes remain optional and require explicit confirmation. Hosted creative integrations and MCP Apps UI are outside this release.
This is a GitHub source release. npm and MCP Registry versions are published separately. The commands below select this exact version; unpinned npx examples later in this document select the version currently available on npm.
git clone --branch v2.1.1 --depth 1 https://github.com/get-mcp-ads/tiktok-ads-mcp-server.git
cd tiktok-ads-mcp-server npm ci npm run build
Configure your MCP client to run node with the absolute path to dist/cli.js and the platform credentials documented below.
Prefer a managed connection? Use TikTok Ads with hosted getmcpads. Connect your account, select the data your assistant may access and use the hosted MCP connection. See the site for current features and plans.
| 35 read tools | Campaigns, ad groups, ads, creatives, audiences, pixels, events, Spark Ads, catalogs, delivery diagnostics |
| 30 write tools | Off by default. Creation and configuration of campaigns, ad groups, ads and Smart+ entities, status, budgets, renames and media uploads. Each one previews before it applies |
| 277 metrics | Including derived ones computed client-side |
| 16 dimensions | With a compatibility matrix that catches invalid combinations before they hit the API |
| 5 resources | Live catalogues the model can read: metrics, dimensions, compatibility rules, 12 workflow recipes |
| Keyword research | tiktok_search_keywords and tiktok_get_search_ads_maturity, for TikTok Search Ads |
| Forward-compatible reads | tiktok_get_read_endpoint, tiktok_get_entities_raw, tiktok_get_report_raw reach endpoints this server doesn't model yet |
TikTok rejects many metric and dimension combinations, and its error messages rarely say why. This server encodes the compatibility matrix, so it splits an impossible request into several valid API calls and merges the results instead of failing.
tiktok_validate_query lets the model check a combination before spending a call on it.
TikTok answers HTTP 200 even when the call failed. The applicative code field is what decides. A client that trusts the HTTP status reports imaginary successes back to the model, which then reasons on data that was never returned. Every call here checks code first.
TikTok needs two values, not one: an access token and the App ID it belongs to.
auth_code for an access token. TikTok's long-lived tokens do not expire on a fixed schedule, but they are revoked when the authorization is withdrawn.TIKTOK_ACCESS_TOKEN and the App ID in TIKTOK_APP_ID.📖 TikTok API for Business documentation
Run `tiktok_health_check` as your first call. It verifies the credentials, lists the advertiser accounts you can actually reach, and reports what is missing, without printing your token.
| Scope group | When you need it |
|---|---|
| Reporting and read scopes | Always. Campaigns, ad groups, ads, insights |
| Campaign management scopes | Only if you set TIKTOK_ENABLE_WRITES=true |
| Catalog and Business Center scopes | Optional, for tiktok_get_shop_catalog_diagnostics |
~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": { "tiktok-ads": { "command": "npx", "args": ["-y", "@getmcpads/tiktok-ads-mcp-server"], "env": { "TIKTOK_ACCESS_TOKEN": "your-token-here", "TIKTOK_APP_ID": "your-app-id-here", "TIKTOK_ADVERTISER_IDS": "your-advertiser-id" } } } }
Restart Claude Desktop. Ask it: *"list my TikTok advertiser accounts"*.
claude mcp add tiktok-ads --env TIKTOK_ACCESS_TOKEN=your-token --env TIKTOK_APP_ID=your-app-id --env TIKTOK_ADVERTISER_IDS=your-advertiser-id -- npx -y @getmcpads/tiktok-ads-mcp-server
.cursor/mcp.json in your project, same shape as the Claude Desktop config above.
git clone https://github.com/get-mcp-ads/tiktok-ads-mcp-server.git
cd tiktok-ads-mcp-server npm install && npm run build cp .env.example .env # then fill in your credentials npm start
| Variable | Default | Meaning |
|---|---|---|
TIKTOK_ACCESS_TOKEN | none | Required. Your access token |
TIKTOK_APP_ID | none | Required. The App ID the token belongs to |
TIKTOK_ADVERTISER_IDS | none | Recommended, required from 3.0.0. Comma-separated advertiser IDs this server may access. When set, other advertisers are refused before any request, and discovery lists only these. When unset, every advertiser the token reaches is accessible |
TIKTOK_APP_SECRET | none | Optional, for endpoints needing app authentication |
TIKTOK_ADVERTISER_ID | none | Optional default, saves passing it on every call. When TIKTOK_ADVERTISER_IDS is set, it must be one of them |
TIKTOK_BC_ID | none | Optional Business Center ID. TIKTOK_BUSINESS_CENTER_ID is read when it is unset |
TIKTOK_ENABLE_WRITES | false | true registers the 30 write tools. 1, yes and on still work with a deprecation notice until 3.0.0 |
TIKTOK_ENVIRONMENT | production | production or sandbox. Sandbox binds every call to one advertiser: the single ID in TIKTOK_ADVERTISER_IDS, or TIKTOK_ADVERTISER_ID |
LOG_LEVEL | info | debug, info, warn, error |
Check your setup at any time:
npm run doctor
Write tools are disabled by default. Enable them with TIKTOK_ENABLE_WRITES=true.
When enabled, every write tool returns a preview and changes nothing:
// tiktok_update_adgroup_budget { advertiserId: "7...", adGroupId: "1...", budget: 50 }
{ "applied": false, "action": "tiktok_update_adgroup_budget", "change": { "advertiser": "7...", "adGroup": "1...", "newBudget": 50, "budgetMode": "BUDGET_MODE_DAY" }, "message": "Preview only, nothing was changed. Repeat the same call with confirm: true to apply this change to the live account." }
Only a se
Only the beginning is shown; read the rest in the repo