Google Ads MCP by Markifact

com.markifactv1.0.0Updated Sep 28, 2026

Google Ads MCP: reports, search terms, negatives, budgets, campaigns. Approval on every write.

VerifiedStreamable HTTPWeb executableBusiness & CommerceWeb Search & Scraping

Installation

In SourceWeft

  1. Open Google Ads MCP by Markifact in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "google-ads": {
      "type": "http",
      "url": "https://api.markifact.com/mcp/google-ads"
    }
  }
}

README

Google Ads MCP Server

[MCP] [License: MIT] [Setup guide]

Google Ads MCP server for Claude, ChatGPT, Codex, Cursor and any MCP client. 67 Google Ads operations: 13 reads that run instantly and 54 writes that wait for your approval. Hosted, one OAuth login, nothing to install locally.

This is the Google Ads endpoint of the Markifact MCP server. It is the full Markifact server with Google Ads as the entry point, so the same login also reaches every other platform Markifact connects, from Meta and Google Analytics to Sheets and Slack. If you only run Google Ads, this is the one to install.

What you can do

  • Reports. Campaign, ad group, ad, keyword, search term, asset, audience, device, geo and hour-of-day performance over any date range with comparison periods. Change history, recommendations, Performance Max channel split, raw GAQL.
  • Changes. Create Search, Performance Max, Demand Gen, Display and App campaigns and ad groups. Responsive search ads and edits. Budgets, bids, bidding strategies, statuses, ad schedules, locations and languages. Keywords, negatives at ad group, campaign and shared-list level, placement and IP exclusions. Sitelinks, callouts, snippets, promotions, image and text assets. Audiences, labels, experiments, conversion actions, listing groups.
  • Planning. Keyword Planner volumes and forecasts, geo target lookup, shareable ad previews, Ads Transparency Center lookups, and a generic mutate operation for anything else in the Google Ads API.
  • Accounts. Manager accounts (MCC) supported: query or change any client account under the manager, or create a new client account.

Install

Sign up at markifact.com first (free credits included), connect Google Ads on the Connections page, then add the server to your client. The Google Ads MCP setup guide has the same steps with screenshots.

ClientSteps
Claude (web and desktop)Settings → Connectors → Add custom connector → URL https://api.markifact.com/mcp/google-ads → Connect, then sign in
Claude Codeclaude mcp add --transport http google-ads https://api.markifact.com/mcp/google-ads or /plugin install google-ads@markifact after claude plugin marketplace add markifact/markifact-mcp
ChatGPT and CodexInstall the Markifact plugin from the Plugin Directory and call it with @Markifact
CursorSettings → MCP → Add server → URL https://api.markifact.com/mcp/google-ads (or copy mcp.json from this repo into ~/.cursor/mcp.json)
Codex CLIAdd to ~/.codex/config.toml: [mcp_servers.google_ads] then url = "https://api.markifact.com/mcp/google-ads"
Gemini CLIgemini extensions install github.com/markifact/google-ads-mcp
WindsurfAdd the snippet from mcp.json to your MCP config
Any MCP clientStreamable HTTP at https://api.markifact.com/mcp/google-ads, OAuth 2.1 with PKCE, dynamic client registration supported

Details per client are in docs/clients.md. Every client completes the same browser login; the server never asks for API keys or tokens in the chat.

Prompts that work

Weekly performance with the three largest changes

text
Pull Google Ads campaign performance for the last 7 complete days versus the previous 7. Include cost, impressions, clicks, CTR, conversions, CPA, conversion value and ROAS. Sort by cost. Then list the three largest changes with the figures behind each. Do not make any changes.

Search terms wasting budget

text
List search terms from the last 30 days with more than $50 in cost and zero conversions, grouped by campaign. Suggest which should become negative keywords and at which level. Do not add anything yet.

Budget pacing

text
My monthly budget for the account is $12,000. Pull spend by campaign month to date, project the month-end total at the current daily rate, and flag campaigns pacing more than 10% over or under their share.

Performance Max channel split

text
For the Performance Max campaigns, show the channel split for the last 30 days with cost and conversions by channel.

Change a budget, with a preview

text
Review budget pacing for "Non-brand - Shoes" over the last 30 days. If a change is justified, propose one new daily budget with the evidence, and do not update anything until I approve the exact campaign ID, current budget and proposed budget.

Name the account, the date range and the metrics, ask for a read before a write, and say whether changes are allowed.

How writes work

Every write is an approval-gated operation. The client asks for a change, the server prepares it and shows the exact target (account, campaign ID, current value, proposed value), and nothing runs until you confirm. Reads never ask. The server can only reach accounts the authorized Google Ads login can already see.

Operations (67)

Generated from the Markifact operation registry.

