Skip to main content
Glama
umami-mcp

umami-mcp

by mikusnuz

get_stats

Retrieve summary website statistics—pageviews, visitors, visits, bounces, and total time—with optional filters by path, event, referrer, hostname, segment, or custom Umami filters.

Instructions

Get summary statistics for a website (pageviews, visitors, visits, bounces, totaltime)

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "websiteId": "<websiteId>",
      "startAt": "<startAt>",
      "endAt": "<endAt>"
    },
    "name": "get_stats"
  }
}

Input Schema

NameRequiredDescriptionDefault
pathNoFilter by URL path
endAtYesEnd timestamp in milliseconds
eventNoFilter by event name
filtersNoAdditional Umami v3 filters such as country, device, browser, tag, UTM fields, segment, or cohort
segmentNoSaved segment UUID
startAtYesStart timestamp in milliseconds
hostnameNoFilter by hostname
referrerNoFilter by referrer
websiteIdYesWebsite UUID

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changedv2.1.1
    • addedInput schema / properties / event
      Added value: +{
      +  "description": "Filter by event name",
      +  "type": "string"
      +}
    • addedInput schema / properties / filters
      Added value: +{
      +  "additionalProperties": {
      +    "type": [
      +      "string",
      +      "number",
      +      "boolean"
      +    ]
      +  },
      +  "description": "Additional Umami v3 filters such as country, device, browser, tag, UTM fields, segment, or cohort",
      +  "type": "object"
      +}
    • addedInput schema / properties / hostname
      Added value: +{
      +  "description": "Filter by hostname",
      +  "type": "string"
      +}
    • addedInput schema / properties / path
      Added value: +{
      +  "description": "Filter by URL path",
      +  "type": "string"
      +}
    • addedInput schema / properties / segment
      Added value: +{
      +  "description": "Saved segment UUID",
      +  "format": "uuid",
      +  "type": "string"
      +}
    • removedInput schema / properties / url
      Removed value: -{
      -  "description": "Filter by URL path",
      -  "type": "string"
      -}
  2. First observedv1.2.1

TDQS

B3.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden; it does disclose the shape of the result (the five summary metrics), which is genuine value. However, it omits aggregation semantics, timezone handling for the millisecond timestamps, behavior on empty ranges, and the fact that it is a read-only query.

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

Conciseness4/5

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

A single compact sentence with the resource and the returned metrics front-loaded; no wasted words. It is arguably too terse rather than too long.

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

Completeness3/5

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

With 9 parameters, a nested filters object, no output schema, and no annotations, the description should say more about the return structure and aggregation. Naming the five metrics is a helpful partial substitute for the missing output schema, but the definitions of 'bounces' or 'totaltime' remain unexplained.

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 100% with all 9 parameters documented, including the nested filters object, so the schema does the heavy lifting. The description adds nothing about the required websiteId/startAt/endAt triple or how filters/segment interact with the summary totals.

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 (Get) and resource (summary statistics for a website), and enumerates the concrete metrics returned (pageviews, visitors, visits, bounces, totaltime). It does not distinguish itself from near-siblings such as get_metrics, get_pageviews, or get_session_stats, so an agent must infer the boundary.

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

Usage Guidelines2/5

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

There is no guidance on when to use this versus get_metrics, get_pageviews, get_session_stats, or get_revenue_stats, nor any note on prerequisites or scope. The agent is left to guess from the name alone.

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

Deploy Server

Other Tools