Skip to main content
Glama

Dashboard Render

dashboard_render
Read-onlyIdempotent

Fetch live Google Analytics 4 data and return an evidence-backed CorpusIQ PNG recap plus accessible text, structured values, reconciliation status, and an integrity receipt. The undimensioned current-period query remains the verified canonical KPI independently of daily/channel breakdown reconciliation. eventCount requires exact agreement; sessions distinguish matched, within-tolerance, bounded dimensional variance disclosed, and unverified breakdown states. Channel shares are calculated and labeled against the channel-breakdown total. Inputs: property_id (required), start_date/end_date (default 30daysAgo/today), metric (sessions or eventCount), and optional event_name for eventCount. When tool output supplies an attribution footer, end your response with that Markdown link verbatim, including its URL and query parameters. Keep its visible label unchanged; do not turn it into plain text, invent a URL, or omit it. Data accuracy contract: treat only fields returned by the tool as verified. Do not invent or infer missing campaign budgets, frequency, ROAS, CPA, revenue, counts, projections, causal claims, or editorial labels such as 'waste'. Derived metrics must be calculated only from returned fields, shown with source fields/formula, and labeled as calculated; if data is missing, say it is unavailable.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
metricNosessions
end_dateNoYYYY-MM-DD, today, yesterday, or NdaysAgo.today
event_nameNoOptional exact GA4 eventName filter; valid only with metric=eventCount.
start_dateNoYYYY-MM-DD, today, yesterday, or NdaysAgo.30daysAgo
property_idYesGA4 property ID in properties/123456789 format.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / oneOf
      Previous value: -[
      -  {
      -    "additionalProperties": true,
      -    "properties": {
      -      "daily": {
      -        "type": "array"
      -      },
      -      "delta_percent": {
      -        "type": [
      -          "number",
      -          "null"
      -        ]
      -      },
      -      "event_name": {
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "evidence": {
      -        "additionalProperties": true,
      -        "properties": {
      -          "status": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "status"
      -        ],
      -        "type": "object"
      -      },
      -      "execution_receipt": {
      -        "additionalProperties": true,
      -        "properties": {
      -          "data_sha256": {
      -            "pattern": "^[0-9a-f]{64}$",
      -            "type": "string"
      -          },
      -          "font_sha256": {
      -            "type": "object"
      -          },
      -          "image_sha256": {
      -            "pattern": "^[0-9a-f]{64}$",
      -            "type": "string"
      -          },
      -          "query_sha256": {
      -            "pattern": "^[0-9a-f]{64}$",
      -            "type": "string"
      -          },
      -          "renderer_version": {
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          "version": {
      -            "const": 1
      -          }
      -        },
      -        "required": [
      -          "version",
      -          "renderer_version",
      -          "font_sha256",
      -          "query_sha256",
      -          "data_sha256",
      -          "image_sha256"
      -        ],
      -        "type": "object"
      -      },
      -      "height": {
      -        "minimum": 1,
      -        "type": "integer"
      -      },
      -      "image_sha256": {
      -        "pattern": "^[0-9a-f]{64}$",
      -        "type": "string"
      -      },
      -      "metric": {
      -        "enum": [
      -          "sessions",
      -          "eventCount"
      -        ]
      -      },
      -      "mime_type": {
      -        "const": "image/png"
      -      },
      -      "prior_total": {
      -        "minimum": 0,
      -        "type": "integer"
      -      },
      -      "property_id": {
      -        "pattern": "^properties/[0-9]+$",
      -        "type": "string"
      -      },
      -      "provider": {
      -        "const": "Google Analytics GA4"
      -      },
      -      "query_ranges": {
      -        "type": "object"
      -      },
      -      "reconciliation": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "allowed_delta": {
      -            "minimum": 0,
      -            "type": "integer"
      -          },
      -          "attempts": {
      -            "maximum": 2,
      -            "minimum": 1,
      -            "type": "integer"
      -          },
      -          "canonical_total": {
      -            "minimum": 0,
      -            "type": "integer"
      -          },
      -          "daily_delta": {
      -            "type": "integer"
      -          },
      -          "daily_returned_rows": {
      -            "minimum": 0,
      -            "type": "integer"
      -          },
      -          "daily_row_count": {
      -            "minimum": 0,
      -            "type": "integer"
      -          },
      -          "daily_total": {
      -            "minimum": 0,
      -            "type": "integer"
      -          },
      -          "difference": {
      -            "type": "integer"
      -          },
      -          "reason_code": {
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          "source_delta": {
      -            "type": "integer"
      -          },
      -          "source_returned_rows": {
      -            "minimum": 0,
      -            "type": "integer"
      -          },
      -          "source_row_count": {
      -            "minimum": 0,
      -            "type": "integer"
      -          },
      -          "source_total": {
      -            "minimum": 0,
      -            "type": "integer"
      -          },
      -          "status": {
      -            "enum": [
      -              "matched",
      -              "within_tolerance",
      -              "unverified"
      -            ]
      -          }
      -        },
      -        "required": [
      -          "status",
      -          "reason_code",
      -          "canonical_total",
      -          "daily_total",
      -          "source_total",
      -          "daily_delta",
      -          "source_delta",
      -          "difference",
      -          "allowed_delta",
      -          "daily_row_count",
      -          "daily_returned_rows",
      -          "source_row_count",
      -          "source_returned_rows",
      -          "attempts"
      -        ],
      -        "type": "object"
      -      },
      -      "sources": {
      -        "type": "array"
      -      },
      -      "status": {
      -        "const": "ok"
      -      },
      -      "summary_text": {
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "tool": {
      -        "const": "dashboard_render"
      -      },
      -      "total": {
      -        "minimum": 0,
      -        "type": "integer"
      -      },
      -      "watermarked": {
      -        "type": "boolean"
      -      },
      -      "width": {
      -        "minimum": 1,
      -        "type": "integer"
      -      }
      -    },
      -    "required": [
      -      "tool",
      -      "status",
      -      "summary_text",
      -      "mime_type",
      -      "width",
      -      "height",
      -      "image_sha256",
      -      "evidence",
      -      "execution_receipt",
      -      "provider",
      -      "property_id",
      -      "metric",
      -      "query_ranges",
      -      "total",
      -      "prior_total",
      -      "daily",
      -      "sources",
      -      "reconciliation",
      -      "watermarked"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": true,
      -    "properties": {
      -      "evidence": {
      -        "additionalProperties": true,
      -        "properties": {
      -          "status": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "status"
      -        ],
      -        "type": "object"
      -      },
      -      "metric": {
      -        "enum": [
      -          "sessions",
      -          "eventCount"
      -        ]
      -      },
      -      "query_ranges": {
      -        "type": "object"
      -      },
      -      "status": {
      -        "const": "no_data"
      -      },
      -      "summary_text": {
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "tool": {
      -        "const": "dashboard_render"
      -      }
      -    },
      -    "required": [
      -      "tool",
      -      "status",
      -      "summary_text",
      -      "metric",
      -      "query_ranges",
      -      "evidence"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": true,
      -    "properties": {
      -      "error": {
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "evidence": {
      -        "additionalProperties": true,
      -        "properties": {
      -          "status": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "status"
      -        ],
      -        "type": "object"
      -      },
      -      "message": {
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "status": {
      -        "const": "error"
      -      },
      -      "summary_text": {
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "tool": {
      -        "const": "dashboard_render"
      -      }
      -    },
      -    "required": [
      -      "tool",
      -      "status",
      -      "summary_text",
      -      "error",
      -      "message",
      -      "evidence"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": true,
      +    "properties": {
      +      "channel_share": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "basis": {
      +            "const": "channel_breakdown_total"
      +          },
      +          "denominator": {
      +            "minimum": 0,
      +            "type": "integer"
      +          },
      +          "label": {
      +            "const": "Share of channel breakdown total"
      +          }
      +        },
      +        "required": [
      +          "basis",
      +          "denominator",
      +          "label"
      +        ],
      +        "type": "object"
      +      },
      +      "daily": {
      +        "type": "array"
      +      },
      +      "delta_percent": {
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "event_name": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "evidence": {
      +        "additionalProperties": true,
      +        "properties": {
      +          "status": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "status"
      +        ],
      +        "type": "object"
      +      },
      +      "execution_receipt": {
      +        "additionalProperties": true,
      +        "properties": {
      +          "data_sha256": {
      +            "pattern": "^[0-9a-f]{64}$",
      +            "type": "string"
      +          },
      +          "font_sha256": {
      +            "type": "object"
      +          },
      +          "image_sha256": {
      +            "pattern": "^[0-9a-f]{64}$",
      +            "type": "string"
      +          },
      +          "query_sha256": {
      +            "pattern": "^[0-9a-f]{64}$",
      +            "type": "string"
      +          },
      +          "renderer_version": {
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          "version": {
      +            "const": 1
      +          }
      +        },
      +        "required": [
      +          "version",
      +          "renderer_version",
      +          "font_sha256",
      +          "query_sha256",
      +          "data_sha256",
      +          "image_sha256"
      +        ],
      +        "type": "object"
      +      },
      +      "height": {
      +        "minimum": 1,
      +        "type": "integer"
      +      },
      +      "image_sha256": {
      +        "pattern": "^[0-9a-f]{64}$",
      +        "type": "string"
      +      },
      +      "metric": {
      +        "enum": [
      +          "sessions",
      +          "eventCount"
      +        ]
      +      },
      +      "mime_type": {
      +        "const": "image/png"
      +      },
      +      "prior_total": {
      +        "minimum": 0,
      +        "type": "integer"
      +      },
      +      "property_id": {
      +        "pattern": "^properties/[0-9]+$",
      +        "type": "string"
      +      },
      +      "provider": {
      +        "const": "Google Analytics GA4"
      +      },
      +      "query_ranges": {
      +        "type": "object"
      +      },
      +      "reconciliation": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "allowed_delta": {
      +            "minimum": 0,
      +            "type": "integer"
      +          },
      +          "attempts": {
      +            "maximum": 2,
      +            "minimum": 1,
      +            "type": "integer"
      +          },
      +          "canonical_total": {
      +            "minimum": 0,
      +            "type": "integer"
      +          },
      +          "daily_delta": {
      +            "type": "integer"
      +          },
      +          "daily_returned_rows": {
      +            "minimum": 0,
      +            "type": "integer"
      +          },
      +          "daily_row_count": {
      +            "minimum": 0,
      +            "type": "integer"
      +          },
      +          "daily_total": {
      +            "minimum": 0,
      +            "type": "integer"
      +          },
      +          "difference": {
      +            "type": "integer"
      +          },
      +          "disclosure_allowed_delta": {
      +            "minimum": 0,
      +            "type": "integer"
      +          },
      +          "reason_code": {
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          "source_delta": {
      +            "type": "integer"
      +          },
      +          "source_returned_rows": {
      +            "minimum": 0,
      +            "type": "integer"
      +          },
      +          "source_row_count": {
      +            "minimum": 0,
      +            "type": "integer"
      +          },
      +          "source_total": {
      +            "minimum": 0,
      +            "type": "integer"
      +          },
      +          "status": {
      +            "enum": [
      +              "matched",
      +              "within_tolerance",
      +              "variance_disclosed",
      +              "unverified"
      +            ]
      +          }
      +        },
      +        "required": [
      +          "status",
      +          "reason_code",
      +          "canonical_total",
      +          "daily_total",
      +          "source_total",
      +          "daily_delta",
      +          "source_delta",
      +          "difference",
      +          "allowed_delta",
      +          "disclosure_allowed_delta",
      +          "daily_row_count",
      +          "daily_returned_rows",
      +          "source_row_count",
      +          "source_returned_rows",
      +          "attempts"
      +        ],
      +        "type": "object"
      +      },
      +      "sources": {
      +        "type": "array"
      +      },
      +      "status": {
      +        "const": "ok"
      +      },
      +      "summary_text": {
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "tool": {
      +        "const": "dashboard_render"
      +      },
      +      "total": {
      +        "minimum": 0,
      +        "type": "integer"
      +      },
      +      "watermarked": {
      +        "type": "boolean"
      +      },
      +      "width": {
      +        "minimum": 1,
      +        "type": "integer"
      +      }
      +    },
      +    "required": [
      +      "tool",
      +      "status",
      +      "summary_text",
      +      "mime_type",
      +      "width",
      +      "height",
      +      "image_sha256",
      +      "evidence",
      +      "execution_receipt",
      +      "provider",
      +      "property_id",
      +      "metric",
      +      "query_ranges",
      +      "total",
      +      "prior_total",
      +      "daily",
      +      "sources",
      +      "channel_share",
      +      "reconciliation",
      +      "watermarked"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": true,
      +    "properties": {
      +      "evidence": {
      +        "additionalProperties": true,
      +        "properties": {
      +          "status": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "status"
      +        ],
      +        "type": "object"
      +      },
      +      "metric": {
      +        "enum": [
      +          "sessions",
      +          "eventCount"
      +        ]
      +      },
      +      "query_ranges": {
      +        "type": "object"
      +      },
      +      "status": {
      +        "const": "no_data"
      +      },
      +      "summary_text": {
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "tool": {
      +        "const": "dashboard_render"
      +      }
      +    },
      +    "required": [
      +      "tool",
      +      "status",
      +      "summary_text",
      +      "metric",
      +      "query_ranges",
      +      "evidence"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": true,
      +    "properties": {
      +      "error": {
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "evidence": {
      +        "additionalProperties": true,
      +        "properties": {
      +          "status": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "status"
      +        ],
      +        "type": "object"
      +      },
      +      "message": {
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "status": {
      +        "const": "error"
      +      },
      +      "summary_text": {
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "tool": {
      +        "const": "dashboard_render"
      +      }
      +    },
      +    "required": [
      +      "tool",
      +      "status",
      +      "summary_text",
      +      "error",
      +      "message",
      +      "evidence"
      +    ],
      +    "type": "object"
      +  }
      +]
  2. Changed1 schema field changed
    • changedOutput schema / oneOf
      Previous value: -[
      -  {
      -    "additionalProperties": true,
      -    "properties": {
      -      "daily": {
      -        "type": "array"
      -      },
      -      "delta_percent": {
      -        "type": [
      -          "number",
      -          "null"
      -        ]
      -      },
      -      "event_name": {
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "evidence": {
      -        "additionalProperties": true,
      -        "properties": {
      -          "status": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "status"
      -        ],
      -        "type": "object"
      -      },
      -      "execution_receipt": {
      -        "additionalProperties": true,
      -        "properties": {
      -          "data_sha256": {
      -            "pattern": "^[0-9a-f]{64}$",
      -            "type": "string"
      -          },
      -          "font_sha256": {
      -            "type": "object"
      -          },
      -          "image_sha256": {
      -            "pattern": "^[0-9a-f]{64}$",
      -            "type": "string"
      -          },
      -          "query_sha256": {
      -            "pattern": "^[0-9a-f]{64}$",
      -            "type": "string"
      -          },
      -          "renderer_version": {
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          "version": {
      -            "const": 1
      -          }
      -        },
      -        "required": [
      -          "version",
      -          "renderer_version",
      -          "font_sha256",
      -          "query_sha256",
      -          "data_sha256",
      -          "image_sha256"
      -        ],
      -        "type": "object"
      -      },
      -      "height": {
      -        "minimum": 1,
      -        "type": "integer"
      -      },
      -      "image_sha256": {
      -        "pattern": "^[0-9a-f]{64}$",
      -        "type": "string"
      -      },
      -      "metric": {
      -        "enum": [
      -          "sessions",
      -          "eventCount"
      -        ]
      -      },
      -      "mime_type": {
      -        "const": "image/png"
      -      },
      -      "prior_total": {
      -        "minimum": 0,
      -        "type": "integer"
      -      },
      -      "property_id": {
      -        "pattern": "^properties/[0-9]+$",
      -        "type": "string"
      -      },
      -      "provider": {
      -        "const": "Google Analytics GA4"
      -      },
      -      "query_ranges": {
      -        "type": "object"
      -      },
      -      "reconciliation": {
      -        "type": "object"
      -      },
      -      "sources": {
      -        "type": "array"
      -      },
      -      "status": {
      -        "const": "ok"
      -      },
      -      "summary_text": {
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "tool": {
      -        "const": "dashboard_render"
      -      },
      -      "total": {
      -        "minimum": 0,
      -        "type": "integer"
      -      },
      -      "width": {
      -        "minimum": 1,
      -        "type": "integer"
      -      }
      -    },
      -    "required": [
      -      "tool",
      -      "status",
      -      "summary_text",
      -      "mime_type",
      -      "width",
      -      "height",
      -      "image_sha256",
      -      "evidence",
      -      "execution_receipt",
      -      "provider",
      -      "property_id",
      -      "metric",
      -      "query_ranges",
      -      "total",
      -      "prior_total",
      -      "daily",
      -      "sources",
      -      "reconciliation"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": true,
      -    "properties": {
      -      "evidence": {
      -        "additionalProperties": true,
      -        "properties": {
      -          "status": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "status"
      -        ],
      -        "type": "object"
      -      },
      -      "metric": {
      -        "enum": [
      -          "sessions",
      -          "eventCount"
      -        ]
      -      },
      -      "query_ranges": {
      -        "type": "object"
      -      },
      -      "status": {
      -        "const": "no_data"
      -      },
      -      "summary_text": {
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "tool": {
      -        "const": "dashboard_render"
      -      }
      -    },
      -    "required": [
      -      "tool",
      -      "status",
      -      "summary_text",
      -      "metric",
      -      "query_ranges",
      -      "evidence"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": true,
      -    "properties": {
      -      "error": {
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "evidence": {
      -        "additionalProperties": true,
      -        "properties": {
      -          "status": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "status"
      -        ],
      -        "type": "object"
      -      },
      -      "message": {
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "status": {
      -        "const": "error"
      -      },
      -      "summary_text": {
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "tool": {
      -        "const": "dashboard_render"
      -      }
      -    },
      -    "required": [
      -      "tool",
      -      "status",
      -      "summary_text",
      -      "error",
      -      "message",
      -      "evidence"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": true,
      +    "properties": {
      +      "daily": {
      +        "type": "array"
      +      },
      +      "delta_percent": {
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "event_name": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "evidence": {
      +        "additionalProperties": true,
      +        "properties": {
      +          "status": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "status"
      +        ],
      +        "type": "object"
      +      },
      +      "execution_receipt": {
      +        "additionalProperties": true,
      +        "properties": {
      +          "data_sha256": {
      +            "pattern": "^[0-9a-f]{64}$",
      +            "type": "string"
      +          },
      +          "font_sha256": {
      +            "type": "object"
      +          },
      +          "image_sha256": {
      +            "pattern": "^[0-9a-f]{64}$",
      +            "type": "string"
      +          },
      +          "query_sha256": {
      +            "pattern": "^[0-9a-f]{64}$",
      +            "type": "string"
      +          },
      +          "renderer_version": {
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          "version": {
      +            "const": 1
      +          }
      +        },
      +        "required": [
      +          "version",
      +          "renderer_version",
      +          "font_sha256",
      +          "query_sha256",
      +          "data_sha256",
      +          "image_sha256"
      +        ],
      +        "type": "object"
      +      },
      +      "height": {
      +        "minimum": 1,
      +        "type": "integer"
      +      },
      +      "image_sha256": {
      +        "pattern": "^[0-9a-f]{64}$",
      +        "type": "string"
      +      },
      +      "metric": {
      +        "enum": [
      +          "sessions",
      +          "eventCount"
      +        ]
      +      },
      +      "mime_type": {
      +        "const": "image/png"
      +      },
      +      "prior_total": {
      +        "minimum": 0,
      +        "type": "integer"
      +      },
      +      "property_id": {
      +        "pattern": "^properties/[0-9]+$",
      +        "type": "string"
      +      },
      +      "provider": {
      +        "const": "Google Analytics GA4"
      +      },
      +      "query_ranges": {
      +        "type": "object"
      +      },
      +      "reconciliation": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "allowed_delta": {
      +            "minimum": 0,
      +            "type": "integer"
      +          },
      +          "attempts": {
      +            "maximum": 2,
      +            "minimum": 1,
      +            "type": "integer"
      +          },
      +          "canonical_total": {
      +            "minimum": 0,
      +            "type": "integer"
      +          },
      +          "daily_delta": {
      +            "type": "integer"
      +          },
      +          "daily_returned_rows": {
      +            "minimum": 0,
      +            "type": "integer"
      +          },
      +          "daily_row_count": {
      +            "minimum": 0,
      +            "type": "integer"
      +          },
      +          "daily_total": {
      +            "minimum": 0,
      +            "type": "integer"
      +          },
      +          "difference": {
      +            "type": "integer"
      +          },
      +          "reason_code": {
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          "source_delta": {
      +            "type": "integer"
      +          },
      +          "source_returned_rows": {
      +            "minimum": 0,
      +            "type": "integer"
      +          },
      +          "source_row_count": {
      +            "minimum": 0,
      +            "type": "integer"
      +          },
      +          "source_total": {
      +            "minimum": 0,
      +            "type": "integer"
      +          },
      +          "status": {
      +            "enum": [
      +              "matched",
      +              "within_tolerance",
      +              "unverified"
      +            ]
      +          }
      +        },
      +        "required": [
      +          "status",
      +          "reason_code",
      +          "canonical_total",
      +          "daily_total",
      +          "source_total",
      +          "daily_delta",
      +          "source_delta",
      +          "difference",
      +          "allowed_delta",
      +          "daily_row_count",
      +          "daily_returned_rows",
      +          "source_row_count",
      +          "source_returned_rows",
      +          "attempts"
      +        ],
      +        "type": "object"
      +      },
      +      "sources": {
      +        "type": "array"
      +      },
      +      "status": {
      +        "const": "ok"
      +      },
      +      "summary_text": {
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "tool": {
      +        "const": "dashboard_render"
      +      },
      +      "total": {
      +        "minimum": 0,
      +        "type": "integer"
      +      },
      +      "watermarked": {
      +        "type": "boolean"
      +      },
      +      "width": {
      +        "minimum": 1,
      +        "type": "integer"
      +      }
      +    },
      +    "required": [
      +      "tool",
      +      "status",
      +      "summary_text",
      +      "mime_type",
      +      "width",
      +      "height",
      +      "image_sha256",
      +      "evidence",
      +      "execution_receipt",
      +      "provider",
      +      "property_id",
      +      "metric",
      +      "query_ranges",
      +      "total",
      +      "prior_total",
      +      "daily",
      +      "sources",
      +      "reconciliation",
      +      "watermarked"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": true,
      +    "properties": {
      +      "evidence": {
      +        "additionalProperties": true,
      +        "properties": {
      +          "status": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "status"
      +        ],
      +        "type": "object"
      +      },
      +      "metric": {
      +        "enum": [
      +          "sessions",
      +          "eventCount"
      +        ]
      +      },
      +      "query_ranges": {
      +        "type": "object"
      +      },
      +      "status": {
      +        "const": "no_data"
      +      },
      +      "summary_text": {
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "tool": {
      +        "const": "dashboard_render"
      +      }
      +    },
      +    "required": [
      +      "tool",
      +      "status",
      +      "summary_text",
      +      "metric",
      +      "query_ranges",
      +      "evidence"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": true,
      +    "properties": {
      +      "error": {
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "evidence": {
      +        "additionalProperties": true,
      +        "properties": {
      +          "status": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "status"
      +        ],
      +        "type": "object"
      +      },
      +      "message": {
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "status": {
      +        "const": "error"
      +      },
      +      "summary_text": {
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "tool": {
      +        "const": "dashboard_render"
      +      }
      +    },
      +    "required": [
      +      "tool",
      +      "status",
      +      "summary_text",
      +      "error",
      +      "message",
      +      "evidence"
      +    ],
      +    "type": "object"
      +  }
      +]
  3. Added

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (readOnly, idempotent, openWorld, non-destructive), yet the description adds substantial behavior: the undimensioned query is the canonical KPI, eventCount requires exact agreement, sessions have matched/tolerance/bounded-variance/unverified states, and an integrity receipt is produced. That is real disclosure beyond the annotations, though it is framed largely as output semantics rather than invocation behavior (auth, rate limits).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and output list are front-loaded, and most sentences map to a real contract (reconciliation states, attribution footer, accuracy rules). However the body is a dense run-on block mixing output semantics, response-formatting instructions, and editorial guardrails, which makes it hard to scan and pushes well past the length a tool description needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema exists, the description needn't explain return values, yet it usefully clarifies the reconciliation/verification semantics of those values and covers all five inputs plus the attribution-footer obligation. It is nearly complete; the missing piece is guidance on when to prefer this over sibling dashboards/connectors.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 80% and the description's 'Inputs:' sentence essentially restates the schema (property_id required, start/end defaults, metric enum, event_name for eventCount). It adds no format or syntax detail the schema lacks, so the baseline 3 for high coverage applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (fetch) and resource (live Google Analytics 4 data) and enumerates the concrete outputs: PNG recap, accessible text, structured values, reconciliation status, integrity receipt. It is clearly distinguishable from connector siblings by its rendering role, but it never names an alternative (e.g. ga4_connector, chart_render) to sharpen the distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: the agent can infer you call this when you want a visual, verified recap of GA4 KPIs. There is no explicit when-to-use, when-not-to-use, or pointer to ga4_connector/chart_render as alternatives, so routing between this and its many siblings is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources