google-marketing-mcp
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-marketing-mcpshow me search terms with high spend but no conversions"
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-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.
Related MCP server: google-ads-mcp
Tools
Tool | What it does |
| Advertiser accounts under your manager (MCC) account. Start here to find customer ids. |
| Campaigns: status, channel, bidding strategy, budget. |
| Campaign budgets (amount, status, delivery). |
| Cost, impressions, clicks, CTR, avg CPC, conversions by account / campaign / ad group / keyword / ad. |
| Actual user queries with cost and conversions — negative-keyword candidates. |
| 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 buildConfiguration
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 |
| yes | Google Ads API developer token |
| yes | Service-account JSON, base64-encoded |
| yes | Your manager (MCC) account id |
| no | Default advertiser account; otherwise pass |
| 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.jsVerify
npm test # unit tests, no network or credentials needed
npm run smoke # end-to-end against the real API; needs credentialsLicense
MIT — see LICENSE.
Available Tools
1 toolget_metricsGet metricsC
Performance (cost, impressions, clicks, CTR, avg CPC, conversions, conv value) by level over a date range. Costs are in dollars.
| Name | Required | Description | Default |
|---|---|---|---|
| level | No | Aggregation level. | campaign |
| limit | No | Max rows (default 100). | |
| since | Yes | Start date, YYYY-MM-DD. | |
| until | Yes | End date, YYYY-MM-DD. | |
| customer_id | No | Ads customer id (digits or dashed). Defaults to GOOGLE_ADS_CUSTOMER_ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It lists the metrics returned and mentions cost currency, but does not describe pagination, response format, error scenarios, authentication needs, or any side effects. Important behavioral traits are missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loads the key metric names, and adds the currency note. Every word is functional; no redundancy or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 5 parameters and no output schema. The description does not explain the return structure, pagination, or what happens with missing data or errors. For a data retrieval tool, this leaves significant gaps for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All parameters have descriptions in the schema (100% coverage), so baseline is 3. The description adds a high-level summary ('by level over a date range') but does not elaborate on parameter usage, defaults, or constraints beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves performance metrics (cost, impressions, clicks, etc.) with aggregation by level over a date range, and specifies cost currency. The verb 'get' and resource 'metrics' are direct, though 'Get metrics' is generic; the description adds specificity. No sibling tools exist, so differentiation is not needed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs alternatives. There are no sibling tools listed, but the description lacks any explicit usage context, prerequisites, or exclusions. The agent receives no help in deciding if this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Only one tool exists, so there is no possibility of ambiguity or confusion between tools.
The single tool name follows a clear verb_noun pattern (get_metrics), consistent with best practices.
A single tool for a marketing MCP is far too few. Marketing typically requires multiple tools covering campaigns, ad groups, keywords, etc., making the count inappropriate.
The server only exposes a metrics retrieval tool, missing essential operations like listing campaigns, managing ads, or modifying settings. The surface is severely incomplete for the marketing domain.
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 Connectors
Google Ads MCP server — manage campaigns, keywords, and metrics.
Query your org's data in natural language — read-only MCP access to SQL, NoSQL, files & warehouses.
MCP server for querying and analyzing data from ad platforms, analytics tools, and spreadsheets
Read-only MCP access to your DEXUN AdWhiz account: ad accounts, AI recommendations, savings.
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
AlicenseNot gradedqualityBmaintenanceMCP server that provides tools and resources for interacting with Google Ads API, enabling search, metadata retrieval, and account management through natural language.907Apache 2.0- AlicenseBqualityCmaintenanceRead-only MCP server for Google Ads, enabling querying campaigns, ad groups, ads, insights, and keywords without create/update/delete operations.9MIT
- AlicenseNot gradedqualityCmaintenanceProvides read-only access to Google Ads account data including campaigns, ad groups, keywords, and performance reports. Enables querying via GAQL through an MCP interface.MIT
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/Bmiller4evr/google-marketing-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server