google-marketing-mcp
Read-only MCP server for Google Ads API, enabling natural language queries about campaigns, metrics, search terms, and change history without write access.
README
google-marketing-mcp
A read-only MCP server that exposes the Google Ads API to LLM clients: campaigns, metrics, search terms, budgets, and change history.
Point Claude (or any MCP client) at your Ads account and ask questions like "which search terms spent over $50 with no conversions last month?" without handing it write access.
Read-only by construction
There is no write or mutation code path in this server. It isn't a permission flag that can be toggled or a prompt instruction that can be talked around: the mutate endpoints simply aren't implemented. Even if the underlying service account has write scope, a client connected here cannot change anything in your account.
Tools
| Tool | What it does |
|---|---|
list_accounts |
Advertiser accounts under your manager (MCC) account. Start here to find customer ids. |
get_campaigns |
Campaigns: status, channel, bidding strategy, budget. |
get_budgets |
Campaign budgets (amount, status, delivery). |
get_metrics |
Cost, impressions, clicks, CTR, avg CPC, conversions by account / campaign / ad group / keyword / ad. |
get_search_terms |
Actual user queries with cost and conversions — negative-keyword candidates. |
get_change_history |
Native Ads change log (last 30 days). |
Money fields are converted from micros to dollars, and nested rows are dot-flattened
(campaign.name, metrics.cost), so results drop straight into a table without post-processing.
Requirements
- Node 20+
- A Google Ads developer token (apply here)
- A service account with access to your Ads account, as base64-encoded JSON
Setup
npm install && npm run build
Configuration
All configuration is via environment variables. Nothing is hardcoded — the server fails with a named error if a required variable is missing.
| Variable | Required | Purpose |
|---|---|---|
GOOGLE_ADS_DEVELOPER_TOKEN |
yes | Google Ads API developer token |
GOOGLE_SERVICE_ACCOUNT_KEY |
yes | Service-account JSON, base64-encoded |
GOOGLE_ADS_LOGIN_CUSTOMER_ID |
yes | Your manager (MCC) account id |
GOOGLE_ADS_CUSTOMER_ID |
no | Default advertiser account; otherwise pass customer_id per call |
GOOGLE_ADS_ENV_FILE |
no | Path to a dotenv file to read the above from |
Ids may be dashed or bare (123-456-7890 and 1234567890 are equivalent).
Resolution order is process environment first, then GOOGLE_ADS_ENV_FILE if set.
Add to Claude Code
claude mcp add google-marketing -- node /absolute/path/to/google-marketing-mcp/dist/index.js
Verify
npm test # unit tests, no network or credentials needed
npm run smoke # end-to-end against the real API; needs credentials
License
MIT — see LICENSE.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.