google-ads-manager-mcp
Provides tools for reading and managing Google Ads accounts, including running GAQL reports, creating and editing campaigns, ad groups, keywords, and responsive search ads, with a draft-to-confirm safety flow for write operations.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@google-ads-manager-mcpShow me my campaign performance for the last 30 days"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Google Ads Manager MCP
Unofficial, community-maintained project. Not affiliated with, endorsed by, or sponsored by Google. "Google Ads" is a trademark of Google LLC.
A local MCP (Model Context Protocol) server that lets an AI assistant read and manage a Google Ads account: run GAQL reports, create campaigns, pause/enable campaigns, and add keywords.
Google also publishes an official Google Ads MCP server, which is read-only (reporting/diagnostics only). This project covers the same reporting ground and adds write support — creating and editing campaigns, budgets, ad groups, keywords, and ads — gated behind a draft/confirm safety layer so nothing changes in your account by accident.
Every write goes through a draft → confirm safety flow: the tool that "creates" or "updates"
something only validates the change against Google's API (validate_only) and hands back a
draftId with a preview. Nothing changes in your Ads account until you call confirm_write with
that draftId. Drafts expire after 10 minutes.
Tools
Read-only:
list_accessible_customers— which accounts this refresh token can reachsearch_gaql— run any raw GAQLSELECTqueryget_campaigns— campaigns with status, budget, and core metricsget_ad_groups— ad groups (optionally filtered to a campaign) with metricsget_keywords— keyword criteria with match type, status, and metricsget_search_terms— actual search terms that triggered your ads, for finding negative keyword candidates
Write (draft → confirm):
create_campaign— new campaign + budget, createdPAUSEDunless you say otherwiseupdate_campaign_status— enable / pause / remove a campaignupdate_campaign_budget— change an existing campaign's daily budgetadd_keywords— add keyword criteria to an ad groupcreate_ad_group— new ad group inside an existing campaignupdate_ad_group_status— enable / pause / remove an ad groupupdate_keyword_status— enable / pause / remove a keyword criterionadd_negative_keywords— add negative keyword criteria to an ad groupcreate_responsive_search_ad— new responsive search ad, createdPAUSEDunless you say otherwiseconfirm_write— execute a previously returneddraftIdfor real
Related MCP server: google-ads-mcp
Setup
1. Google Ads developer token
Google Ads → Tools & Settings → API Center. Test-account tokens are issued instantly; a production-level token requires Google's manual review (roughly 1-2 weeks), so apply for that early if you'll use this beyond a test account.
2. OAuth client
Google Cloud Console → APIs & Services → Credentials → Create credentials → OAuth client ID. Choose application type Desktop app. Copy the client ID and client secret.
3. Configure environment
cp .env.example .envFill in GOOGLE_ADS_CLIENT_ID, GOOGLE_ADS_CLIENT_SECRET, GOOGLE_ADS_DEVELOPER_TOKEN, and
GOOGLE_ADS_CUSTOMER_ID (the account this server should manage — 10 digits, dashes optional). If
that account is a client under a manager (MCC) account, also set GOOGLE_ADS_LOGIN_CUSTOMER_ID to
the manager account's ID.
4. Get a refresh token
npm install
npm run authThis opens an authorization URL — open it, sign in with the Google account that has access to
your Ads account, approve the adwords scope. The script prints a GOOGLE_ADS_REFRESH_TOKEN;
add it to .env.
5. Build
npm run build6. Point your MCP client at it
For Claude Desktop / Claude Code, add to your MCP config:
{
"mcpServers": {
"google-ads-manager": {
"command": "node",
"args": ["/absolute/path/to/google ads manger mcp/build/index.js"],
"env": {
"GOOGLE_ADS_CLIENT_ID": "...",
"GOOGLE_ADS_CLIENT_SECRET": "...",
"GOOGLE_ADS_DEVELOPER_TOKEN": "...",
"GOOGLE_ADS_REFRESH_TOKEN": "...",
"GOOGLE_ADS_CUSTOMER_ID": "..."
}
}
}
}(Or skip the env block and just make sure .env is populated — the server loads it via
dotenv when run directly, e.g. npm run dev during local iteration.)
Notes
This is scoped to a single Google Ads account (
GOOGLE_ADS_CUSTOMER_ID). To manage several client accounts under one manager account, either run one instance per customer ID, or extendgoogleAdsClient.tsto accept acustomerIdargument per tool call.New campaigns default to
PAUSED(startEnabled: false) so nothing spends until you explicitly enable it.
Contributing
Issues and PRs welcome — new report types, negative-keyword-at-campaign-level support, and multi-account (MCC) handling are the most useful next additions.
License
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityFmaintenanceA read-write MCP server for managing Google Ads campaigns, ad groups, keywords, and ads via natural language.122The Unlicense

google-ads-mcpofficial
Alicense-qualityAmaintenanceMCP server that provides tools and resources for interacting with Google Ads API, enabling search, metadata retrieval, and account management through natural language.843Apache 2.0- AlicenseBqualityBmaintenanceRead-only MCP server for Google Ads, enabling querying campaigns, ad groups, ads, insights, and keywords without create/update/delete operations.9MIT
- Alicense-qualityCmaintenanceMCP server that exposes write operations on Google Ads, enabling management of campaigns, ad groups, keywords, RSA ads, sitelinks, images, Customer Match audiences, and recommendations.MIT
Related MCP Connectors
MCP server for Google search results via SERP API
Remote MCP server for the Hackle Admin API: experiments, feature flags, remote config, messaging.
MCP server for interacting with the Supabase platform
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/AleemHaider/google-ads-manager-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server