{"name":"io.github.AINative-Studio/ainative-gtm-mcp","slug":"ainative-studio-ainative-gtm-mcp","title":null,"description":"Full Google Ads, Analytics & Tag Manager lifecycle MCP for AI agents — 57 tools.","url":"https://mcp.market/server/ainative-studio-ainative-gtm-mcp","rating":null,"grade":"B","score":80,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":18,"stars":0,"forks":0,"downloads_week":42,"last_push_at":"2026-08-01T02:18:44.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/AINative-Studio/ainative-gtm-mcp","website":null,"version":"0.4.2","remotes":[],"packages":[{"registryType":"npm","identifier":"@ainative/gtm-mcp","version":"0.4.2","transport":{"type":"stdio"},"environmentVariables":[{"description":"Google Ads API developer token (required for Google Ads tools)","isSecret":true,"name":"GOOGLE_ADS_DEVELOPER_TOKEN"},{"description":"Default Google Ads customer ID (10 digits, no dashes)","name":"GOOGLE_ADS_CUSTOMER_ID"},{"description":"Path to a Google Cloud service-account JSON key with Tag Manager API access","isSecret":true,"name":"GTM_SERVICE_ACCOUNT_KEY_PATH"}]}],"tools":[{"name":"gads_add_audience_to_ad_group","description":"Attach an audience segment (user_list resource) to an ad group. mode=OBSERVATION measures the audience without restricting reach; mode=TARGETING restricts serving to it. Refs #5764.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gads_add_call_extension","description":"Create a call asset (phone number) and attach it to a campaign so ads can show a call button. Refs #5764.","write_action":true,"price_micros":0,"input_schema":null},{"name":"gads_add_callout","description":"Create a callout asset (short promotional phrase, e.g. \"Free 7-Day Trial\") and attach it to a campaign. Refs #5764.","write_action":true,"price_micros":0,"input_schema":null},{"name":"gads_add_geo_target","description":"Add a geographic target (or exclusion) to a campaign, using PRESENCE-only targeting by","write_action":false,"price_micros":0,"input_schema":null},{"name":"gads_add_language_target","description":"Add a language target to a campaign so ads serve to users with that language setting. Common language constant ids: 1000=English, 1003=Spanish, 1001=German, 1002=French. Refs #5764.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gads_add_negative_keyword","description":"Add a negative keyword at the CAMPAIGN level (blocks the term across the campaign). Refs #5743.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gads_add_negative_placement","description":"Add a negative PLACEMENT (website URL or mobile app) exclusion to a campaign so ads never serve there.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gads_add_sitelink","description":"Create a sitelink asset (link text + final URL, optional 2 description lines) and attach it to a campaign. Refs #5764.","write_action":true,"price_micros":0,"input_schema":null},{"name":"gads_add_structured_snippet","description":"Create a structured snippet asset (a header like \"Services\" or \"Types\" + up to 10 values) and attach it to a campaign. Refs #5764.","write_action":true,"price_micros":0,"input_schema":null},{"name":"gads_audit_conversion_goals","description":"Audit all Google Ads conversion goals — find misconfigured counting types, inactive conversions, and conversions with no recent activity. Returns a prioritized fix list.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gads_create_ad_group","description":"Create an ad group inside a campaign. Refs #5740.","write_action":true,"price_micros":0,"input_schema":null},{"name":"gads_create_campaign","description":"Create a NEW Google Ads campaign with its own dedicated budget. Handles the full","write_action":true,"price_micros":0,"input_schema":null},{"name":"gads_create_conversion_action","description":"Create an offline conversion action (type UPLOAD_CLICKS) for importing real outcomes — e.g.","write_action":true,"price_micros":0,"input_schema":null},{"name":"gads_create_html5_ad","description":"Create an HTML5 display upload ad (DisplayUploadAd, HTML5_UPLOAD_AD) in a DISPLAY ad group","write_action":true,"price_micros":0,"input_schema":null},{"name":"gads_create_keyword","description":"Add a keyword to an ad group. Use this to move high-performing keywords between campaigns.","write_action":true,"price_micros":0,"input_schema":null},{"name":"gads_create_pmax_campaign","description":"ONE-CALL Performance Max \"campaign builder\": creates a PERFORMANCE_MAX campaign + dedicated","write_action":true,"price_micros":0,"input_schema":null},{"name":"gads_create_responsive_display_ad","description":"Create a Responsive Display Ad in a DISPLAY ad group from uploaded image assets + text.","write_action":true,"price_micros":0,"input_schema":null},{"name":"gads_create_responsive_search_ad","description":"Create a Responsive Search Ad in an ad group. 3–15 headlines (≤30 chars), 2–4 descriptions","write_action":true,"price_micros":0,"input_schema":null},{"name":"gads_get_account_performance","description":"Get top-level Google Ads account performance — impressions, clicks, cost, conversions for a date range. Quick health check for ad spend efficiency.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gads_list_conversion_actions","description":"List all Google Ads conversion actions for the account — name, ID, counting type, status, and category. Use this to audit which conversions are set up and how they are counted.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gads_list_recommendation_subscriptions","description":"List Google Ads auto-apply recommendation subscriptions (type + status). ENABLED means that recommendation","write_action":false,"price_micros":0,"input_schema":null},{"name":"gads_pause_campaign","description":"Pause a Google Ads campaign. Stops all ad serving immediately.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gads_remove_campaign_criterion","description":"Remove a campaign-level criterion (targeted location/geo, placement, or keyword) by its criterion ID.","write_action":true,"price_micros":0,"input_schema":null},{"name":"gads_remove_keyword","description":"Remove (pause) a keyword from an ad group.","write_action":true,"price_micros":0,"input_schema":null},{"name":"gads_request_ad_review","description":"Request re-review (appeal) of a disapproved or approved-limited ad via the API. Uses the","write_action":false,"price_micros":0,"input_schema":null},{"name":"gads_search","description":"Run a read-only GAQL query and return rows — for looking up campaign/budget/ad_group/criterion","write_action":true,"price_micros":0,"input_schema":null},{"name":"gads_set_ad_group_bid","description":"Set the default max CPC bid (USD) on an existing ad group. Use to raise/lower delivery on a specific ad group under Manual CPC / Maximize Clicks. Refs #5764.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gads_set_ad_status","description":"Set an individual ad's status to ENABLED, PAUSED, or REMOVED (ad_group_ad). Use to pause a throttled/underperforming ad or remove a rejected one without touching the ad group. Refs #5764.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gads_set_bidding_strategy","description":"Change an existing campaign's bidding strategy (MAXIMIZE_CLICKS, MAXIMIZE_CONVERSIONS,","write_action":false,"price_micros":0,"input_schema":null},{"name":"gads_set_campaign_status","description":"Set a Google Ads campaign status to ENABLED or PAUSED. Use ENABLED to (re)enable a paused","write_action":false,"price_micros":0,"input_schema":null},{"name":"gads_set_conversion_goal_inclusion","description":"Control whether a conversion action counts toward the primary \"Conversions\" metric (and thus Smart Bidding).","write_action":false,"price_micros":0,"input_schema":null},{"name":"gads_set_keyword_bid","description":"Set the max CPC bid (USD) on a specific keyword (ad group criterion). Refs #5764.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gads_set_presence_only","description":"Set a campaign to PRESENCE-only geo targeting (target users physically IN the targeted","write_action":false,"price_micros":0,"input_schema":null},{"name":"gads_set_recommendation_subscription","description":"Turn Google Ads auto-apply recommendations ON or OFF. Set enabled=false to PAUSE (stop auto-applying —","write_action":false,"price_micros":0,"input_schema":null},{"name":"gads_update_campaign_budget","description":"Update the daily budget of a Google Ads campaign. Provide the campaign budget ID (from the campaign) and the new daily amount in dollars. Use to scale spend up or down.","write_action":true,"price_micros":0,"input_schema":null},{"name":"gads_update_conversion_counting","description":"Update the counting type of a Google Ads conversion action. Common fix: change counting_type from MANY_PER_CLICK to ONE_PER_CLICK for purchase conversions to avoid inflated counts.","write_action":true,"price_micros":0,"input_schema":null},{"name":"gads_upload_click_conversion","description":"Upload an OFFLINE click conversion keyed by gclid — the attribution backbone that ties a real","write_action":true,"price_micros":0,"input_schema":null},{"name":"gads_upload_image_asset","description":"Upload an image file from local disk as a Google Ads image Asset (for Display banners /","write_action":true,"price_micros":0,"input_schema":null},{"name":"gads_upload_media_bundle","description":"Upload an HTML5 ad ZIP file from disk as a Google Ads MEDIA_BUNDLE asset (for HTML5 display","write_action":true,"price_micros":0,"input_schema":null},{"name":"gtm_audit_container","description":"Comprehensive container audit — finds broken tags, duplicate tags, misfiring conversion tags, tags missing triggers, and tags firing too broadly. Returns a health score 0–100.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gtm_create_trigger","description":"Create a new trigger in a GTM workspace","write_action":true,"price_micros":0,"input_schema":null},{"name":"gtm_create_version","description":"Create a container version from current workspace changes","write_action":true,"price_micros":0,"input_schema":null},{"name":"gtm_delete_tag","description":"Delete a GTM tag from a workspace","write_action":true,"price_micros":0,"input_schema":null},{"name":"gtm_find_misfiring_conversion_tags","description":"Find conversion/purchase tags that are firing too broadly (e.g. on All Pages instead of a specific event). This is the most common GTM billing/analytics issue.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gtm_fix_conversion_tag_trigger","description":"Fix a misfiring conversion tag by replacing its broad trigger (e.g. All Pages) with a specific Custom Event trigger. Creates the new trigger if needed.","write_action":false,"price_micros":0,"input_schema":null},{"name":"gtm_get_container","description":"Get details of a specific GTM container","write_action":false,"price_micros":0,"input_schema":null},{"name":"gtm_get_tag","description":"Get full configuration of a specific GTM tag","write_action":false,"price_micros":0,"input_schema":null},{"name":"gtm_get_trigger","description":"Get full configuration of a specific GTM trigger","write_action":false,"price_micros":0,"input_schema":null},{"name":"gtm_get_workspace_status","description":"Get pending (unsaved) changes in a workspace before publishing","write_action":false,"price_micros":0,"input_schema":null},{"name":"gtm_list_accounts","description":"List all GTM accounts accessible to the service account","write_action":false,"price_micros":0,"input_schema":null},{"name":"gtm_list_containers","description":"List all containers in a GTM account","write_action":false,"price_micros":0,"input_schema":null},{"name":"gtm_list_tags","description":"List all tags in a GTM workspace","write_action":false,"price_micros":0,"input_schema":null},{"name":"gtm_list_triggers","description":"List all triggers in a GTM workspace","write_action":false,"price_micros":0,"input_schema":null},{"name":"gtm_list_workspaces","description":"List workspaces in a GTM container","write_action":false,"price_micros":0,"input_schema":null},{"name":"gtm_publish","description":"Publish the current workspace — makes all changes live immediately","write_action":true,"price_micros":0,"input_schema":null},{"name":"gtm_update_tag","description":"Update an existing GTM tag (e.g. fix its trigger, rename it, update parameters)","write_action":true,"price_micros":0,"input_schema":null},{"name":"gtm_update_trigger","description":"Update an existing GTM trigger","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":80,"grade":"B","scanned_at":"2026-09-24T12:02:46.351Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-24T12:02:46.356Z","components":{"code":{"score":25,"max":25,"notes":["23 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":12,"max":15,"notes":["last push 54 days ago"]},"identity":{"score":9,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"@ainative/gtm-mcp","version":"0.4.2","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":4,"publishedAt":"2026-08-01T02:18:40.028Z","repositoryUrl":"git+https://github.com/AINative-Studio/ainative-gtm-mcp.git","weeklyDownloads":42}],"repo":{"found":true,"owner":"AINative-Studio","repo":"ainative-gtm-mcp","archived":false,"pushedAt":"2026-08-01T02:18:44Z","stars":0,"forks":0,"openIssues":0,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/214200599?v=4","ownerCreatedAt":"2025-05-31T01:43:27Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/214200599?v=4&s=128","source":"github"},"presence":{"stars":0,"forks":0,"downloadsWeek":42,"license":"MIT","lastPushAt":"2026-08-01T02:18:44.000Z","score":18}}}},"grade_history":[],"reviews":[]}