Google Analytics (unofficial)
by safe-mcp.com · remote · no sign-in to list tools · v1.0.0 · published by com.safe-mcp
Connect Google Analytics to ChatGPT. Query GA4 data in plain English and get instant insights.
5 tools: 1 change things and 4 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things1Claude Code: ask: see these tools
- Only reads4Claude Code: allow: see these tools
2 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http google-analytics-unofficial https://api.safe-mcp.com/mcpFindings
Matches of fixed checks, with the text they matched.
The input schema at properties.selectorSets.properties.ga4.anyOf[0].items.$ref contains a 44-character base64 string.
What this check looks forMatched text
inputSchema.properties.selectorSets.properties.ga4.anyOf[0].items.$ref: "#/properties/selectors/properties/ga4/anyOf/0"
The server marks "marketing_manage_surface" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}; The description's first verb is "get": a word for reading.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
5 tools
Changes things 1Claude Code: ask
marketing_manage_surfaceGets or updates persisted selectors for a website/app analysis surface.2 findings
Why it is in this group
- The description's first verb is "get": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Warn
The input schema at properties.selectorSets.properties.ga4.anyOf[0].items.$ref contains a 44-character base64 string.
What this check looks forMatched text
inputSchema.properties.selectorSets.properties.ga4.anyOf[0].items.$ref: "#/properties/selectors/properties/ga4/anyOf/0"
- Warn
The server marks "marketing_manage_surface" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false}; The description's first verb is "get": a word for reading.
Description, as the server wrote it Gets or updates persisted selectors for a website/app analysis surface. Use action='get' to inspect mappings and action='update' to persist GA4, Search Console, or Bing Webmaster selectors.
Annotations the server declares
- readOnlyHint: false
- openWorldHint: false
- destructiveHint: false
Only reads 4Claude Code: allow
marketing_get_catalogUse this when the user wants to discover the canonical marketing reporting graph, available sources, supported metrics, supported dimensions, or which connectors are live today.No findings
Why it is in this group
- The name "marketing_get_catalog" says "get": a word for reading.
Description, as the server wrote it Use this when the user wants to discover the canonical marketing reporting graph, available sources, supported metrics, supported dimensions, or which connectors are live today. Each source also reports a `passthrough` field describing whether native fields beyond the curated list are accepted (GA4 accepts any native dimension/metric; Search Console accepts any native dimension; Bing is limited to the curated fields). Do not use this for GA4 account discovery or data retrieval.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
- destructiveHint: false
marketing_get_funnelUse for ordered conversion-step analysis: GA4 ordered_steps step funnels (e.g.No findings
Why it is in this group
- The name "marketing_get_funnel" says "get": a word for reading.
Description, as the server wrote it Use for ordered conversion-step analysis: GA4 ordered_steps step funnels (e.g. session_start → add_to_cart → purchase) and cross-source holistic_bundle landing-page funnels joining GA4, Google Search Console, and Bing Webmaster. Covers funnel drop-off between steps (e.g. from landing on the site to adding to cart to purchasing), conversion paths, and acquisition-to-conversion context. Pass one date range for a single window or two date ranges for period-over-period comparison.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
- destructiveHint: false
marketing_get_reportPrimary reporting tool for a given GA4 property or site.No findings
Why it is in this group
- The name "marketing_get_report" says "get": a word for reading.
Description, as the server wrote it Primary reporting tool for a given GA4 property or site. Use for totals, trends, and breakdowns by dimension across GA4 website traffic and app analytics, Google Search Console site traffic, and Bing Webmaster — including last-30-days summaries, revenue, leads, sessions, users, engagement/time-on-page (average_session_duration, user_engagement_duration), and period-over-period comparisons. Drill deep: GA4 supports up to 9 grouped dimensions (date/hour, geo, device/browser/OS, source/medium/channel, landing_page/page_path, etc.). Defaults to all mapped connected sources merged into one standardized view, aligned on the shared grain (typically landing_page) so a page row blends GA4 sessions+engagement with Search Console/Bing clicks/impressions/CTR/position; per-source detail (e.g. full query lists) stays in sourceSections. Note GA4 has no `query` dimension and Search Console/Bing have no sessions/engagement, so those cannot share one row — query is a Search Console/Bing breakdown. Narrow with sources or sourceMode='single'. Any GA4 dimension/metric name not in the catalog is passed through to the GA4 API automatically; metricMode='source_native' forces a pure GA4-native report. Pass one date range for a single window or two date ranges for period-over-period comparison.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
- destructiveHint: false
marketing_get_sourcesLists connected and missing GA4, Google Analytics properties, property IDs, web streams, app streams, measurement IDs, Firebase app IDs, Google Search Console sites, Bing Webmaster…No findings
Why it is in this group
- The name "marketing_get_sources" says "get": a word for reading.
Description, as the server wrote it Lists connected and missing GA4, Google Analytics properties, property IDs, web streams, app streams, measurement IDs, Firebase app IDs, Google Search Console sites, Bing Webmaster sites, and current analysis surface mappings. Use this before reporting when property/site selectors are unknown.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
- destructiveHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.0.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http google-analytics-unofficial https://api.safe-mcp.com/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__google-analytics-unofficial__marketing_get_sources",
"mcp__google-analytics-unofficial__marketing_get_catalog",
"mcp__google-analytics-unofficial__marketing_get_report",
"mcp__google-analytics-unofficial__marketing_get_funnel"
],
"ask": [
"mcp__google-analytics-unofficial__marketing_manage_surface"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as google-analytics-unofficial. Review it before you use it.