Multi-tenant MCP server for Google Analytics 4 with per-user OAuth credentials. Provides tools to query GA4 data, manage properties, and run various analytics reports.
Server has 14 well-named tools with consistent verb_noun patterns (list_, get_, run_, check_, batch_run_). All tools have descriptions (avg ~80 chars, within baseline). Input schemas are present and typed for all tools. However, parameter descriptions are minimal or missing context about valid values, ranges, and dependencies. Output schemas are not documented, LLMs cannot predict response structure. Error handling is absent from visible code. No tool annotations (readOnlyHint, destructiveHint). Filter parameters accept complex nested objects but lack validation guidance. Batch tool lacks per-item error reporting.
Run multiple GA4 reports in a single batch request.
Check if dimensions and metrics are compatible for a GA4 report.
Get metadata about available dimensions and metrics for a GA4 property.
Get details about a specific GA4 property.
List all audiences for a GA4 property.
List all custom dimensions for a GA4 property.
List all custom metrics for a GA4 property.
Output schemas not documented. LLMs cannot predict response structure (fields, types, pagination). Helpers like _rows_to_dicts() exist but their output format is not declared in tool definitions.
Filter parameters (dimension_filter, metric_filter) accept complex nested objects but lack validation guidance. No description of supported filter operators (and, or, not, match, contains, regex, etc.) or examples. LLMs will guess at structure.
No error handling guidance in tool definitions. Code references ValueError and API errors but tool descriptions do not explain recovery paths (e.g., 'property_id is required. Call list_ga4_properties first'). LLMs cannot self-correct.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | 2026-07-28+ | v2 |
List all data streams for a GA4 property.
List all GA4 properties accessible to the authenticated user.
Run a GA4 cohort analysis report.
Run a GA4 funnel analysis report (alpha API).
Run a GA4 pivot report with pivoted dimensions and metrics.
Run a real-time GA4 report showing current activity.
Run a standard GA4 report with dimensions, metrics, filters, and ordering.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). All 14 tools are READ_ONLY but this is not declared in the tool definition, only in metadata. FastMCP should emit tool annotations in the schema.
batch_run_ga4_reports lacks per-item error reporting. If 1 of 10 requests fails, the tool returns a blanket error instead of partial results with per-request success/failure status. Agents cannot recover.