Clamp Analytics
Server Details
Privacy-first web analytics, exposed to your AI agent as a first-class data source. The agent sees your traffic, referrers, geos, devices, live visitors, and custom events, and can reason across them. Ask what changed since the last deploy, why a campaign underperformed, which segment of signups actually activated, or have it build a conversion funnel and alert you when bounce rate spikes.
- Status
- Unhealthy
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP
- URL
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
10 tool updates
- Changed
events.list10 fields changed- added
Input schema / properties / browserAdded value: +{ + "description": "Browser family (e.g. \"Chrome\", \"Safari\", \"Firefox\"). Use traffic.breakdown(dimension=\"browser\") to discover the exact stored values.", + "type": "string" +} - added
Input schema / properties / browser_versionAdded value: +{ + "description": "Browser version string (e.g. \"120.0\"). Case-sensitive.", + "type": "string" +} - added
Input schema / properties / cityAdded value: +{ + "description": "City name (e.g. \"San Francisco\", \"London\"). Case-sensitive; must match the stored value. Use traffic.breakdown(dimension=\"city\") to discover values.", + "type": "string" +} - added
Input schema / properties / compareAdded value: +{ + "description": "When true (only meaningful on the unfiltered listing — no `name`, no `group_by`), each row also carries `prev_count` and `prev_visitors` from the equal-length previous period. Events absent now but present before appear with count=0 (dead-event signal). Defaults to false.", + "type": "boolean" +} - added
Input schema / properties / osAdded value: +{ + "description": "Operating system family (e.g. \"macOS\", \"iOS\", \"Windows\", \"Android\"). Use traffic.breakdown(dimension=\"os\") to discover stored values.", + "type": "string" +} - added
Input schema / properties / os_versionAdded value: +{ + "description": "OS version string (e.g. \"14.2\"). Case-sensitive.", + "type": "string" +} - added
Input schema / properties / regionAdded value: +{ + "description": "Administrative region inside a country (e.g. \"California\", \"Bavaria\"). Case-sensitive; must match the stored region exactly. Use traffic.breakdown(dimension=\"region\") to discover values.", + "type": "string" +} - added
Output schema / properties / events / items / properties / prev_countAdded value: +{ + "type": "number" +} - added
Output schema / properties / events / items / properties / prev_visitorsAdded value: +{ + "type": "number" +} - added
Output schema / properties / events / items / properties / visitorsAdded value: +{ + "type": "number" +}
- Changed
events.observed_schema1 field changed- changed
Input schema / properties / include_pageviews / descriptionPrevious value: -"Include pageview and pageview_end in the output. Defaults to false."New value: +"Include SDK-internal events (pageview, pageview_end, web_vital, section_viewed, $error) in the output. Defaults to false."
- Changed
funnels.list6 fields changed- added
Input schema / properties / browserAdded value: +{ + "description": "Browser family (e.g. \"Chrome\", \"Safari\", \"Firefox\"). Use traffic.breakdown(dimension=\"browser\") to discover the exact stored values.", + "type": "string" +} - added
Input schema / properties / browser_versionAdded value: +{ + "description": "Browser version string (e.g. \"120.0\"). Case-sensitive.", + "type": "string" +} - added
Input schema / properties / cityAdded value: +{ + "description": "City name (e.g. \"San Francisco\", \"London\"). Case-sensitive; must match the stored value. Use traffic.breakdown(dimension=\"city\") to discover values.", + "type": "string" +} - added
Input schema / properties / osAdded value: +{ + "description": "Operating system family (e.g. \"macOS\", \"iOS\", \"Windows\", \"Android\"). Use traffic.breakdown(dimension=\"os\") to discover stored values.", + "type": "string" +} - added
Input schema / properties / os_versionAdded value: +{ + "description": "OS version string (e.g. \"14.2\"). Case-sensitive.", + "type": "string" +} - added
Input schema / properties / regionAdded value: +{ + "description": "Administrative region inside a country (e.g. \"California\", \"Bavaria\"). Case-sensitive; must match the stored region exactly. Use traffic.breakdown(dimension=\"region\") to discover values.", + "type": "string" +}
- Changed
pages.engagement6 fields changed- added
Input schema / properties / browserAdded value: +{ + "description": "Browser family (e.g. \"Chrome\", \"Safari\", \"Firefox\"). Use traffic.breakdown(dimension=\"browser\") to discover the exact stored values.", + "type": "string" +} - added
Input schema / properties / browser_versionAdded value: +{ + "description": "Browser version string (e.g. \"120.0\"). Case-sensitive.", + "type": "string" +} - added
Input schema / properties / cityAdded value: +{ + "description": "City name (e.g. \"San Francisco\", \"London\"). Case-sensitive; must match the stored value. Use traffic.breakdown(dimension=\"city\") to discover values.", + "type": "string" +} - added
Input schema / properties / osAdded value: +{ + "description": "Operating system family (e.g. \"macOS\", \"iOS\", \"Windows\", \"Android\"). Use traffic.breakdown(dimension=\"os\") to discover stored values.", + "type": "string" +} - added
Input schema / properties / os_versionAdded value: +{ + "description": "OS version string (e.g. \"14.2\"). Case-sensitive.", + "type": "string" +} - added
Input schema / properties / regionAdded value: +{ + "description": "Administrative region inside a country (e.g. \"California\", \"Bavaria\"). Case-sensitive; must match the stored region exactly. Use traffic.breakdown(dimension=\"region\") to discover values.", + "type": "string" +}
- Changed
revenue.sum6 fields changed- added
Input schema / properties / browserAdded value: +{ + "description": "Browser family (e.g. \"Chrome\", \"Safari\", \"Firefox\"). Use traffic.breakdown(dimension=\"browser\") to discover the exact stored values.", + "type": "string" +} - added
Input schema / properties / browser_versionAdded value: +{ + "description": "Browser version string (e.g. \"120.0\"). Case-sensitive.", + "type": "string" +} - added
Input schema / properties / cityAdded value: +{ + "description": "City name (e.g. \"San Francisco\", \"London\"). Case-sensitive; must match the stored value. Use traffic.breakdown(dimension=\"city\") to discover values.", + "type": "string" +} - added
Input schema / properties / osAdded value: +{ + "description": "Operating system family (e.g. \"macOS\", \"iOS\", \"Windows\", \"Android\"). Use traffic.breakdown(dimension=\"os\") to discover stored values.", + "type": "string" +} - added
Input schema / properties / os_versionAdded value: +{ + "description": "OS version string (e.g. \"14.2\"). Case-sensitive.", + "type": "string" +} - added
Input schema / properties / regionAdded value: +{ + "description": "Administrative region inside a country (e.g. \"California\", \"Bavaria\"). Case-sensitive; must match the stored region exactly. Use traffic.breakdown(dimension=\"region\") to discover values.", + "type": "string" +}
- Changed
sessions.paths6 fields changed- added
Input schema / properties / browserAdded value: +{ + "description": "Browser family (e.g. \"Chrome\", \"Safari\", \"Firefox\"). Use traffic.breakdown(dimension=\"browser\") to discover the exact stored values.", + "type": "string" +} - added
Input schema / properties / browser_versionAdded value: +{ + "description": "Browser version string (e.g. \"120.0\"). Case-sensitive.", + "type": "string" +} - added
Input schema / properties / cityAdded value: +{ + "description": "City name (e.g. \"San Francisco\", \"London\"). Case-sensitive; must match the stored value. Use traffic.breakdown(dimension=\"city\") to discover values.", + "type": "string" +} - added
Input schema / properties / osAdded value: +{ + "description": "Operating system family (e.g. \"macOS\", \"iOS\", \"Windows\", \"Android\"). Use traffic.breakdown(dimension=\"os\") to discover stored values.", + "type": "string" +} - added
Input schema / properties / os_versionAdded value: +{ + "description": "OS version string (e.g. \"14.2\"). Case-sensitive.", + "type": "string" +} - added
Input schema / properties / regionAdded value: +{ + "description": "Administrative region inside a country (e.g. \"California\", \"Bavaria\"). Case-sensitive; must match the stored region exactly. Use traffic.breakdown(dimension=\"region\") to discover values.", + "type": "string" +}
- Changed
traffic.breakdown6 fields changed- added
Input schema / properties / browserAdded value: +{ + "description": "Browser family (e.g. \"Chrome\", \"Safari\", \"Firefox\"). Use traffic.breakdown(dimension=\"browser\") to discover the exact stored values.", + "type": "string" +} - added
Input schema / properties / browser_versionAdded value: +{ + "description": "Browser version string (e.g. \"120.0\"). Case-sensitive.", + "type": "string" +} - added
Input schema / properties / cityAdded value: +{ + "description": "City name (e.g. \"San Francisco\", \"London\"). Case-sensitive; must match the stored value. Use traffic.breakdown(dimension=\"city\") to discover values.", + "type": "string" +} - added
Input schema / properties / osAdded value: +{ + "description": "Operating system family (e.g. \"macOS\", \"iOS\", \"Windows\", \"Android\"). Use traffic.breakdown(dimension=\"os\") to discover stored values.", + "type": "string" +} - added
Input schema / properties / os_versionAdded value: +{ + "description": "OS version string (e.g. \"14.2\"). Case-sensitive.", + "type": "string" +} - added
Input schema / properties / regionAdded value: +{ + "description": "Administrative region inside a country (e.g. \"California\", \"Bavaria\"). Case-sensitive; must match the stored region exactly. Use traffic.breakdown(dimension=\"region\") to discover values.", + "type": "string" +}
- Changed
traffic.compare6 fields changed- added
Input schema / properties / browserAdded value: +{ + "description": "Browser family (e.g. \"Chrome\", \"Safari\", \"Firefox\"). Use traffic.breakdown(dimension=\"browser\") to discover the exact stored values.", + "type": "string" +} - added
Input schema / properties / browser_versionAdded value: +{ + "description": "Browser version string (e.g. \"120.0\"). Case-sensitive.", + "type": "string" +} - added
Input schema / properties / cityAdded value: +{ + "description": "City name (e.g. \"San Francisco\", \"London\"). Case-sensitive; must match the stored value. Use traffic.breakdown(dimension=\"city\") to discover values.", + "type": "string" +} - added
Input schema / properties / osAdded value: +{ + "description": "Operating system family (e.g. \"macOS\", \"iOS\", \"Windows\", \"Android\"). Use traffic.breakdown(dimension=\"os\") to discover stored values.", + "type": "string" +} - added
Input schema / properties / os_versionAdded value: +{ + "description": "OS version string (e.g. \"14.2\"). Case-sensitive.", + "type": "string" +} - added
Input schema / properties / regionAdded value: +{ + "description": "Administrative region inside a country (e.g. \"California\", \"Bavaria\"). Case-sensitive; must match the stored region exactly. Use traffic.breakdown(dimension=\"region\") to discover values.", + "type": "string" +}
- Changed
traffic.overview6 fields changed- added
Input schema / properties / browserAdded value: +{ + "description": "Browser family (e.g. \"Chrome\", \"Safari\", \"Firefox\"). Use traffic.breakdown(dimension=\"browser\") to discover the exact stored values.", + "type": "string" +} - added
Input schema / properties / browser_versionAdded value: +{ + "description": "Browser version string (e.g. \"120.0\"). Case-sensitive.", + "type": "string" +} - added
Input schema / properties / cityAdded value: +{ + "description": "City name (e.g. \"San Francisco\", \"London\"). Case-sensitive; must match the stored value. Use traffic.breakdown(dimension=\"city\") to discover values.", + "type": "string" +} - added
Input schema / properties / osAdded value: +{ + "description": "Operating system family (e.g. \"macOS\", \"iOS\", \"Windows\", \"Android\"). Use traffic.breakdown(dimension=\"os\") to discover stored values.", + "type": "string" +} - added
Input schema / properties / os_versionAdded value: +{ + "description": "OS version string (e.g. \"14.2\"). Case-sensitive.", + "type": "string" +} - added
Input schema / properties / regionAdded value: +{ + "description": "Administrative region inside a country (e.g. \"California\", \"Bavaria\"). Case-sensitive; must match the stored region exactly. Use traffic.breakdown(dimension=\"region\") to discover values.", + "type": "string" +}
- Changed
traffic.timeseries6 fields changed- added
Input schema / properties / browserAdded value: +{ + "description": "Browser family (e.g. \"Chrome\", \"Safari\", \"Firefox\"). Use traffic.breakdown(dimension=\"browser\") to discover the exact stored values.", + "type": "string" +} - added
Input schema / properties / browser_versionAdded value: +{ + "description": "Browser version string (e.g. \"120.0\"). Case-sensitive.", + "type": "string" +} - added
Input schema / properties / cityAdded value: +{ + "description": "City name (e.g. \"San Francisco\", \"London\"). Case-sensitive; must match the stored value. Use traffic.breakdown(dimension=\"city\") to discover values.", + "type": "string" +} - added
Input schema / properties / osAdded value: +{ + "description": "Operating system family (e.g. \"macOS\", \"iOS\", \"Windows\", \"Android\"). Use traffic.breakdown(dimension=\"os\") to discover stored values.", + "type": "string" +} - added
Input schema / properties / os_versionAdded value: +{ + "description": "OS version string (e.g. \"14.2\"). Case-sensitive.", + "type": "string" +} - added
Input schema / properties / regionAdded value: +{ + "description": "Administrative region inside a country (e.g. \"California\", \"Bavaria\"). Case-sensitive; must match the stored region exactly. Use traffic.breakdown(dimension=\"region\") to discover values.", + "type": "string" +}
1 tool update
- Changed
traffic.timeseries2 fields changed- changed
Input schema / properties / event / descriptionPrevious value: -"Event name to chart. Defaults to \"pageview\". Use any custom event name to see its trend over time."New value: +"Event name to chart raw counts of (defaults to \"pageview\"). Ignored when `metric` is set. Use any custom event name to see its trend over time." - added
Input schema / properties / metricAdded value: +{ + "description": "Which traffic metric to chart over time, mirroring the overview KPIs: \"pageviews\", \"visitors\" (unique), \"sessions\", \"bounce_rate\" (% of single-pageview sessions), or \"avg_duration\" (avg session length in seconds). When set, the metric is always scoped to pageviews and `event`/`property`/`value` are ignored. Omit to chart raw counts of a custom `event` instead.", + "enum": [ + "pageviews", + "visitors", + "sessions", + "bounce_rate", + "avg_duration" + ], + "type": "string" +}
27 tool updates
- Changed
alerts.create1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "condition": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "id": { + "type": "string" + }, + "metric": { + "type": "string" + }, + "pathname": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "period": { + "type": "string" + }, + "threshold": { + "type": "number" + } + }, + "required": [ + "id", + "metric", + "condition", + "threshold", + "period", + "pathname", + "created_at" + ], + "type": "object" +}
- Changed
alerts.delete1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "ok": { + "type": "boolean" + } + }, + "required": [ + "ok" + ], + "type": "object" +}
- Changed
alerts.list1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "alerts": { + "items": { + "additionalProperties": false, + "properties": { + "condition": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "id": { + "type": "string" + }, + "metric": { + "type": "string" + }, + "pathname": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "period": { + "type": "string" + }, + "threshold": { + "type": "number" + } + }, + "required": [ + "id", + "metric", + "condition", + "threshold", + "period", + "pathname", + "created_at" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "alerts" + ], + "type": "object" +}
- Changed
cohorts.compare1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "a": { + "additionalProperties": false, + "properties": { + "cohort": { + "type": "string" + }, + "retention": { + "items": { + "additionalProperties": false, + "properties": { + "count": { + "type": "number" + }, + "period": { + "type": "string" + }, + "rate": { + "type": "string" + } + }, + "required": [ + "period", + "count", + "rate" + ], + "type": "object" + }, + "type": "array" + }, + "size": { + "type": "number" + } + }, + "required": [ + "cohort", + "size", + "retention" + ], + "type": "object" + }, + "b": { + "additionalProperties": false, + "properties": { + "cohort": { + "type": "string" + }, + "retention": { + "items": { + "additionalProperties": false, + "properties": { + "count": { + "type": "number" + }, + "period": { + "type": "string" + }, + "rate": { + "type": "string" + } + }, + "required": [ + "period", + "count", + "rate" + ], + "type": "object" + }, + "type": "array" + }, + "size": { + "type": "number" + } + }, + "required": [ + "cohort", + "size", + "retention" + ], + "type": "object" + } + }, + "required": [ + "a", + "b" + ], + "type": "object" +}
- Changed
cohorts.create1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "definition": { + "additionalProperties": false, + "properties": { + "event": { + "type": "string" + }, + "filter": { + "additionalProperties": false, + "properties": { + "property": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "required": [ + "property", + "value" + ], + "type": "object" + }, + "period": { + "type": "string" + } + }, + "required": [ + "event", + "period" + ], + "type": "object" + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "size": { + "type": "number" + } + }, + "required": [ + "id", + "name", + "definition", + "size" + ], + "type": "object" +}
- Changed
cohorts.delete1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "ok": { + "type": "boolean" + } + }, + "required": [ + "ok" + ], + "type": "object" +}
- Changed
cohorts.list1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "cohorts": { + "items": { + "additionalProperties": false, + "properties": { + "created_at": { + "type": "string" + }, + "definition": { + "additionalProperties": false, + "properties": { + "event": { + "type": "string" + }, + "filter": { + "additionalProperties": false, + "properties": { + "property": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "required": [ + "property", + "value" + ], + "type": "object" + }, + "period": { + "type": "string" + } + }, + "required": [ + "event", + "period" + ], + "type": "object" + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "size": { + "type": "number" + } + }, + "required": [ + "id", + "name", + "definition" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "cohorts" + ], + "type": "object" +}
- Changed
cohorts.retention1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "cohort": { + "type": "string" + }, + "retention": { + "items": { + "additionalProperties": false, + "properties": { + "count": { + "type": "number" + }, + "period": { + "type": "string" + }, + "rate": { + "type": "string" + } + }, + "required": [ + "period", + "count", + "rate" + ], + "type": "object" + }, + "type": "array" + }, + "size": { + "type": "number" + } + }, + "required": [ + "cohort", + "size", + "retention" + ], + "type": "object" +}
- Changed
docs.search1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "query": { + "type": "string" + }, + "results": { + "items": { + "additionalProperties": false, + "properties": { + "desc": { + "type": "string" + }, + "title": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "url", + "title", + "desc" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "query", + "results" + ], + "type": "object" +}
- Changed
errors.context1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "anonymous_id": { + "type": "string" + }, + "before_timestamp": { + "type": "string" + }, + "count": { + "type": "number" + }, + "events": { + "items": { + "additionalProperties": false, + "properties": { + "name": { + "type": "string" + }, + "pathname": { + "type": "string" + }, + "referrer": { + "type": "string" + }, + "timestamp": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "timestamp", + "name" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "anonymous_id", + "before_timestamp", + "count", + "events" + ], + "type": "object" +}
- Changed
errors.groups1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "groups": { + "items": { + "additionalProperties": false, + "properties": { + "count": { + "type": "number" + }, + "fingerprint": { + "type": "string" + }, + "first_seen": { + "type": "string" + }, + "last_seen": { + "type": "string" + }, + "sample_message": { + "type": "string" + }, + "sample_type": { + "type": "string" + }, + "users_affected": { + "type": "number" + } + }, + "required": [ + "fingerprint", + "count", + "users_affected", + "first_seen", + "last_seen" + ], + "type": "object" + }, + "type": "array" + }, + "period": { + "type": "string" + }, + "sort_by": { + "type": "string" + } + }, + "required": [ + "period", + "sort_by", + "groups" + ], + "type": "object" +}
- Changed
errors.list1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "count": { + "type": "number" + }, + "errors": { + "items": { + "additionalProperties": false, + "properties": { + "anonymous_id": { + "type": "string" + }, + "browser": { + "type": "string" + }, + "browser_version": { + "type": "string" + }, + "country": { + "type": "string" + }, + "device_type": { + "type": "string" + }, + "fingerprint": { + "type": "string" + }, + "handled": { + "type": "boolean" + }, + "message": { + "type": "string" + }, + "os": { + "type": "string" + }, + "pathname": { + "type": "string" + }, + "session_id": { + "type": "string" + }, + "stack": { + "type": "string" + }, + "timestamp": { + "type": "string" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "timestamp", + "handled" + ], + "type": "object" + }, + "type": "array" + }, + "period": { + "type": "string" + } + }, + "required": [ + "period", + "count", + "errors" + ], + "type": "object" +}
- Changed
errors.timeline1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "fingerprint": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "interval": { + "type": "string" + }, + "period": { + "type": "string" + }, + "series": { + "items": { + "additionalProperties": false, + "properties": { + "bucket": { + "type": "string" + }, + "count": { + "type": "number" + } + }, + "required": [ + "bucket", + "count" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "period", + "interval", + "fingerprint", + "series" + ], + "type": "object" +}
- Changed
events.list1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "events": { + "items": { + "additionalProperties": false, + "properties": { + "count": { + "type": "number" + }, + "group_value": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "name", + "count" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "events" + ], + "type": "object" +}
- Changed
events.observed_schema1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "events": { + "items": { + "additionalProperties": false, + "properties": { + "count": { + "type": "number" + }, + "name": { + "type": "string" + }, + "properties": { + "additionalProperties": { + "items": { + "additionalProperties": false, + "properties": { + "occurrences": { + "type": "number" + }, + "type": { + "type": "string" + } + }, + "required": [ + "type", + "occurrences" + ], + "type": "object" + }, + "type": "array" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + } + }, + "required": [ + "name", + "count", + "properties" + ], + "type": "object" + }, + "type": "array" + }, + "period": { + "type": "string" + } + }, + "required": [ + "period", + "events" + ], + "type": "object" +}
- Changed
funnels.create1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "overall_conversion": { + "type": "string" + }, + "period": { + "type": "string" + }, + "steps": { + "items": { + "additionalProperties": false, + "properties": { + "count": { + "type": "number" + }, + "name": { + "type": "string" + }, + "rate": { + "type": "string" + } + }, + "required": [ + "name", + "count", + "rate" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "id", + "name", + "steps", + "overall_conversion", + "period" + ], + "type": "object" +}
- Changed
funnels.list1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "funnels": { + "items": { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "overall_conversion": { + "type": "string" + }, + "period": { + "type": "string" + }, + "steps": { + "items": { + "additionalProperties": false, + "properties": { + "count": { + "type": "number" + }, + "name": { + "type": "string" + }, + "rate": { + "type": "string" + } + }, + "required": [ + "name", + "count", + "rate" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "id", + "name", + "steps", + "overall_conversion", + "period" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "funnels" + ], + "type": "object" +}
- Changed
pages.engagement1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "pages": { + "items": { + "additionalProperties": false, + "properties": { + "avg_engagement_seconds": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "bounce_rate": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "pageviews": { + "type": "number" + }, + "pathname": { + "type": "string" + }, + "visitors": { + "type": "number" + } + }, + "required": [ + "pathname", + "pageviews", + "visitors" + ], + "type": "object" + }, + "type": "array" + }, + "sections": { + "items": { + "additionalProperties": false, + "properties": { + "pageviews": { + "type": "number" + }, + "section": { + "type": "string" + }, + "view_rate": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "views": { + "type": "number" + } + }, + "required": [ + "section", + "views", + "view_rate", + "pageviews" + ], + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
projects.list1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "projects": { + "items": { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "plan": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "plan" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "projects" + ], + "type": "object" +}
- Changed
revenue.sum1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "rows": { + "items": { + "additionalProperties": false, + "properties": { + "amount": { + "type": "string" + }, + "currency": { + "type": "string" + }, + "events": { + "type": "number" + }, + "group_value": { + "type": "string" + }, + "visitors": { + "type": "number" + } + }, + "required": [ + "currency", + "amount", + "events", + "visitors" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "rows" + ], + "type": "object" +}
- Changed
sessions.paths1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "paths": { + "items": { + "additionalProperties": false, + "properties": { + "avg_duration_seconds": { + "type": "number" + }, + "avg_pages": { + "type": "number" + }, + "bounced": { + "type": "boolean" + }, + "entry_page": { + "type": "string" + }, + "exit_page": { + "type": "string" + }, + "sessions": { + "type": "number" + } + }, + "required": [ + "entry_page", + "exit_page", + "sessions", + "avg_pages", + "avg_duration_seconds", + "bounced" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "paths" + ], + "type": "object" +}
- Changed
traffic.breakdown1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "rows": { + "items": { + "additionalProperties": false, + "properties": { + "channel": { + "type": "string" + }, + "country": { + "type": "string" + }, + "name": { + "type": "string" + }, + "pageviews": { + "type": "number" + }, + "visitors": { + "type": "number" + } + }, + "required": [ + "name", + "pageviews", + "visitors" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "rows" + ], + "type": "object" +}
- Changed
traffic.compare1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "a": { + "additionalProperties": false, + "properties": { + "period": { + "type": "string" + }, + "value": { + "type": "number" + } + }, + "required": [ + "period", + "value" + ], + "type": "object" + }, + "absolute_delta": { + "type": "number" + }, + "b": { + "additionalProperties": false, + "properties": { + "period": { + "type": "string" + }, + "value": { + "type": "number" + } + }, + "required": [ + "period", + "value" + ], + "type": "object" + }, + "metric": { + "type": "string" + }, + "pct_delta": { + "type": "string" + } + }, + "required": [ + "metric", + "a", + "b", + "absolute_delta", + "pct_delta" + ], + "type": "object" +}
- Changed
traffic.live1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "pageviews": { + "type": "number" + }, + "top_countries": { + "items": { + "additionalProperties": false, + "properties": { + "name": { + "type": "string" + }, + "visitors": { + "type": "number" + } + }, + "required": [ + "name", + "visitors" + ], + "type": "object" + }, + "type": "array" + }, + "top_pages": { + "items": { + "additionalProperties": false, + "properties": { + "name": { + "type": "string" + }, + "pageviews": { + "type": "number" + }, + "visitors": { + "type": "number" + } + }, + "required": [ + "name", + "pageviews", + "visitors" + ], + "type": "object" + }, + "type": "array" + }, + "top_sources": { + "items": { + "additionalProperties": false, + "properties": { + "name": { + "type": "string" + }, + "visitors": { + "type": "number" + } + }, + "required": [ + "name", + "visitors" + ], + "type": "object" + }, + "type": "array" + }, + "visitors": { + "type": "number" + }, + "window_minutes": { + "type": "number" + } + }, + "required": [ + "window_minutes", + "visitors", + "pageviews", + "top_pages", + "top_sources", + "top_countries" + ], + "type": "object" +}
- Changed
traffic.overview1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "avg_duration": { + "type": "number" + }, + "bounce_rate": { + "type": "number" + }, + "comparison": { + "additionalProperties": false, + "properties": { + "bounce_rate": { + "additionalProperties": false, + "properties": { + "change": { + "type": "string" + }, + "previous": { + "type": "number" + } + }, + "required": [ + "previous", + "change" + ], + "type": "object" + }, + "pageviews": { + "additionalProperties": false, + "properties": { + "change": { + "type": "string" + }, + "previous": { + "type": "number" + } + }, + "required": [ + "previous", + "change" + ], + "type": "object" + }, + "sessions": { + "additionalProperties": false, + "properties": { + "change": { + "type": "string" + }, + "previous": { + "type": "number" + } + }, + "required": [ + "previous", + "change" + ], + "type": "object" + }, + "visitors": { + "additionalProperties": false, + "properties": { + "change": { + "type": "string" + }, + "previous": { + "type": "number" + } + }, + "required": [ + "previous", + "change" + ], + "type": "object" + } + }, + "required": [ + "pageviews", + "visitors", + "sessions", + "bounce_rate" + ], + "type": "object" + }, + "pageviews": { + "type": "number" + }, + "sessions": { + "type": "number" + }, + "visitors": { + "type": "number" + } + }, + "required": [ + "pageviews", + "visitors", + "sessions", + "bounce_rate", + "avg_duration", + "comparison" + ], + "type": "object" +}
- Changed
traffic.timeseries1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "series": { + "items": { + "additionalProperties": false, + "properties": { + "count": { + "type": "number" + }, + "date": { + "type": "string" + } + }, + "required": [ + "date", + "count" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "series" + ], + "type": "object" +}
- Changed
users.journey1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "anonymous_id": { + "type": "string" + }, + "sessions": { + "items": { + "additionalProperties": false, + "properties": { + "channel": { + "type": "string" + }, + "country": { + "type": "string" + }, + "device_type": { + "type": "string" + }, + "ended_at": { + "type": "string" + }, + "entry_page": { + "type": "string" + }, + "events": { + "items": { + "type": "string" + }, + "type": "array" + }, + "is_first_touch": { + "type": "boolean" + }, + "pageviews": { + "type": "number" + }, + "referrer_host": { + "type": "string" + }, + "session_id": { + "type": "string" + }, + "started_at": { + "type": "string" + }, + "utm_campaign": { + "type": "string" + }, + "utm_medium": { + "type": "string" + }, + "utm_source": { + "type": "string" + } + }, + "required": [ + "session_id", + "is_first_touch", + "started_at", + "ended_at", + "entry_page", + "channel", + "referrer_host", + "utm_source", + "utm_medium", + "utm_campaign", + "country", + "device_type", + "pageviews", + "events" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "anonymous_id", + "sessions" + ], + "type": "object" +}
14 tool updates
- Removed
breakdown - Added
errors.context - Added
errors.groups - Added
errors.list - Added
errors.timeline - Changed
events.list1 field changed- changed
Input schema / properties / referrer_host / descriptionPrevious value: -"Filter by referrer hostname (e.g. \"news.ycombinator.com\", \"twitter.com\", \"github.com\"). Use this to see what traffic from a specific source did. Must match the value returned by `breakdown(dimension=\"referrer_host\")` exactly (lowercase, no protocol or path)."New value: +"Filter by referrer hostname (e.g. \"news.ycombinator.com\", \"twitter.com\", \"github.com\"). Use this to see what traffic from a specific source did. Must match the value returned by `traffic.breakdown(dimension=\"referrer_host\")` exactly (lowercase, no protocol or path)."
- Changed
funnels.list1 field changed- changed
Input schema / properties / referrer_host / descriptionPrevious value: -"Filter by referrer hostname (e.g. \"news.ycombinator.com\", \"twitter.com\", \"github.com\"). Use this to see what traffic from a specific source did. Must match the value returned by `breakdown(dimension=\"referrer_host\")` exactly (lowercase, no protocol or path)."New value: +"Filter by referrer hostname (e.g. \"news.ycombinator.com\", \"twitter.com\", \"github.com\"). Use this to see what traffic from a specific source did. Must match the value returned by `traffic.breakdown(dimension=\"referrer_host\")` exactly (lowercase, no protocol or path)."
- Changed
pages.engagement1 field changed- changed
Input schema / properties / referrer_host / descriptionPrevious value: -"Filter by referrer hostname (e.g. \"news.ycombinator.com\", \"twitter.com\", \"github.com\"). Use this to see what traffic from a specific source did. Must match the value returned by `breakdown(dimension=\"referrer_host\")` exactly (lowercase, no protocol or path)."New value: +"Filter by referrer hostname (e.g. \"news.ycombinator.com\", \"twitter.com\", \"github.com\"). Use this to see what traffic from a specific source did. Must match the value returned by `traffic.breakdown(dimension=\"referrer_host\")` exactly (lowercase, no protocol or path)."
- Changed
revenue.sum1 field changed- changed
Input schema / properties / referrer_host / descriptionPrevious value: -"Filter by referrer hostname (e.g. \"news.ycombinator.com\", \"twitter.com\", \"github.com\"). Use this to see what traffic from a specific source did. Must match the value returned by `breakdown(dimension=\"referrer_host\")` exactly (lowercase, no protocol or path)."New value: +"Filter by referrer hostname (e.g. \"news.ycombinator.com\", \"twitter.com\", \"github.com\"). Use this to see what traffic from a specific source did. Must match the value returned by `traffic.breakdown(dimension=\"referrer_host\")` exactly (lowercase, no protocol or path)."
- Changed
sessions.paths1 field changed- changed
Input schema / properties / referrer_host / descriptionPrevious value: -"Filter by referrer hostname (e.g. \"news.ycombinator.com\", \"twitter.com\", \"github.com\"). Use this to see what traffic from a specific source did. Must match the value returned by `breakdown(dimension=\"referrer_host\")` exactly (lowercase, no protocol or path)."New value: +"Filter by referrer hostname (e.g. \"news.ycombinator.com\", \"twitter.com\", \"github.com\"). Use this to see what traffic from a specific source did. Must match the value returned by `traffic.breakdown(dimension=\"referrer_host\")` exactly (lowercase, no protocol or path)."
- Added
traffic.breakdown - Changed
traffic.compare1 field changed- changed
Input schema / properties / referrer_host / descriptionPrevious value: -"Filter by referrer hostname (e.g. \"news.ycombinator.com\", \"twitter.com\", \"github.com\"). Use this to see what traffic from a specific source did. Must match the value returned by `breakdown(dimension=\"referrer_host\")` exactly (lowercase, no protocol or path)."New value: +"Filter by referrer hostname (e.g. \"news.ycombinator.com\", \"twitter.com\", \"github.com\"). Use this to see what traffic from a specific source did. Must match the value returned by `traffic.breakdown(dimension=\"referrer_host\")` exactly (lowercase, no protocol or path)."
- Changed
traffic.overview1 field changed- changed
Input schema / properties / referrer_host / descriptionPrevious value: -"Filter by referrer hostname (e.g. \"news.ycombinator.com\", \"twitter.com\", \"github.com\"). Use this to see what traffic from a specific source did. Must match the value returned by `breakdown(dimension=\"referrer_host\")` exactly (lowercase, no protocol or path)."New value: +"Filter by referrer hostname (e.g. \"news.ycombinator.com\", \"twitter.com\", \"github.com\"). Use this to see what traffic from a specific source did. Must match the value returned by `traffic.breakdown(dimension=\"referrer_host\")` exactly (lowercase, no protocol or path)."
- Changed
traffic.timeseries1 field changed- changed
Input schema / properties / referrer_host / descriptionPrevious value: -"Filter by referrer hostname (e.g. \"news.ycombinator.com\", \"twitter.com\", \"github.com\"). Use this to see what traffic from a specific source did. Must match the value returned by `breakdown(dimension=\"referrer_host\")` exactly (lowercase, no protocol or path)."New value: +"Filter by referrer hostname (e.g. \"news.ycombinator.com\", \"twitter.com\", \"github.com\"). Use this to see what traffic from a specific source did. Must match the value returned by `traffic.breakdown(dimension=\"referrer_host\")` exactly (lowercase, no protocol or path)."
9 tool updates
- Added
cohorts.compare - Added
cohorts.create - Added
cohorts.delete - Added
cohorts.list - Added
cohorts.retention - Removed
funnels.get - Added
funnels.list - Changed
revenue.sum1 field changed- added
Input schema / properties / attribution_modelAdded value: +{ + "description": "Attribution model. \"last_touch\" (default) groups by the dimensions of the session where revenue fired. \"first_touch\" joins each revenue event with the visitor's earliest session and groups by that session's acquisition dim. First-touch only supports group_by in acquisition dimensions (channel, referrer_host, utm_*).", + "enum": [ + "last_touch", + "first_touch" + ], + "type": "string" +}
- Added
users.journey
1 tool update
- Added
events.observed_schema
2 tool updates
- Changed
events.list3 fields changed- added
Input schema / properties / group_by_typeAdded value: +{ + "description": "Type of the group_by property. Defaults to \"string\". Set to \"number\"/\"boolean\" for numeric/boolean properties; results come back stringified (\"5\", \"true\") for transport.", + "enum": [ + "string", + "number", + "boolean" + ], + "type": "string" +} - changed
Input schema / properties / value / descriptionPrevious value: -"Filter to events where the property key equals this value. Must be used together with the \"property\" parameter. Values are strings, max 512 chars."New value: +"Filter to events where the property key equals this value. Must be used together with the \"property\" parameter. Pass the value as a string regardless of underlying type; combine with \"value_type\" for numbers/booleans." - added
Input schema / properties / value_typeAdded value: +{ + "description": "Type of the value being filtered. Defaults to \"string\". Set to \"number\" or \"boolean\" when the property is declared as such in event-schema.yaml — otherwise the lookup hits the wrong column and returns no matches.", + "enum": [ + "string", + "number", + "boolean" + ], + "type": "string" +}
- Changed
funnels.create1 field changed- changed
Input schema / properties / steps / descriptionPrevious value: -"Ordered array of 2-10 funnel steps. Each step: a custom event name (\"signup\"), a pathname-scoped pageview (\"pageview:/pricing\"), or either form with property predicates appended in brackets (\"cta_click[location=hero_primary]\", \"pageview:/pricing[utm_source=google]\"). Stack predicates to AND them: \"cta_click[location=hero_primary][plan=pro]\"."New value: +"Ordered array of 2-10 funnel steps. Each step: a custom event name (\"signup\"), a pathname-scoped pageview (\"pageview:/pricing\"), or either form with property predicates appended in brackets (\"cta_click[location=hero_primary]\", \"pageview:/pricing[utm_source=google]\"). Stack predicates to AND them: \"cta_click[location=hero_primary][plan=pro]\". Predicates default to string matching; append \":n\" for number (\"checkout[items:n=3]\"), \":b\" for boolean (\"purchase[refunded:b=false]\"), or \":s\" to force string when the value looks numeric (\"plan:s=5\")."
1 tool update
- Changed
funnels.create1 field changed- changed
Input schema / properties / steps / descriptionPrevious value: -"Ordered array of 2-10 funnel steps. Each step is either: (1) a custom event name like \"signup\", \"checkout_completed\", or (2) a pageview with path in the format \"pageview:/path\" (e.g. \"pageview:/pricing\", \"pageview:/blog/my-post\"). Example: [\"pageview:/pricing\", \"signup\", \"checkout_completed\"]."New value: +"Ordered array of 2-10 funnel steps. Each step: a custom event name (\"signup\"), a pathname-scoped pageview (\"pageview:/pricing\"), or either form with property predicates appended in brackets (\"cta_click[location=hero_primary]\", \"pageview:/pricing[utm_source=google]\"). Stack predicates to AND them: \"cta_click[location=hero_primary][plan=pro]\"."
15 tool updates
- Added
breakdown - Removed
cities.top - Removed
countries.top - Removed
devices.top - Changed
events.list1 field changed- changed
Input schema / properties / referrer_host / descriptionPrevious value: -"Filter by referrer hostname (e.g. \"news.ycombinator.com\", \"twitter.com\", \"github.com\"). Use this to see what traffic from a specific source did. Must match the value returned by referrers.top exactly (lowercase, no protocol or path)."New value: +"Filter by referrer hostname (e.g. \"news.ycombinator.com\", \"twitter.com\", \"github.com\"). Use this to see what traffic from a specific source did. Must match the value returned by `breakdown(dimension=\"referrer_host\")` exactly (lowercase, no protocol or path)."
- Changed
funnels.get1 field changed- changed
Input schema / properties / referrer_host / descriptionPrevious value: -"Filter by referrer hostname (e.g. \"news.ycombinator.com\", \"twitter.com\", \"github.com\"). Use this to see what traffic from a specific source did. Must match the value returned by referrers.top exactly (lowercase, no protocol or path)."New value: +"Filter by referrer hostname (e.g. \"news.ycombinator.com\", \"twitter.com\", \"github.com\"). Use this to see what traffic from a specific source did. Must match the value returned by `breakdown(dimension=\"referrer_host\")` exactly (lowercase, no protocol or path)."
- Changed
pages.engagement2 fields changed- changed
Input schema / properties / referrer_host / descriptionPrevious value: -"Filter by referrer hostname (e.g. \"news.ycombinator.com\", \"twitter.com\", \"github.com\"). Use this to see what traffic from a specific source did. Must match the value returned by referrers.top exactly (lowercase, no protocol or path)."New value: +"Filter by referrer hostname (e.g. \"news.ycombinator.com\", \"twitter.com\", \"github.com\"). Use this to see what traffic from a specific source did. Must match the value returned by `breakdown(dimension=\"referrer_host\")` exactly (lowercase, no protocol or path)." - added
Input schema / properties / viewAdded value: +{ + "description": "Detail level. \"summary\" (default) returns pathname/pageviews/visitors only. \"engagement\" adds avg_engagement_seconds and bounce_rate. \"sections\" returns per-section view counts for the pathname (requires pathname).", + "enum": [ + "summary", + "engagement", + "sections" + ], + "type": "string" +}
- Removed
pages.top - Removed
referrers.top - Changed
revenue.sum1 field changed- changed
Input schema / properties / referrer_host / descriptionPrevious value: -"Filter by referrer hostname (e.g. \"news.ycombinator.com\", \"twitter.com\", \"github.com\"). Use this to see what traffic from a specific source did. Must match the value returned by referrers.top exactly (lowercase, no protocol or path)."New value: +"Filter by referrer hostname (e.g. \"news.ycombinator.com\", \"twitter.com\", \"github.com\"). Use this to see what traffic from a specific source did. Must match the value returned by `breakdown(dimension=\"referrer_host\")` exactly (lowercase, no protocol or path)."
- Changed
sessions.paths1 field changed- changed
Input schema / properties / referrer_host / descriptionPrevious value: -"Filter by referrer hostname (e.g. \"news.ycombinator.com\", \"twitter.com\", \"github.com\"). Use this to see what traffic from a specific source did. Must match the value returned by referrers.top exactly (lowercase, no protocol or path)."New value: +"Filter by referrer hostname (e.g. \"news.ycombinator.com\", \"twitter.com\", \"github.com\"). Use this to see what traffic from a specific source did. Must match the value returned by `breakdown(dimension=\"referrer_host\")` exactly (lowercase, no protocol or path)."
- Removed
traffic.breakdown - Changed
traffic.compare1 field changed- changed
Input schema / properties / referrer_host / descriptionPrevious value: -"Filter by referrer hostname (e.g. \"news.ycombinator.com\", \"twitter.com\", \"github.com\"). Use this to see what traffic from a specific source did. Must match the value returned by referrers.top exactly (lowercase, no protocol or path)."New value: +"Filter by referrer hostname (e.g. \"news.ycombinator.com\", \"twitter.com\", \"github.com\"). Use this to see what traffic from a specific source did. Must match the value returned by `breakdown(dimension=\"referrer_host\")` exactly (lowercase, no protocol or path)."
- Changed
traffic.overview1 field changed- changed
Input schema / properties / referrer_host / descriptionPrevious value: -"Filter by referrer hostname (e.g. \"news.ycombinator.com\", \"twitter.com\", \"github.com\"). Use this to see what traffic from a specific source did. Must match the value returned by referrers.top exactly (lowercase, no protocol or path)."New value: +"Filter by referrer hostname (e.g. \"news.ycombinator.com\", \"twitter.com\", \"github.com\"). Use this to see what traffic from a specific source did. Must match the value returned by `breakdown(dimension=\"referrer_host\")` exactly (lowercase, no protocol or path)."
- Changed
traffic.timeseries1 field changed- changed
Input schema / properties / referrer_host / descriptionPrevious value: -"Filter by referrer hostname (e.g. \"news.ycombinator.com\", \"twitter.com\", \"github.com\"). Use this to see what traffic from a specific source did. Must match the value returned by referrers.top exactly (lowercase, no protocol or path)."New value: +"Filter by referrer hostname (e.g. \"news.ycombinator.com\", \"twitter.com\", \"github.com\"). Use this to see what traffic from a specific source did. Must match the value returned by `breakdown(dimension=\"referrer_host\")` exactly (lowercase, no protocol or path)."
43 tool updates
- Added
alerts.create - Added
alerts.delete - Added
alerts.list - Added
cities.top - Removed
compare_periods - Added
countries.top - Removed
create_alert - Removed
create_funnel - Removed
delete_alert - Added
devices.top - Removed
docs_search - Added
docs.search - Added
events.list - Added
funnels.create - Added
funnels.get - Removed
get_breakdown - Removed
get_cities - Removed
get_countries - Removed
get_current_visitors - Removed
get_devices - Removed
get_events - Removed
get_funnel - Removed
get_overview - Removed
get_page_engagement - Removed
get_revenue - Removed
get_session_paths - Removed
get_timeseries - Removed
get_top_pages - Removed
get_top_referrers - Removed
list_alerts - Removed
list_projects - Added
pages.engagement - Added
pages.top - Added
projects.list - Added
referrers.top - Added
revenue.sum - Removed
search_docs - Added
sessions.paths - Added
traffic.breakdown - Added
traffic.compare - Added
traffic.live - Added
traffic.overview - Added
traffic.timeseries
3 tool updates
- Added
delete_alert - Added
list_alerts - Added
search_docs
3 tool updates
- Added
get_page_engagement - Added
get_revenue - Added
get_session_paths
16 tool updates
- First observed
compare_periods - First observed
create_alert - First observed
create_funnel - First observed
docs_search - First observed
get_breakdown - First observed
get_cities - First observed
get_countries - First observed
get_current_visitors - First observed
get_devices - First observed
get_events - First observed
get_funnel - First observed
get_overview - First observed
get_timeseries - First observed
get_top_pages - First observed
get_top_referrers - First observed
list_projects
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user, then choose Claim with GitHub. An organization namespace such asio.github.acme/serveralso needs that organization to have installed the Glama AI GitHub App and approved its permissions, because GitHub discloses organization membership only to apps it has installed. Use HTTP or DNS when it has not.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables detection and analysis of pre-public product launches through web search, content extraction, AI-powered scoring, and automated alerting. Provides comprehensive tools for surfacing stealth startup signals before they trend publicly.MIT

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT- AlicenseNot gradedqualityCmaintenanceEnables AI chat clients to perform market research and competitive intelligence by gathering company overviews, competitor lists, product portfolios, pricing snapshots, and recent news via live Tavily search.MIT
- AlicenseAqualityAmaintenanceDetects hiring intent signals by scanning job boards for specific companies. Returns structured role data for outbound sales targeting.11961MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
Each tool targets a distinct resource and action, with clear separation even within groups like traffic and errors. Descriptions are detailed and unique, preventing ambiguity.
All tool names follow a consistent 'resource.action' pattern using snake_case (e.g., alerts.create, traffic.overview), with no deviations or mixed conventions.
27 tools is on the higher end but well-justified for a comprehensive analytics platform covering alerts, cohorts, errors, events, funnels, pages, revenue, sessions, traffic, and users.
The tool surface is very complete, covering core analytics workflows (traffic, events, errors, funnels, cohorts, revenue) with no obvious gaps. Missing update/delete for some resources are acceptable given the domain.