OperationWhat it doesType
gads_add_keyword_to_ad_groupAdds keywords to Google Ads ad groups with match types.Write, approval required
gads_add_keywords_to_negative_listAdd keywords to an existing negative keyword list in Google AdsWrite, approval required
gads_add_negative_keywords_to_ad_groupsAdd negative keywords directly to one or more ad groups in Google AdsWrite, approval required
gads_add_negative_keywords_to_campaignsAdd negative keywords directly to one or more campaigns in Google AdsWrite, approval required
gads_add_placements_to_exclusion_listAdd placements to an existing placement exclusion list in Google AdsWrite, approval required
gads_ads_transparencySearch and retrieve ads from Google's Ads Transparency / library Center using domain or advertiser IDRead
gads_assign_portfolio_bidding_strategyAssigns a portfolio bidding strategy to one or more Google Ads campaignsWrite, approval required
gads_attach_negative_list_to_campaignsApply an existing negative keyword list or placement exclusion list to one or more campaigns in Google Ads.Write, approval required
gads_create_ad_groupCreates a new ad group within an existing Google Ads campaign.Write, approval required
gads_create_app_adCreates an App campaign ad (App installs, engagement, or pre-registration) with headlines, descriptions, images, and YouTube videos.Write, approval required
gads_create_calloutsCreate callout extensions and attach them to Google Ads entities at account, campaign, or ad group levelWrite, approval required
gads_create_campaignCreates a new empty Google Ads campaign with specified settings (Search, Display, Performance Max, AI Max, Demand Gen, or Shopping…Write, approval required
gads_create_client_accountCreate a new Google Ads client account under a manager (MCC) account, setting its name, currency, and timezoneWrite, approval required
gads_create_conversion_actionCreate a new conversion action in Google Ads, including upload (offline), webpage, call, and Google Play types, with category, status,…Write, approval required
gads_create_demand_gen_carousel_adCreates a Demand Gen carousel ad with 2-10 carousel cards (each with image, headline, and final URL).Write, approval required
gads_create_demand_gen_single_image_adCreates Demand Gen single image ads with multiple image formats (landscape, square, portrait) and text assets.Write, approval required
gads_create_demand_gen_video_adCreates a Demand Gen video responsive ad with YouTube videos, logos, and text assets.Write, approval required
gads_create_description_assetCreate description text assets and attach them to Google Ads campaignsWrite, approval required
gads_create_headline_assetCreate headline text assets and attach them to Google Ads campaignsWrite, approval required
gads_create_image_assetUpload image assets and link them to Google Ads campaigns or ad groupsWrite, approval required
gads_create_labelCreate a new label in Google AdsWrite, approval required
gads_create_negative_keyword_listCreates a new negative keyword list in Google AdsWrite, approval required
gads_create_placement_exclusion_listCreates a new placement exclusion list in Google AdsWrite, approval required
gads_create_pmax_asset_groupCreates an asset group for Performance Max campaigns with headlines, descriptions, images, and other assets.Write, approval required
gads_create_promotion_assetCreate promotion assets and attach them to Google Ads entities at account, campaign, or ad group levelWrite, approval required
gads_create_responsive_display_adCreates responsive display ads (RDA) with images, videos, and text that automatically optimize across Google's display network.Write, approval required
gads_create_responsive_search_adCreates responsive search ads (RSA) with multiple headlines and descriptions that automatically optimize for best performance.Write, approval required
gads_create_sitelinksCreate sitelink extensions and attach them to Google Ads entities at account, campaign, or ad group levelWrite, approval required
gads_create_structured_snippetsCreate structured snippet extensions and attach them to Google Ads entities at account, campaign, or ad group levelWrite, approval required
gads_edit_responsive_search_adEdit existing responsive search ads (RSA), update headlines, descriptions, final URL, or display paths.Write, approval required
gads_exclude_audience_segmentsExclude audience segments (remarketing lists, affinity, in-market, life events, detailed demographics, custom audiences, and combined…Write, approval required
gads_generate_shareable_previewsGenerate shareable Google Ads preview links for Performance Max asset groups, so a client can see how the ads look without a Google Ads…Read
gads_get_account_historyRetrieves historical account activity and changes for Google Ads accountsRead
gads_get_pmax_channel_split_reportGenerates Performance Max campaign reports split by advertising channelsRead
gads_get_reportRetrieves Google Ads data with customizable metrics, dimensions, filters, date ranges, sorting options, and built-in accounts selector.Read
gads_keyword_plannerResearches keyword suggestions and search volume data for Google Ads campaignsRead
gads_list_audience_segmentsList Google Ads audience segments by type with optional name search and result limit.Read
gads_list_report_fieldsSearch and browse available Google Ads reporting metrics and dimensions before running reports.Read
gads_manage_custom_audienceCreate, update, or remove a Google Ads custom audience defined by keywords, URLs, place categories, or apps.Write, approval required
gads_manage_experimentRun the lifecycle of a Google Ads campaign experiment: schedule it to start, end it early, or promote the winning treatment to the base…Write, approval required
gads_manage_ip_exclusionsExclude or remove IP addresses at the Google Ads account levelWrite, approval required
gads_manage_label_assignmentAttach or detach a label to/from campaigns, ad groups, ads, keywords, or the accountWrite, approval required
gads_manage_mcc_linkManage manager (MCC) account links: invite a client account, accept an invitation as the client, remove a client from a manager, or leave…Write, approval required
gads_manage_portfolio_bidding_strategyCreates or updates a reusable portfolio bidding strategy in Google Ads with bid limits, that can be assigned to multiple campaignsWrite, approval required
gads_manage_recommendationsApply or dismiss Google Ads recommendations, optionally with typed apply parameters to override Google's recommended values.Write, approval required
gads_mutateFallback Google Ads write operation for any create, update, or remove mutation that has no dedicated operation.Write, approval required
gads_rename_ad_groupRenames Google Ads ad groupsWrite, approval required
gads_rename_campaignRenames Google Ads campaignsWrite, approval required
gads_run_gaql_queryExecutes custom Google Ads Query Language (GAQL) queries to retrieve any resource information from Google Ads API like campaign settings,…Read
gads_search_gaql_resourcesOptional discovery helper for Google Ads GAQL metadata.Read
gads_search_geo_targetsSearch for Google Ads geo target location IDs by name.Read
gads_select_accountsSelect Google Ads accounts once and reuse them across multiple gads_get_report nodes,no repeated account selection.Read
gads_suggest_brandsFind Google Ads brand IDs by name prefix for Performance Max brand exclusions and Search brand inclusions or exclusions.Read
gads_target_audience_segmentsAdd or remove audience segments (remarketing lists, affinity, in-market, life events, detailed demographics, custom audiences, and…Write, approval required
gads_update_ad_group_bidUpdates the bid settings of Google Ads ad groups (CPC bid, Target CPA, Target ROAS, CPM bid)Write, approval required
gads_update_ad_group_statusUpdates the status of Google Ads ad groups (enable, pause, or remove) for campaign managementWrite, approval required
gads_update_ad_statusUpdates the status of Google Ads (enable, pause, or remove) for campaign managementWrite, approval required
gads_update_asset_statusUpdates the link status of Google Ads Assets (enable, pause, or remove the link between asset and ad group or campaign).Write, approval required
gads_update_audience_signalsAdd or remove audience signals on Performance Max and Demand Gen campaigns.Write, approval required
gads_update_campaign_ad_scheduleUpdates ad schedule (day and time targeting) and optional schedule-level bid adjustments / modifiers for Google Ads campaigns.Write, approval required
gads_update_campaign_bidding_strategyUpdates the bidding strategy for Google Ads campaigns (Manual CPC, Maximize Conversions, Maximize Conversion Value, Target Impression…Write, approval required
gads_update_campaign_budgetModifies the budget allocation for Google Ads campaigns.Write, approval required
gads_update_campaign_location_languageUpdates location targeting (including negative location exclusions), language targeting, and advanced location options (geo target type)…Write, approval required
gads_update_campaign_statusUpdates the status of Google Ads campaigns (enable, pause, or remove) for campaign managementWrite, approval required
gads_update_keyword_bidUpdates the max CPC bid of Google Ads keywords, one keyword or in bulk.Write, approval required
gads_update_keyword_statusUpdates the status of Google Ads Keywords (enable, pause, or remove)Write, approval required
gads_update_listing_groupsBuild or replace the listing group (product group) tree on a Shopping ad group, including excluding the LOCAL channel for online-only…Write, approval required

The server exposes ten MCP tools. find_operations searches this list, get_operation_inputs returns the exact input schema, run_operation runs reads and run_write_operation runs approval-gated writes. The remaining tools handle connections, files and media uploads. Architecture notes are in the main repo.

Related

FAQ

Do I need my own Google Ads API access?

Markifact is an approved Google Ads API developer (Standard Access, full-service tool). Markifact's Google Ads features, including this MCP server, are a feature of your Markifact account, not a standalone API. You authorize the Google login that already has access to your accounts, and the server can only reach what that login can see. If your agency or business needs its own programmatic access to the Google Ads API, Google recommends obtaining your own Google Cloud project approved for the access level you require.

Does it work with manager accounts?

Yes. Authorize the manager login and name the client account in your prompt. The server can also create client accounts under the manager.

Can it change my campaigns?

Yes, and every change is previewed and waits for your approval in the chat. Reads run immediately. Nothing is written without a confirmation.

Which AI clients work?

Any MCP client with OAuth support: Claude (web, desktop, Code), ChatGPT and Codex, Cursor, Windsurf, Gemini CLI and others. Install steps for each are above.

What does it cost?

The server is free to install. It needs a Markifact account, which starts with free credits. Plans are on the pricing page.

Support and policies

Email [email protected] or open an issue. See SECURITY.md, PRIVACY.md and TERMS.md. Licensed under MIT.

Source: README.md at commit 20c159e

Tools

0
Tool metadata has not been indexed yet.

Version history

1
  1. v1.0.0LatestSep 28, 2026