Google Ads MCP Reader
This server provides read-only access to Google Ads, Google Search Console, and Google Analytics 4 data, designed for AI assistants and LLM agents to safely retrieve performance and analytics information without making any changes.
Google Ads
Discover all accessible Google Ads account IDs.
Explore selectable, filterable, and sortable fields for any Google Ads resource (e.g., campaigns, ad groups).
Execute custom GAQL queries to retrieve performance data, with automatic routing for Manager (MCC) accounts to child accounts.
Google Search Console
Check available GSC tools and authentication status.
List all accessible GSC properties and their verification/ownership details.
Get top queries and pages with clicks, impressions, CTR, and position.
Get an executive performance summary with daily traffic trends.
Compare search performance between two date ranges.
Run advanced analytics with filtering, sorting, and pagination (up to 25,000 rows).
Inspect a specific URL's crawl, indexing, canonicalization, and robots.txt status.
List sitemaps with submission status, errors, and indexed URL counts.
Google Analytics 4
Check available GA4 tools and authentication status.
Discover all accessible GA4 properties.
Browse available dimensions and metrics for a specific property.
Run standard reports with customizable dimensions, metrics, date ranges, filters, ordering, and limits.
Run real-time reports covering the last 30 minutes.
Provides read-only access to Google Ads data via GAQL queries, including campaign performance, account discovery, resource metadata, and automatic routing through manager (MCC) accounts.
Provides tools for accessing Google Analytics 4 properties, including listing properties, retrieving metadata, and running standard or real-time reports with filtering and ordering.
Provides tools for querying Google Search Console data such as search analytics, performance overviews, period comparisons, URL inspection, and sitemap management.
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 MCP Readerlist my active campaigns with performance metrics"
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.
Open Google MCP
A read-only Model Context Protocol (MCP) server for Google Ads (via GAQL), Search Console, and Google Analytics 4. Designed for AI assistants and LLM agents to safely read campaign performance, search analytics, website traffic, and more.
Tools
Google Ads
Tool | Input | Description |
| — | Discover Google Ads account IDs |
|
| Explore selectable/filterable/sortable fields for a resource |
|
| Execute read-only GAQL queries |
Google Search Console
Tool | Input | Description |
| — | Get categorized tool list with auth status |
| — | List all GSC properties (start here) |
|
| Verification/ownership for a property |
|
| Top queries with clicks, impressions, CTR, position |
|
| Executive summary with daily trend |
|
| Compare two date ranges |
|
| Filtered, sorted, paginated analytics |
|
| Debug a URL's crawl/index status |
|
| List sitemaps with status and errors |
Google Analytics 4
Tool | Input | Description |
| — | Get categorized tool list with auth status |
| — | Discover all accessible GA4 properties |
|
| Browse available dimensions and metrics |
|
| Run a standard report with filtering and ordering |
|
| Get real-time data (last 30 minutes) |
Manager Account Auto-Routing
If search targets a manager (MCC) account and finds no data directly, it automatically:
Detects the account is a manager
Finds child accounts
Runs the query on each child
Returns combined results with
_source_customer_idmarking which account each row belongs to
Related MCP server: Google Ads - AdLoop
Setup
Prerequisites (all paths)
A Google Ads developer token (apply via Google Ads API Center)
Google Cloud service account with the following APIs enabled:
Option A: Docker (recommended — no Python required)
1. Clone
git clone https://github.com/ceotind/open-google-mcp.git
cd open-google-mcp2. Create and authorize a service account
A single service account authenticates Google Ads, Search Console, and Google Analytics 4.
Go to GCP Console → APIs & Services → Credentials → Create Credentials → Service Account
Download the JSON key file, then copy these fields into
.env:GOOGLE_SERVICE_ACCOUNT_EMAILGOOGLE_SERVICE_ACCOUNT_KEY(theprivate_key— keep the\nescapes)GOOGLE_SERVICE_ACCOUNT_KEY_IDGOOGLE_SERVICE_ACCOUNT_CLIENT_IDGOOGLE_SERVICE_ACCOUNT_PROJECT_ID
Google Ads: add the service account email in your manager account (Settings → Account access → Service account users)
Search Console: add the same email to your property (Settings → Users and permissions → Add user, grant Full access)
Google Analytics 4: add the same email to your GA4 property (Admin → Account Access Management → Add user → Viewer)
3. Configure .env
cp .env.example .env
# Edit .env with the service account values + developer tokenVariable | Description |
| Your Google Ads API developer token |
| Service account email |
| Private key (with |
| Private key ID |
| Client ID |
| GCP project ID |
| Optional — for MCC account routing |
| Optional — dedicated GA4 credential file |
4. Build and run
docker compose build
docker compose run --rm open-google-mcp5. MCP client config
Claude Desktop:
{
"mcpServers": {
"open-google-mcp": {
"command": "docker",
"args": ["compose", "run", "--rm", "open-google-mcp"],
"workdir": "/path/to/open-google-mcp"
}
}
}opencode:
{
"mcp": {
"open-google-mcp": {
"type": "local",
"command": ["docker", "compose", "run", "--rm", "open-google-mcp"],
"workdir": "/path/to/open-google-mcp",
"enabled": true
}
}
}Cursor:
Name:
open-google-mcpType:
commandCommand:
docker compose run --rm open-google-mcpWorking directory:
/path/to/open-google-mcp
Option B: Python (local install)
1. Clone and install
git clone https://github.com/ceotind/open-google-mcp.git
cd open-google-mcp
python3 -m venv .venv
source .venv/bin/activate
pip install -e .2. Create and authorize a service account
Same steps as Option A above — a single service account works for Ads, GSC, and GA4.
Go to GCP Console → APIs & Services → Credentials → Create Credentials → Service Account
Download the JSON key file, then copy these fields into
.env:GOOGLE_SERVICE_ACCOUNT_EMAILGOOGLE_SERVICE_ACCOUNT_KEYGOOGLE_SERVICE_ACCOUNT_KEY_IDGOOGLE_SERVICE_ACCOUNT_CLIENT_IDGOOGLE_SERVICE_ACCOUNT_PROJECT_ID
Google Ads: add the service account email in your manager account
Search Console: add the same email to your property with Full access
Google Analytics 4: add the same email to your GA4 property with Viewer access
3. Configure .env
cp .env.example .envVariable | Description |
| Your Google Ads API developer token |
| Service account email |
| Private key (with |
| Private key ID |
| Client ID |
| GCP project ID |
| Optional — for MCC account routing |
| Optional — dedicated GA4 credential file |
4. Run
source .venv/bin/activate
source .env
python -m open_google_mcpOr use the wrapper script (loads .env automatically):
./server.sh5. MCP client config
Claude Desktop:
{
"mcpServers": {
"open-google-mcp": {
"command": "/path/to/open-google-mcp/server.sh"
}
}
}opencode:
{
"mcp": {
"open-google-mcp": {
"type": "local",
"command": ["/path/to/open-google-mcp/server.sh"],
"enabled": true
}
}
}Cursor:
Name:
open-google-mcpType:
commandCommand:
/path/to/open-google-mcp/server.sh
Google Ads — Usage Examples
List Ads accounts
list_accessible_customersDiscover fields for a resource
get_resource_metadata(resource_name="campaign")Get active search campaigns with performance
search(
customer_id="1234567890",
resource="campaign",
fields=["campaign.id", "campaign.name", "campaign.status",
"campaign.advertising_channel_type", "metrics.clicks",
"metrics.impressions", "metrics.cost_micros"],
conditions=["campaign.status = 'ENABLED'",
"segments.date DURING LAST_30_DAYS"],
orderings=["metrics.clicks DESC"],
limit=10
)Get child accounts under a manager
search(
customer_id="1234567890",
resource="customer_client",
fields=["customer_client.id", "customer_client.descriptive_name", "customer_client.manager"]
)Google Search Console — Usage Examples
List GSC properties
gsc_list_propertiesGet search analytics
gsc_get_search_analytics(
site_url="https://example.com",
days=28,
dimensions="query",
row_limit=10
)Get performance overview
gsc_get_performance_overview(
site_url="https://example.com",
days=28
)Compare two time periods
gsc_compare_search_periods(
site_url="https://example.com",
period1_start="2025-01-01",
period1_end="2025-01-31",
period2_start="2025-02-01",
period2_end="2025-02-28",
dimensions="query",
limit=10
)Advanced analytics with filters
gsc_get_advanced_search_analytics(
site_url="https://example.com",
dimensions="query,device",
search_type="WEB",
row_limit=50,
sort_by="impressions",
sort_direction="descending",
filters='[{"dimension":"country","operator":"equals","expression":"usa"}]'
)Inspect a URL
gsc_inspect_url(
site_url="https://example.com",
page_url="https://example.com/blog/post"
)List sitemaps
gsc_get_sitemaps(site_url="https://example.com")Google Analytics 4 — Usage Examples
Start here — discover properties
ga4_list_propertiesReturns your property ID (e.g. 123456789) — use it in all other GA4 tools.
Browse available dimensions and metrics
ga4_get_metadata(property_id="123456789")Returns 300+ dimensions and 100+ metrics available for reporting.
Run a basic report (property-level summary)
ga4_run_report(
property_id="123456789",
metrics="activeUsers,sessions,newUsers",
start_date="28daysAgo",
end_date="today"
)Top countries by users
ga4_run_report(
property_id="123456789",
dimensions="country",
metrics="activeUsers",
start_date="28daysAgo",
end_date="today",
limit=10,
order_bys=[{"metric": "activeUsers", "desc": true}]
)Top pages with views
ga4_run_report(
property_id="123456789",
dimensions="pagePath",
metrics="screenPageViews,activeUsers",
start_date="28daysAgo",
end_date="today",
limit=10,
order_bys=[{"metric": "screenPageViews", "desc": true}]
)Traffic sources breakdown
ga4_run_report(
property_id="123456789",
dimensions="sessionDefaultChannelGrouping",
metrics="activeUsers,sessions",
start_date="28daysAgo",
end_date="today",
limit=10,
order_bys=[{"metric": "activeUsers", "desc": true}]
)Filter by country (e.g. only Ireland)
ga4_run_report(
property_id="123456789",
dimensions="city",
metrics="activeUsers",
start_date="28daysAgo",
end_date="today",
filters={"field": "country", "type": "string_filter",
"value": "Ireland", "match_type": "EXACT"},
limit=10
)Device breakdown
ga4_run_report(
property_id="123456789",
dimensions="deviceCategory",
metrics="activeUsers,sessions",
start_date="28daysAgo",
end_date="today"
)Real-time report (last 30 minutes)
ga4_run_realtime_report(
property_id="123456789",
dimensions="country,deviceCategory",
metrics="activeUsers",
limit=10
)Date formats
You can use relative or absolute dates:
Relative:
today,yesterday,7daysAgo,28daysAgo,30daysAgoAbsolute:
2026-01-01(YYYY-MM-DD format)
GAQL Tips
Field names must be fully qualified:
campaign.id, notidDate format:
YYYY-MM-DDwith dashesRelative dates:
DURING LAST_7_DAYS,LAST_30_DAYS,THIS_MONTH,THIS_QUARTERFor
change_eventresource, limit must be ≤ 10000Conditions are AND-combined
Use
get_resource_metadatafirst to discover valid fields
License
MIT
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
- AlicenseBqualityBmaintenanceRead-only MCP server for Google Ads, enabling querying campaigns, ad groups, ads, insights, and keywords without create/update/delete operations.Last updated9MIT
- AlicenseAqualityAmaintenanceAn MCP server that gives your AI assistant read + write access to Google Ads and GA4 — with safety guardrails that prevent accidental spend.Last updated67223MIT
- Alicense-qualityDmaintenanceMCP server for Google Ads campaign reporting and management via Claude, enabling GAQL queries, performance metrics, and campaign modifications.Last updated28MIT
- Alicense-qualityCmaintenanceProvides read-only access to Google Ads account data including campaigns, ad groups, keywords, and performance reports. Enables querying via GAQL through an MCP interface.Last updatedMIT
Related MCP Connectors
Read-only MCP server for ClassQuill, a tutoring-business-management platform.
Read-only MCP server for wafergraph.com's semiconductor & AI supply-chain data: 30 tools, no auth.
Managed LinkedIn MCP server for AI agents: search, connect, message and enrich on accounts you own.
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/ceotind/open-google-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server