Unofficial MCP server for Google Ads: reporting plus safe draft/confirm campaign management.
MCPpedia last refreshed this data
io.github.AleemHaider/google-ads-manager-mcp is an MCP server that unofficial MCP server for Google Ads: reporting plus safe draft/confirm campaign management. Its tool list has not been published yet over stdio, requires no API key, and scores 56/100 on MCPpedia's security, maintenance and efficiency rubric.
Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"google-ads-manager": {
"env": {
"GOOGLE_ADS_CLIENT_ID": "...",
"GOOGLE_ADS_CUSTOMER_ID": "...",
"GOOGLE_ADS_CLIENT_SECRET": "...",
"GOOGLE_ADS_REFRESH_TOKEN": "...",
"GOOGLE_ADS_DEVELOPER_TOKEN": "..."
},
"args": [
"/absolute/path/to/google ads manger mcp/build/index.js"
],
"command": "node"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
Unofficial, community-maintained project. Not affiliated with, endorsed by, or sponsored by > Google. "Google Ads" is a trademark of Google LLC.
Run this in your terminal to verify the server starts. Then let us know if it worked — your result helps other developers.
npx -y 'google-ads-manager-mcp' 2>&1 | head -1 && echo "✓ Server started successfully"
After testing, let us know if it worked:
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
Checked google-ads-manager-mcp against OSV.dev.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in marketing
DataForSEO API modelcontextprotocol server
B2B lead generation and company search through Generect Live API for sales prospecting.
Turn any idea, URL, doc, or PDF into on-brand visuals: 100+ formats, native in 150+ languages
Google Search Console MCP Server for Claude, Cursor, Windsurf and other MCP Clients
MCP Security Weekly
Get CVE alerts and security updates for io.github.AleemHaider/google-ads-manager-mcp and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
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.
Read-only:
list_accessible_customers — which accounts this refresh token can reachsearch_gaql — run any raw GAQL SELECT queryget_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 candidatesWrite (draft → confirm):
create_campaign — new campaign + budget, created PAUSED unless 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, created PAUSED unless you say otherwiseconfirm_write — execute a previously returned draftId for realGoogle 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.
Google Cloud Console → APIs & Services → Credentials → Create credentials → OAuth client ID. Choose application type Desktop app. Copy the client ID and client secret.
cp .env.example .env
Fill 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.
npm install
npm run auth
This 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.
npm run build
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