MCP YouTube Transcript
An MCP server retrieving transcripts of YouTube videos
Description from the maker (original English)
Full Google Ads, Analytics & Tag Manager lifecycle MCP for AI agents — 57 tools.
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.
GOOGLE_ADS_DEVELOPER_TOKEN, GOOGLE_ADS_CUSTOMER_ID, GTM_SERVICE_ACCOUNT_KEY_PATHValues 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": {
"ainative-gtm": {
"command": "npx",
"args": [
"-y",
"@ainative/gtm-mcp"
],
"env": {
"GOOGLE_ADS_DEVELOPER_TOKEN": "your-value",
"GOOGLE_ADS_CUSTOMER_ID": "your-value",
"GTM_SERVICE_ACCOUNT_KEY_PATH": "your-value"
}
}
}
}Run this in your terminal
claude mcp add ainative-gtm --env GOOGLE_ADS_DEVELOPER_TOKEN=your-value --env GOOGLE_ADS_CUSTOMER_ID=your-value --env GTM_SERVICE_ACCOUNT_KEY_PATH=your-value -- npx -y @ainative/gtm-mcpFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"ainative-gtm": {
"command": "npx",
"args": [
"-y",
"@ainative/gtm-mcp"
],
"env": {
"GOOGLE_ADS_DEVELOPER_TOKEN": "your-value",
"GOOGLE_ADS_CUSTOMER_ID": "your-value",
"GTM_SERVICE_ACCOUNT_KEY_PATH": "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": {
"ainative-gtm": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@ainative/gtm-mcp"
],
"env": {
"GOOGLE_ADS_DEVELOPER_TOKEN": "your-value",
"GOOGLE_ADS_CUSTOMER_ID": "your-value",
"GTM_SERVICE_ACCOUNT_KEY_PATH": "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.
GOOGLE_ADS_CUSTOMER_ID 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 with the GitHub account AINative-Studio, which owns the repo
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: GOOGLE_ADS_DEVELOPER_TOKEN, GTM_SERVICE_ACCOUNT_KEY_PATH
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 (0.4.2) reached the registry 3 months 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.
Google Tag Manager and Google Ads MCP server — audit, fix, and manage GTM containers and Google Ads campaigns, budgets, conversions, placements, geo targeting, and auto-apply recommendations from AI agents (Claude, Cursor, and any MCP client).
Part of the AINative open-source tools.
57 tools across 7 categories: accounts, tags, triggers, audit, versions/publishing, and a complete Google Ads lifecycle (39 tools) — build, publish, track, and adjust campaigns end-to-end: create campaigns/ad groups/RSAs/RDAs/HTML5 ads, Performance Max, bidding strategy & bid control, ad extensions (sitelinks/callouts/snippets/call), audiences, offline gclid conversion import, geo/language targeting, budgets, placements, and auto-apply recommendations — fully programmatic, no UI required.
Keywords: google tag manager mcp, google ads mcp, gtm mcp server, google ads api mcp, conversion tracking mcp, campaign budget management, negative placement / click-fraud exclusion, geo targeting, auto-apply recommendations, recommendation subscriptions, conversion goals, Smart Bidding, PPC automation, ad spend control, Claude MCP, model context protocol, AI agent advertising tools.
# Claude Code (recommended)
claude mcp add ainative-gtm-mcp npx -- -y @ainative/gtm-mcp \ -e GTM_SERVICE_ACCOUNT_KEY_PATH=/path/to/service-account.json
npx @ainative/gtm-mcp
The server authenticates via a Google Cloud service account with Tag Manager API access. There is no browser OAuth flow — it's designed for headless/agent use.
tagmanager.googleapis.com) and click Enablegtm-mcp-agent)This is the step most people miss. The GCP service account needs to be added as a user inside Google Tag Manager separately:
gtm-mcp-agent@your-project.iam.gserviceaccount.com)Note: If you only need read access (auditing), Read permission is sufficient.
export GTM_SERVICE_ACCOUNT_KEY_PATH="/path/to/service-account.json"
export GTM_SERVICE_ACCOUNT_KEY_JSON='{"type":"service_account","project_id":"...","private_key":"..."}'
gcloud auth application-default login
claude mcp add ainative-gtm-mcp npx -- -y @ainative/gtm-mcp \
-e GTM_SERVICE_ACCOUNT_KEY_PATH=/path/to/service-account.json
Or add a .mcp.json to your project root:
{
"mcpServers": { "ainative-gtm-mcp": { "command": "npx", "args": ["-y", "@ainative/gtm-mcp"], "env": { "GTM_SERVICE_ACCOUNT_KEY_PATH": "/path/to/service-account.json" } } } }
Security: Add
.mcp.jsonto.gitignoreif it contains key paths. Use.mcp.example.jsonas a template for teammates.
Ask Claude:
List my GTM accounts
Expected: your GTM account name and ID. If you get an empty array [], the service account hasn't been added to GTM yet (Step 3 above).
This MCP server manages Google Tag Manager containers — tags, triggers, variables, and publishing.
If you see events like ads_conversion_PURCHASE_1 in GA4, those may be coming from Google Ads auto-imported conversions (via GA4 ↔ Google Ads account linking), not GTM tags. In that case:
gtm_find_misfiring_conversion_tags to fix itTo tell the difference: if your GTM container has no tags (gtm_list_tags returns []), the conversion event is coming from outside GTM.
The most common GTM billing issue — a Google Ads conversion tag fires on every page view instead of only on purchase confirmation.
1. List your accounts:
"List my GTM accounts" → accountId: 123456789
| Tool | Description |
|---|---|
gtm_list_accounts | List all accessible GTM accounts |
gtm_list_containers | List containers in an account |
gtm_get_container | Get container details |
| Tool | Description |
|---|---|
gtm_list_tags | List all tags in a workspace |
gtm_get_tag | Get full tag configuration |
gtm_update_tag | Update a tag (trigger, params, name) |
gtm_delete_tag | Delete a tag |
| Tool | Description |
|---|---|
gtm_list_triggers | List all triggers |
gtm_get_trigger | Get trigger configuration |
gtm_create_trigger | Create a new trigger |
gtm_update_trigger | Update an existing trigger |
| Tool | Description |
|---|---|
gtm_audit_container | Full container audit — health score 0–100, issues list |
gtm_find_misfiring_conversion_tags | Find conversion tags firing on All Pages instead of specific events |
gtm_fix_conversion_tag_trigger | Fix a misfiring tag — creates scoped Custom Event trigger, rewires tag |
| Tool | Description |
|---|---|
gtm_list_workspaces | List workspaces |
gtm_get_workspace_status | View pending changes before publishing |
gtm_create_version | Create a named version from workspace changes |
gtm_publish | Publish workspace to live |
Full programmatic campaign lifecycle — an agent can build, launch, measure, and optimize a campaign end-to-end with no UI.
Build (campaigns, ad groups, ads, assets)
| Tool | Description |
|---|---|
gads_create_campaign | Create a Search/Display campaign with a dedicated budget + correct network settings |
gads_create_pmax_campaign | One-call Performance Max builder — campaign + budget + asset group (headlines, descriptions, images, logo) in a single call; Google's AI optimizes across Search/Display/YouTube/Gmail |
gads_create_ad_group | Create an ad group inside a campaign |
gads_create_responsive_search_ad | Create an RSA (3–15 headlines, 2–4 descriptions, length-validated) |
gads_create_responsive_display_ad | Create a responsive display ad |
gads_create_html5_ad | Create an HTML5 upload (animated) display ad from a media bundle |
gads_upload_image_asset | Upload an image asset by URL |
gads_upload_media_bundle | Upload an HTML5 media-bundle (zip) asset |
Bidding & bids
| Tool | Description |
|---|---|
gads_set_bidding_strategy | Swap bidding strategy (Maximize Clicks / Maximize Conversions / Target CPA / Target ROAS / Manual CPC) — reads back the change to confirm it landed (empty-payload swaps silently no-op) |
gads_set_ad_group_bid | Set an ad group's default max CPC bid |
gads_set_keyword_bid | Set a specific keyword's max CPC bid |
Ad control
| Tool | Description |
|---|---|
gads_set_ad_status | Pause / enable / remove an individual ad |
gads_request_ad_review | Request re-review (appeal) of a disapproved/limited ad where API-appealable; honest result for UI-only policy topics |
Ad extensions (assets)
| Tool | Description |
|---|---|
gads_add_sitelink | Create + attach a sitelink |
gads_add_callout | Create + attach a callout (e.g. "7-Day Free Trial") |
gads_add_structured_snippet | Create + attach a structured snippet |
gads_add_call_extension | Create + attach a call (phone) extension |
Audiences & conversions (attribution)
| Tool | Description |
|---|---|
gads_add_audience_to_ad_group | Attach a user-list audience (observation or targeting) |
gads_create_conversion_action | Create an offline (UPLOAD_CLICKS) conversion action for gclid import |
gads_upload_click_conversion | Upload an offline conversion keyed by gclid — ties a real signup back to the ad click that drove it |
Conversions & reporting
| Tool | Description |
|---|---|
gads_list_conversion_actions | List all conversion actions — name, ID, counting type, status, category |
gads_update_conversion_counting | Fix counting type (ONE_PER_CLICK vs MANY_PER_CLICK) for a conversion action |
gads_audit_conversion_goals | Audit all conversion goals — find misconfigured counting, inactive conversions |
gads_set_conversion_goal_inclusion | Include/exclude a conversion action from the primary Conversions metric & Smart Bidding (e.g. stop a PAGE_VIEW action inflating conversions) |
gads_get_account_performance | Account-level performance — impressions, clicks, cost, conversions by date range |
Campaigns & budgets
| Tool | Description |
|---|---|
gads_update_campaign_budget | Set a campaign's daily budget (scale spend up or down) |
gads_pause_campaign | Pause a campaign — stop ad serving immediately |
gads_create_keyword | Add a keyword to an ad group |
gads_remove_keyword | Remove (pause) a keyword from an ad group |
Targeting & fraud protection
| Tool | Description |
|---|---|
gads_remove_campaign_criterion | Remove a campaign criterion (targeted geo/placement/keyword) by ID — e.g. stop targeting a country sending invalid traffic |
gads_add_negative_placement | Exclude a website/app placement (block click-fraud sites like quiz farms and junk apps) |
gads_add_geo_target | Add a geo target (presence-only by default — the India-fraud-safe setting) |
gads_set_presence_only | Force presence-only geo targeting on a campaign |
gads_add_negative_keyword | Add a campaign-level negative keyword |
gads_add_language_target | Add a language target to a campaign |
Auto-apply recommendations
| Tool | Description |
|---|---|
gads_list_recommendation_subscriptions | List auto-apply recommendation subscriptions and their status (audit what auto-applies) |
gads_set_recommendation_subscription | Turn auto-apply recommendations ON/OFF (pause budget/bid recommendations that can silently raise spend) |
The Google Ads tools use OAuth2 credenti
Only the beginning is shown; read the rest in the repo