ga4-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GA4_MCP_PORT | No | HTTP port (default: 3000) | |
| GA4_MCP_TOOLS | No | Tool groups to enable: ga4, gsc, indexing, admin, all (default: all) | |
| GA4_MCP_TRANSPORT | No | Transport: stdio (default) or http (Streamable HTTP) | |
| GOOGLE_APPLICATION_CREDENTIALS | No | Path to a service account JSON key file for authentication |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| pingA | Health check — returns pong if server is running |
| get_account_summariesA | Retrieves all Google Analytics accounts and properties accessible to the authenticated user. |
| get_property_detailsA | Returns details about a GA4 property including display name, timezone, currency, and industry category. |
| list_google_ads_linksA | Returns a list of links to Google Ads accounts for a GA4 property. |
| run_reportC | Runs a Google Analytics 4 Data API report. |
| run_realtime_reportC | Runs a GA4 realtime report. |
| get_custom_dimensions_and_metricsB | Retrieves custom dimensions and custom metrics for a GA4 property. |
| ga4_adminA | GA4 property administration. Read: list_data_streams(property_id), list_key_events(property_id), list_audiences(property_id), list_firebase_links(property_id), get_measurement_protocol_secret(property_id, stream_id, secret_id). Write: create_property(account_id, display_name, time_zone?, currency_code?), update_property(property_id, display_name?, time_zone?, currency_code?), create_data_stream(property_id, type?, display_name, default_uri?), update_data_stream(property_id, stream_id, display_name), create_measurement_protocol_secret(property_id, stream_id, display_name?), create_key_event(property_id, event_name, counting_method?). Destructive (requires confirm:true): delete_property(property_id), delete_data_stream(property_id, stream_id), delete_key_event(property_id, key_event_id). |
| gsc_list_sitesA | Lists all sites (properties) the authenticated user has access to in Google Search Console. |
| gsc_search_analyticsB | Queries Google Search Console search analytics data — impressions, clicks, CTR, and position for queries, pages, countries, and devices. |
| gsc_inspect_urlA | Inspects a URL in Google Search Console — returns index status, crawl info, mobile usability, and rich results. |
| gsc_list_sitemapsB | Lists all sitemaps submitted for a site in Google Search Console. |
| gsc_add_siteA | Adds a site to Google Search Console. Use URL prefix (e.g. "https://example.com/") or domain property (e.g. "sc-domain:example.com"). |
| gsc_submit_sitemapB | Submits a sitemap URL for a site in Google Search Console. |
| indexing_notifyA | Notifies Google to crawl or remove a URL via the Indexing API. Requires service account with indexing scope. |
| indexing_statusB | Checks the last crawl/notification status for a URL via the Indexing API. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 16 tools
There is some overlap between the ga4_admin tool's read capabilities (like listing data streams, audiences) and the separate get_property_details and get_custom_dimensions_and_metrics tools. However, the GSC and Indexing tools are clearly prefixed and distinct. Overall, an agent could confuse whether to use ga4_admin or the more specific get_* tools for property info.
Most tools follow a verb_noun pattern in snake_case (e.g., get_account_summaries, run_report), but ga4_admin is a noun-based tool name and ping is a simple noun. This mix of naming conventions could cause slight confusion.
With 16 tools covering GA4 administration, reporting, Google Search Console, and Indexing API, the count is reasonable for the scope. Not too few or too many, though the inclusion of ping as a separate tool is slightly unnecessary.
The tool set covers major CRUD operations for GA4 properties and includes reporting and GSC functionality. However, there are gaps: no tool to remove a site from GSC, no delete for audiences or Google Ads links, and no tool to delete sitemaps. The Indexing API also lacks a list/status bulk operation.