Skip to main content
Glama

QuerySail: Google Analytics

Server Details

Hosted, read-only Google Analytics 4 MCP: reports, period comparisons, realtime, custom fields.

Ownership verified
Status
Healthy
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
Repository
querysail/querysail-ga4
GitHub Stars
0

TDQS

Score is being calculated.

Available Tools

5 tools
compare_reportCompare Google Analytics periods
Read-onlyIdempotent
Inspect

Use this when the user asks what changed between two periods, why traffic or conversions went up or down, or which channels, sources, pages or countries gained or lost. Compares metrics for one property between a current period and the previous period (default), the same weekdays a year earlier, or custom dates, in one Google request. Returns each metric's totals with absolute and percent change and, with a dimension, the top gainers and losers ranked by change in one metric. With no dates the current period is the last 28 days ending yesterday. Filters apply to both periods. Changes are observed differences and do not identify causes. Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
moversNoGainers and losers to return each. Default 10, maximum 50.
filtersNoAll filters are combined with AND. A filter on a requested metric is numeric (equals, notEquals, greaterThan, greaterThanOrEqual, lessThan, lessThanOrEqual with a number value); any other field is a dimension filter with a string operator.
metricsNoMetric API names to compare. Default activeUsers, sessions, screenPageViews.
rank_byNoMetric to rank movers by. Must be one of metrics. Default the first metric.
end_dateNoCurrent period end: YYYY-MM-DD, 'today', 'yesterday' or 'NdaysAgo' (e.g. '28daysAgo'), in the property's time zone. Provide together with start_date.
dimensionNoOptional breakdown for top gainers and losers, e.g. 'sessionDefaultChannelGroup', 'sessionSourceMedium', 'landingPage', 'country'. Not a time dimension.
compare_toNo'previous_period' (default) is the same number of days immediately before; 'previous_year' is 52 weeks earlier, so weekdays line up; 'custom' uses compare_start_date and compare_end_date.
start_dateNoCurrent period start: YYYY-MM-DD, 'today', 'yesterday' or 'NdaysAgo' (e.g. '28daysAgo'), in the property's time zone. Provide together with end_date.
property_idYesExact property ID from list_properties, e.g. 'properties/123456789'.
connection_idNoOptional: force a specific Google connection when the property is visible to several.
compare_end_dateNoComparison period end for compare_to 'custom'.
compare_start_dateNoComparison period start for compare_to 'custom'.

Output Schema

ParametersJSON Schema
NameRequiredDescription
notesNo
unitsNo
losersNo
totalsNo
gainersNo
requestNo
coverageNo
propertyNo
freshnessNo
requestIdNo
list_fieldsList Google Analytics dimensions and metrics
Read-onlyIdempotent
Inspect

Use this to find the exact API names of dimensions and metrics a property can report on, including its custom dimensions, custom metrics and key events, before calling run_report. Filter by kind, a search term (matched against the API name, display name and category) or custom definitions only. Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNoWhich fields to list. Default 'all'.
limitNoFields to return. Default 100, maximum 300.
searchNoOptional text to match, e.g. 'channel', 'revenue' or 'page'.
custom_onlyNoOnly the property's custom definitions. Default false.
property_idYesExact property ID from list_properties, e.g. 'properties/123456789'.
connection_idNoOptional: force a specific Google connection when the property is visible to several.

Output Schema

ParametersJSON Schema
NameRequiredDescription
notesNo
fieldsNo
coverageNo
propertyNo
requestIdNo
list_propertiesList Google Analytics properties
Read-onlyIdempotent
Inspect

Use this when the user asks which Google Analytics sites or apps they can access, or to find the exact property_id for one. Returns Google Analytics 4 properties with their property ID (like 'properties/123456789'), display name and Analytics account, and which connected Google accounts can see each. The same property is listed once even if several connected Google accounts can see it. Universal Analytics properties are not included. Read-only. Does not change anything in Google Analytics.

ParametersJSON Schema
NameRequiredDescriptionDefault
cursorNoOpaque cursor from a previous result's coverage.nextCursor.
connection_idNoOptional: only list properties visible to this Google connection (connectionId from a previous result).

Output Schema

ParametersJSON Schema
NameRequiredDescription
notesNo
coverageNo
requestIdNo
propertiesNo
connectionsNo
run_realtime_reportRun a Google Analytics realtime report
Read-onlyIdempotent
Inspect

