Skip to main content
Glama
splithub-io

SplitHub

Official

splithub_analytics

Query pageview, event, goal and revenue analytics per property or site-wide, with ranges, filters, compare and segment. Group results by source, page, country, device or variant.

Instructions

Analytics properties (pageviews or app screens, and custom events, no variants). A property is kind site or app; in an app a screen is a page (url /ScreenName) and platform / app_version are dimensions for by and filters. Without property: every property with visitors, visits, pageviews and bounce for the last 30 days. With property: totals (visitors, newVisitors, sessions = visits, pageviews, events, bounces, duration in ms; bounce rate = bounces / sessions), goals (conversions = unique visitors who reached it in the range, completions = how many times, revenue), topPages and topSources (value "(none)" = direct). With by: rows grouped by a visit dimension, page, event or goal; goal adds that goal's conversions per row; variant (needs experiment) splits visits by the variant each visitor saw, trait (needs key) by an identify() trait. Range: days (last N days) or from / to (YYYY-MM-DD, project time zone). filters narrow the visits, e.g. { country: "DE,FR", source: "(none)" }. Self-hosted projects get raw counts only (analysis.available false): report them as they are and say full reports come with SplitHub Cloud. compare adds previous (the compared range, with its dates in previous.range) for change against it: 'previous' (the same-length range right before), 'year' (the same days a year earlier) or 'YYYY-MM-DD..YYYY-MM-DD'. segment applies a saved segment (splithub_segments) by name or id. These are counts, not experiments: no verdicts, never call a winner from them.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
byNo
toNo
keyNoby trait: the trait name, e.g. plan
daysNo
fromNo
goalNowith by: also count this goal per row
limitNo
compareNoalso read another period: 'previous' (right before), 'year' (a year earlier) or 'YYYY-MM-DD..YYYY-MM-DD'
filtersNodimension → comma-separated values
segmentNosaved segment name or id
propertyNoproperty id; omit to list every property
experimentNoby variant: the experiment key

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses that self-hosted projects return raw counts only with analysis.available false, that counts must not be treated as experiment verdicts, that '(none)' means direct traffic, and that compare returns previous.range. It does not mention auth requirements, rate limits, or how large result sets are truncated, which leaves some behavioral gaps for a 12-parameter reporting tool.

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?

Nearly every clause carries information, and the without-property/with-property/with-by branching is reasonably front-loaded. However, the text is a single dense run-on with nested parentheticals that makes it hard to parse and re-read while invoking the tool.

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?

For a 12-parameter tool with no annotations and no output schema, the description covers most of what an agent needs: result shape for the no-property and with-property modes, dimension semantics for app screens, filters, segments, comparison ranges, and self-hosted caveats. Missing are the limit parameter's effect and any note on result caps or ordering, which are the main remaining gaps.

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

Parameters4/5

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

Schema coverage is only 58%, so the description must compensate, and it largely does: it explains by, key (for trait), goal (per-row goal counts), compare formats including the date-range pattern, filters value syntax with an example, segment lookup, and experiment for variant. The limit parameter is never explained, and the interplay of days with from/to is only loosely implied ('Range: days (last N days) or from / to').

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?

The description clearly establishes a read-only analytics report over properties, sites, or apps, returning totals, goals, topPages, and topSources. It distinguishes itself from experiments and implicitly from funnels/paths/retention by describing the shape of the returned visit metrics. It does not explicitly name the sibling analytics tools, so differentiation is inferred rather than stated.

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?

It gives useful branch conditions: omit property to list every property with a 30-day summary, supply property for full reports, use by to group rows, compare for period deltas, segment to apply a saved segment. However, it never says when to prefer splithub_analytics_funnel, splithub_analytics_paths, splithub_analytics_retention, or splithub_analytics_realtime over this tool. The warning 'These are counts, not experiments: no verdicts' is a valuable usage constraint but is the only explicit exclusion.

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