Skip to main content
Glama

Umami breakdown report

umami_report
Read-onlyIdempotent

Any Umami breakdown for one website: by path, entry, exit, title, query, referrer, channel, domain, hostname, country, region, city, device, browser, os, language, screen, event, tag, utmSource, utmMedium, utmCampaign, utmContent, utmTerm; with filters (all must match) such as {"path": "/pricing"}, {"country": "PT"}, {"event": "sign_up"}, {"utmSource": "newsletter"}, {"referrer": "google.com"}. Also returns the totals under the same filters, and with daily: true the day-by-day visits and views under them. Examples: where signups came from = type referrer or channel with filters {"event": "sign_up"}; which pages people land on from Google = type entry with filters {"referrer": "google.com"}.

Input Schema

NameRequiredDescriptionDefault
daysNoThe last N days up to now, default 28, at most 730.
typeNoWhat to break the traffic down by. Default path.
dailyNoAlso the day-by-day series under the filters.
limitNoRows, default 50, at most 500.
filtersNoOptional. Keys: path, referrer, title, query, os, browser, device, country, region, city, hostname, language, event, tag, utmSource, utmMedium, utmCampaign, utmContent, utmTerm.
websiteNoThe website's name, domain or id in Umami. Optional when Umami has one website.
end_dateNoLike 2026-09-30, inclusive.
start_dateNoLike 2026-09-01 (UTC day). With end_date instead of days.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds real behavioral context beyond that: filters are conjunctive ('all must match'), totals are returned under the same filters, and daily: true produces a day-by-day series. It does not describe output shape or how limit interacts with the data, keeping it from a 5.

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?

The description is one dense run-on sentence with a 24-item enumeration that duplicates the schema's type enum, followed by filter examples and then the usage examples. It is information-rich and front-loaded with the core purpose, but the type list and duplicated filter-key list inflate it without adding much beyond the schema.

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 an 8-parameter, zero-required, read-only tool with no output schema, the description covers the essential calling semantics: what can be broken down, how filters combine, that totals accompany the breakdown, and that daily toggles a time series. It leaves the return structure (rows, totals shape) and limit/pagination behavior implicit, but annotations carry the safety profile and the schema carries parameter details.

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 description coverage is 100%, so the baseline is 3 and the schema already documents every parameter's format and defaults. The description adds genuine value on top: it clarifies that filters combine with AND semantics and gives concrete filter objects ({"path": "/pricing"}, {"utmSource": "newsletter"}) showing accepted key/value shape. The large type enumeration is largely redundant with the schema enum.

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 and resource ('Any Umami breakdown for one website') and enumerates the full set of breakdown dimensions, so an agent immediately knows this is the flexible breakdown tool rather than the fixed-summary umami_overview or the live umami_realtime. It does not explicitly name those siblings, but the 'breakdown by X' framing is distinctive enough to differentiate.

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

Usage Guidelines4/5

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

Provides two concrete scenario examples ('where signups came from = type referrer or channel with filters {"event": "sign_up"}'; 'which pages people land on from Google = type entry with filters {"referrer": "google.com"}'), which is strong when-to-use guidance. It stops short of stating when NOT to use it versus umami_overview/umami_realtime, so it is not a full 5.

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