Use this when the user asks what is happening on their site or app right now: active users in the last 30 minutes, optionally by country, city, device, platform, page or screen ('unifiedScreenName') or event name. Default metric activeUsers; eventCount, screenPageViews and keyEvents are also available. Standard properties cover the last 30 minutes, GA4 360 properties 60. Realtime figures are preliminary and never cached. Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
filtersNoAll filters are combined with AND. A filter on a requested metric is numeric (equals, notEquals, greaterThan, greaterThanOrEqual, lessThan, lessThanOrEqual with a number value); any other field is a dimension filter with a string operator.
metricsNoRealtime metric API names. Default activeUsers.
order_byNo
row_limitNoRows to return. Default 20, maximum 100.
dimensionsNoRealtime dimension API names, e.g. 'country', 'city', 'deviceCategory', 'platform', 'unifiedScreenName', 'eventName', 'minutesAgo'.
minutes_agoNoHow many minutes back to cover, up to now. Default 29 (the last 30 minutes).
property_idYesExact property ID from list_properties, e.g. 'properties/123456789'.
connection_idNoOptional: force a specific Google connection when the property is visible to several.

Output Schema

ParametersJSON Schema
NameRequiredDescription
rowsNo
unitsNo
totalsNo
requestNo
coverageNo
propertyNo
freshnessNo
requestIdNo
run_reportRun a Google Analytics report
Read-onlyIdempotent
Inspect

Use this to retrieve Google Analytics 4 data for one property: users, sessions, views, engagement, events, key events, revenue and any other metric, optionally broken down by dimensions such as date, channel, source/medium, landing page, page path, country, device or event name, and narrowed with filters (for example sessions from Organic Search to pages starting with '/blog/'). With no metrics it reports activeUsers, sessions and screenPageViews; with no dates it covers the last 28 days ending yesterday. Dates are in the property's time zone. Returns totals and up to 100 rows per call (default 20); page through with the returned cursor. Rates such as engagementRate are fractions. Google may withhold small values (thresholding) or sample large reports; the result says so. Figures are observed values and do not identify causes. Use list_fields to find custom dimension and metric names. Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
cursorNoOpaque cursor from coverage.nextCursor of the previous call with the same arguments.
filtersNoAll filters are combined with AND. A filter on a requested metric is numeric (equals, notEquals, greaterThan, greaterThanOrEqual, lessThan, lessThanOrEqual with a number value); any other field is a dimension filter with a string operator.
metricsNoMetric API names, e.g. 'activeUsers', 'newUsers', 'sessions', 'engagedSessions', 'engagementRate', 'screenPageViews', 'eventCount', 'keyEvents', 'totalRevenue'. Default activeUsers, sessions, screenPageViews.
end_dateNoInclusive end date: YYYY-MM-DD, 'today', 'yesterday' or 'NdaysAgo' (e.g. '28daysAgo'), in the property's time zone. Provide together with start_date.
order_byNoSort order. Default: chronological when grouping by a time dimension such as date, otherwise the first metric, highest first.
row_limitNoRows per call. Default 20, maximum 100.
dimensionsNoDimension API names to group by, e.g. 'date', 'sessionDefaultChannelGroup', 'sessionSource', 'pagePath', 'landingPage', 'country', 'deviceCategory', 'eventName', or custom ones such as 'customEvent:plan'. Omit for totals only.
start_dateNoInclusive start date: YYYY-MM-DD, 'today', 'yesterday' or 'NdaysAgo' (e.g. '28daysAgo'), in the property's time zone. Provide together with end_date.
property_idYesExact property ID from list_properties, e.g. 'properties/123456789'.
connection_idNoOptional: force a specific Google connection when the property is visible to several.
include_totalsNoAlso return totals across all rows. Default true.

Output Schema

ParametersJSON Schema
NameRequiredDescription
rowsNo
unitsNo
totalsNo
requestNo
coverageNo
propertyNo
freshnessNo
requestIdNo

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updates
    • First observedcompare_report
    • First observedlist_fields
    • First observedlist_properties
    • First observedrun_realtime_report
    • First observedrun_report

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    B
    maintenance
    Enables read-only Google Analytics 4 reporting through MCP, including daily summaries, top pages, acquisition, events, realtime activity, metadata, and custom reports with CSV/JSON output.
    8
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Read-only access to Google Analytics 4 reporting data, including traffic overview, top pages, traffic sources, and conversion events, supporting custom report queries via MCP.
    -
  • A
    license
    A
    quality
    A
    maintenance
    Enables read-only access to Google Analytics 4 data through seventeen tools covering reports, realtime data, funnels, pivots, metadata, and admin lists. It runs locally with service account credentials and lets users query properties via standard MCP clients.
    17
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    A read-only MCP server exposing Google Analytics 4 and AdSense APIs (reports, metadata, admin reads) via Cloudflare Workers with OAuth authentication.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.