Skip to main content
Glama
campfirein

@byterover/umami-mcp

by campfirein

@byterover/umami-mcp

A minimal, read-only Model Context Protocol server for Umami analytics — Cloud or self-hosted.

It exposes a small set of read tools (list sites, stats, time series, top metrics, live visitors) over stdio, so an MCP client such as Grove can let an agent answer questions about your web analytics. It issues no writes — there are no create/update/ delete tools, by design.

Why this exists

Community Umami MCP servers exist but have little usage and aren't reviewed by anyone we trust with an analytics credential. This is byterover's first-party, source-available wrapper: small enough to read end-to-end, read-only, and published with provenance. We dogfood it on our own landing-page analytics.

Related MCP server: umami-mcp-server

Install

npx @byterover/umami-mcp

Configure

Pick one mode via environment variables.

Umami Cloud — create a read-only API key at cloud.umami.is (Settings → API keys):

UMAMI_API_KEY=your_api_key

Self-hosted — point at your instance and provide a login:

UMAMI_API_URL=https://umami.example.com
UMAMI_USERNAME=your_username
UMAMI_PASSWORD=your_password

Advanced: UMAMI_API_URL overrides the base host (Cloud default https://api.umami.is) and UMAMI_API_PATH overrides the path prefix (Cloud /v1, self-hosted /api).

Use with Grove

Add it to your mcp.json as a stdio server (pin the version; keep the key in .env via a ${VAR} ref):

{
  "mcpServers": {
    "umami": {
      "command": "npx",
      "args": ["-y", "@byterover/umami-mcp@0.1.0"],
      "env": { "UMAMI_API_KEY": "${UMAMI_API_KEY}" }
    }
  }
}

Tools surface in Grove as umami__list_websites, umami__website_stats, etc.

Tools

Thirteen read tools covering essentially all of Umami's analytics reads — consolidated (one metrics tool spans ~10 dimensions; explore_event_data folds five endpoints behind a mode), never mirroring the REST API 1:1.

Discovery

Tool

What it returns

list_websites

Websites (id, name, domain) these credentials can see. Start here.

data_range

Earliest/latest timestamps with data — call before querying ranges.

Traffic & trends

Tool

What it returns

website_stats

Pageviews, visitors, visits, bounces, total time (with prior period).

pageviews_series

Pageviews/sessions time series, bucketed by hour/day/month/year.

realtime

Live activity in the last ~30 min (active visitors, recent views/events).

Breakdowns & events

Tool

What it returns

metrics

Top values for one dimension (url, referrer, browser, country, event, …); expanded=true adds engagement.

events_series

Custom-event time series over a range.

explore_event_data

Drill into event properties/values (mode: events / properties / fields / stats / values).

Sessions & journeys

Tool

What it returns

list_sessions

Individual visitor sessions (paginated, searchable).

session_detail

One session's summary + activity log + custom properties.

Analyses (compute-reads, POST — still read-only)

Tool

What it returns

funnel_report

Conversion funnel across ordered steps (paths/events).

retention_report

Return-visitor retention over the range (needs a timezone).

journey_report

Common navigation paths between a start and (optional) end step.

Range tools accept ISO startAt/endAt; report tools accept ISO startDate/endDate (e.g. 2026-07-01). Omit them for the last 7 days.

Develop

pnpm install
pnpm build       # tsc → dist/
pnpm typecheck
pnpm test        # keyless, network-free
pnpm lint

License

Elastic License 2.0 — © byterover.

Available Tools

13 tools
data_rangeA

The earliest and latest timestamps with collected data for a website. Call this before querying ranges so you don't ask for windows that have no data.

ParametersJSON Schema
NameRequiredDescriptionDefault
websiteIdYesThe website id, from list_websites.

TDQS

A4.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 full burden. It states it returns timestamps but does not disclose any behavioral details like read-only nature, authentication, or limits. It is minimally transparent.

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

Conciseness5/5

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

The description is concise: two sentences, front-loaded with purpose, and includes usage guidance without unnecessary words. It is efficient and well-structured.

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 the simple schema and no output schema, the description covers purpose, usage timing, and parameter source. It could be improved by specifying the return format, but it is sufficiently complete for its complexity.

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 100% with one parameter. The description adds value by specifying that the websiteId comes from the sibling tool list_websites, providing context beyond the schema's description.

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

Purpose5/5

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

The description clearly states the tool's purpose: returning the earliest and latest timestamps with collected data for a website. It uses specific verbs and resources, and the distinction from sibling tools like events_series or explore_event_data is clear.

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?

The description explicitly advises to call this before querying ranges to avoid asking for empty windows. It provides a clear use case but does not mention when not to use it or any alternatives.

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

events_seriesB

Time series of tracked custom events for a website over a date range, bucketed by unit.

ParametersJSON Schema
NameRequiredDescriptionDefault
unitNoBucket size (default day).
endAtNoRange end, ISO date. Optional; defaults to now.
startAtNoRange start, ISO date. Optional; defaults to 7 days ago.
timezoneNoIANA timezone (default UTC).
websiteIdYesThe website id, from list_websites.

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It only describes the output format (time series, bucketed) but fails to mention whether the tool is read-only, what happens with empty results, or any authorization or rate-limit considerations.

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?

The description is a single, front-loaded sentence that efficiently conveys the core purpose. It avoids fluff but could be slightly more structured to include key details like required parameters or usage hints. Overall, it earns its place without being overly long.

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

Completeness2/5

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

Given the lack of output schema and the moderate complexity of 5 parameters, the description is insufficient. It does not explain the returned time series format, default behaviors, or error handling. Sibling tools like metrics have richer descriptions, making this one feel incomplete.

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?

The input schema covers all parameters with descriptions (100% coverage), so the baseline is 3. The description adds minimal value beyond the schema by confirming the bucket unit aligns with the 'unit' parameter. However, it does not provide additional context like expected date format constraints or bucket behavior.

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

Purpose5/5

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

The description clearly states it returns a time series of custom events for a website over a date range, bucketed by unit. This distinguishes it from sibling tools like pageviews_series, which focuses on pageview events. The verb 'Time series' implies retrieval, and the resource and boundaries are well-defined.

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?

The description provides no guidance on when to use this tool versus alternatives like explore_event_data or funnel_report. It does not state prerequisites, limitations, or conditions where a different tool should be chosen, leaving the agent without decision support.

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

explore_event_dataB

Drill into custom-event PROPERTIES (not just counts over time). Modes: events = event names + counts; properties = property names per event; fields = property/value counts; stats = totals; values = counts for one event+property (both required for this mode).

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoWhich event-data view (default events).
endAtNoRange end, ISO date. Optional; defaults to now.
eventNoEvent name (required for mode=values; optional filter for mode=events).
startAtNoRange start, ISO date. Optional; defaults to 7 days ago.
websiteIdYesThe website id, from list_websites.
propertyNameNoProperty name (required for mode=values).

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden for behavioral traits. It does not disclose whether the tool is read-only, requires authentication, or any side effects. The mode descriptions only hint at functionality but do not address behavior beyond parameter requirements.

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

Conciseness5/5

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

The description is extremely concise: one sentence with a semicolon-separated list of modes. The main action is front-loaded ('Drill into custom-event PROPERTIES'), and every word serves a purpose. No unnecessary text.

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?

For a tool with 6 parameters, multiple modes, no output schema, and no annotations, the description covers mode options but lacks details on return format, pagination, limits, or prerequisites (e.g., having event data). It is adequate but not fully complete given the complexity.

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?

Although schema coverage is 100%, the description adds value by explaining mode-dependent parameter requirements (e.g., 'values' mode requires both 'event' and 'propertyName'). It also groups mode options in prose, which is not present in the schema.

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 states the tool drills into custom-event properties, distinguishing from simple counts over time. It lists five modes that specify the type of data returned, giving a specific verb+resource. However, it does not explicitly differentiate from sibling tools like events_series or metrics.

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?

The description implies usage via mode descriptions (e.g., use 'values' mode for specific event+property counts), but it lacks explicit guidance on when to use this tool versus alternatives or when not to use it. No exclusions or prerequisites are mentioned.

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

funnel_reportB

Conversion funnel: given an ordered list of steps (each a page path or an event), how many visitors reach each step and where they drop off. Minimum two steps.

ParametersJSON Schema
NameRequiredDescriptionDefault
stepsYesOrdered funnel steps (>= 2).
windowNoDays allowed between steps to count as a conversion.
endDateNoReport end, ISO date. Optional; defaults to today.
startDateNoReport start, ISO date. Optional; defaults to 7 days ago.
websiteIdYesThe website id, from list_websites.

TDQS

B3.4/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It discloses the basic behavior (funnel calculation, step ordering, conversion and drop-off reporting) but does not mention security, auth needs, rate limits, or whether it is read-only (likely read-only). Adequate but not thorough.

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

Conciseness5/5

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

Single sentence, front-loaded with purpose, no unnecessary words. Efficiently communicates the tool's function and key constraint (min two steps).

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?

No output schema, so description should ideally outline return format. It implies output (counts per step, drop-off) but lacks explicit structure details. Moderate complexity; the description is sufficient for basic use but incomplete for advanced use.

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 100%, so baseline is 3. Description adds context for 'steps' by clarifying they are an ordered list of page paths or events and that minimum two steps are required. This adds meaning beyond the schema descriptions.

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?

Description clearly states it's a conversion funnel analysis tool with specific verb and resource ('Conversion funnel'). It explains what the tool does (count visitors per step, drop-off points). However, it does not explicitly distinguish from sibling tools like journey_report, which may serve similar analysis.

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?

No guidance on when to use this tool versus alternatives. The only usage hint is 'Minimum two steps,' which is a constraint but not a use-case directive. No explicit when-not-to-use or alternative tool mentions.

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

journey_reportC

User journeys: the common navigation paths between a starting step and an (optional) ending step, over a chosen number of steps (3–7).

ParametersJSON Schema
NameRequiredDescriptionDefault
stepsNoNumber of journey steps, 3 to 7.
endDateNoReport end, ISO date. Optional; defaults to today.
endStepNoOptional ending step: a URL path or event name.
startDateNoReport start, ISO date. Optional; defaults to 7 days ago.
startStepYesStarting step: a URL path or event name.
websiteIdYesThe website id, from list_websites.

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description carries full burden but only states the output is 'common navigation paths.' It does not disclose behavior like what happens if no paths are found, performance implications, or authentication needs.

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 a single sentence front-loaded with 'User journeys,' which is efficient but too sparse for a tool with 6 parameters and no output schema. It could include more value without being verbose.

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

Completeness2/5

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

Given the tool's complexity (6 parameters, no output schema, no annotations) and sibling tools, the description is incomplete. It does not explain return values, limitations, or differences from funnel_report.

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 coverage is 100% so baseline is 3. The description adds minimal meaning by mentioning the role of startStep and endStep, but the schema already describes parameters adequately. No additional constraints or format details.

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 states the tool returns 'common navigation paths between a starting step and an (optional) ending step over a chosen number of steps (3–7).' It uses a specific verb ('user journeys') and resource, but does not explicitly distinguish from sibling tools like funnel_report.

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?

No guidance is provided on when to use this tool versus alternatives such as funnel_report or pageviews_series. There is no mention of prerequisites or context.

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

list_sessionsA

List individual visitor sessions for a website over a date range (paginated). Each session carries browser/OS/device, geo, and visit/view/event counts. Use it to answer per-visitor questions.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (default 1).
endAtNoRange end, ISO date. Optional; defaults to now.
searchNoFree-text search over sessions.
startAtNoRange start, ISO date. Optional; defaults to 7 days ago.
pageSizeNoResults per page (default 20).
websiteIdYesThe website id, from list_websites.

TDQS

A3.6/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 mentions pagination and that sessions carry counts, which are useful behavioral traits. However, it lacks details on rate limits, authentication requirements, or error conditions, making it moderately transparent.

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

Conciseness5/5

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

The description is two sentences long, front-loading the purpose and structure in the first sentence and adding a use case in the second. Every sentence contributes value without redundancy.

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?

Despite no output schema, the description lists key data fields (browser/OS/device, geo, visit/view/event counts), providing sufficient context for a listing tool. It covers the main parameters (date range, pagination) but could mention the search and size parameters more explicitly.

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%, so the baseline is 3. The description adds context about the date range and pagination, but does not go beyond the schema's parameter descriptions in adding new meaning. It does not explain the 'search' parameter or format expectations in more detail.

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 states it lists individual visitor sessions for a website over a date range, paginated, and specifies the data each session carries (browser/OS/device, geo, visit/view/event counts). However, it does not explicitly differentiate from sibling tools like session_detail or explore_event_data, slightly reducing clarity.

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?

The description provides a use case ('Use it to answer per-visitor questions'), which gives some guidance on when to use the tool. However, it does not mention when not to use it or provide alternatives, leaving gaps in usage guidance.

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

list_websitesA

List the websites (id, name, domain) visible to these credentials. Start here to get a websiteId.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior2/5

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

No annotations provided; description carries full burden. Only mentions 'visible to these credentials' for authorization context, but lacks details on rate limits, side effects, or other behavioral traits.

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

Conciseness5/5

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

Two concise sentences earning their place: first states purpose and return fields, second provides usage hint. No redundant information.

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?

Describes return fields (id, name, domain) but lacks details on ordering, pagination, or limits. Given no output schema and simple nature, it's fairly complete for its purpose.

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?

No parameters exist (empty schema), so baseline is 4. Description adds value by listing return fields (id, name, domain), which is meaningful beyond the schema.

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

Purpose5/5

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

Clearly states verb 'List', resource 'websites', and specifies returned fields (id, name, domain). Distinguishes from siblings by indicating it's a starting point to get websiteId.

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?

Explicitly says 'Start here to get a websiteId', implying this is the entry point for tools requiring websiteId. Does not explicitly state when not to use or mention alternatives.

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

metricsA

Top values for one dimension of a website's traffic over a date range — e.g. type=url for top pages, type=referrer for top referrers, type=browser / os / device / country / event. Set expanded=true for engagement detail (visitors, visits, bounce, duration per row).

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYesWhich dimension to rank.
endAtNoRange end, ISO date. Optional; defaults to now.
limitNoMax rows (default 20).
startAtNoRange start, ISO date. Optional; defaults to 7 days ago.
expandedNoReturn engagement-rich rows (default false).
websiteIdYesThe website id, from list_websites.

TDQS

A3.5/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 full burden. It explains the 'expanded' parameter for engagement detail and the date range, but lacks disclosure on rate limits, error behavior, or what happens with empty results. Adequate but not comprehensive.

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?

The description is a single, front-loaded sentence with examples. It is concise and every part contributes to understanding. Slightly more structure (e.g., bullet points) could improve readability, but it is efficient.

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 that all parameters are described in the schema (100% coverage) and no output schema exists, the description adequately covers the tool's purpose and key behavior. It is complete enough for a simple data retrieval tool, though it could mention default limit or date range behavior.

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 coverage is 100%, so baseline is 3. The description adds context for the 'type' parameter with examples and explains 'expanded', but does not add significant meaning beyond the schema for other parameters.

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 states it returns top values for one dimension of website traffic over a date range, with examples like 'type=url' for top pages. It distinguishes the tool as a single-dimension ranking tool, though it does not explicitly differentiate from siblings like 'events_series' or 'funnel_report'.

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?

The description implies usage through examples but provides no explicit guidance on when to use this tool versus alternatives like 'data_range' or 'realtime'. No exclusions or prerequisites are mentioned.

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

pageviews_seriesB

Time series of pageviews and sessions for a website over a date range, bucketed by unit.

ParametersJSON Schema
NameRequiredDescriptionDefault
unitNoBucket size (default day).
endAtNoRange end, ISO date. Optional; defaults to now.
startAtNoRange start, ISO date. Optional; defaults to 7 days ago.
timezoneNoIANA timezone, e.g. America/New_York (default UTC).
websiteIdYesThe website id, from list_websites.

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It does not disclose any behavioral traits such as read-only nature, auth requirements, rate limits, pagination, or whether data is cumulative. It only states the output is a time series, which is insufficient for full transparency.

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?

The description is a single concise sentence with no wasted words. However, it is slightly too brief; adding a sentence about the output structure would improve without impacting conciseness significantly.

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

Completeness2/5

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

Given the moderate complexity (5 parameters, no output schema, no annotations), the description is incomplete. It does not describe the format of the time series (e.g., list of objects with timestamp and metrics), ordering, or how data is aggregated. An agent cannot reliably parse the output without additional assumptions.

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%, so baseline is 3. The description adds little beyond the schema: it confirms that the unit parameter controls bucketing, but the schema already says 'Bucket size (default day).' No additional meaning is provided for other parameters.

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

Purpose5/5

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

The description clearly states the tool returns a 'time series of pageviews and sessions' for a website, specifying the key metrics and that it is bucketed by unit. This distinguishes it from siblings like events_series (which focuses on events) or funnel_report (which is about funnels).

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?

No guidance is provided on when to use this tool versus alternatives such as events_series or metrics. There are no prerequisites, exclusions, or context about appropriate use cases, leaving the agent to guess.

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

realtimeA

Live activity for a website over the last ~30 minutes: active visitors, recent views and events.

ParametersJSON Schema
NameRequiredDescriptionDefault
websiteIdYesThe website id, from list_websites.

TDQS

A3.5/5.0
Behavior2/5

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

No annotations provided, so description must disclose behavioral traits. It does not indicate whether the tool is read-only, destructive, or has side effects. 'Live activity' suggests a read operation, but this is not explicit, leaving ambiguity.

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

Conciseness5/5

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

Single sentence efficiently conveys the tool's purpose, time range, and data types. Front-loaded with key information, no redundant text.

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?

Given the simple one-parameter input and no output schema, the description gives a reasonable overview. However, it lacks details on output format or pagination, and does not specify if the data updates automatically or is a snapshot.

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 parameter 'websiteId' described as 'The website id, from list_websites.' The tool description adds no further meaning beyond the schema, so baseline score of 3 is appropriate.

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

Purpose5/5

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

Description clearly states the tool provides live activity data for a website, including active visitors, recent views, and events, over the last ~30 minutes. It distinguishes from sibling tools like metrics or pageviews_series by focusing on real-time data.

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?

The description implies use for real-time queries by specifying 'last ~30 minutes' but does not explicitly state when to use this tool versus others like data_range or events_series for historical data. No exclusionary language or alternative suggestions.

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

retention_reportC

Retention: of the visitors first seen in the range, what fraction return on each subsequent day. Requires a timezone.

ParametersJSON Schema
NameRequiredDescriptionDefault
endDateNoReport end, ISO date. Optional; defaults to today.
timezoneYesIANA timezone, e.g. America/New_York.
startDateNoReport start, ISO date. Optional; defaults to 7 days ago.
websiteIdYesThe website id, from list_websites.

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of disclosing behavioral traits. It only states the core computation and timezone requirement, omitting details like data aggregation, performance implications, or authorization needs. More context is needed for an agent to invoke this correctly.

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

Conciseness5/5

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

The description is extremely concise at two sentences. It front-loads the purpose and immediately gives a key requirement. Every word earns its place; no redundancy.

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

Completeness2/5

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

Given lack of output schema and moderate complexity (time series computation), the description is insufficiently complete. It does not explain the output format, how to interpret return fractions, or how date range boundaries are handled. Siblings like funnel_report likely have more structured descriptions.

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%, so baseline is 3. The description adds the context that retention is based on 'visitors first seen in the range', which is not in the schema, providing slight extra value. However, it does not elaborate on parameter usage beyond what the schema already states.

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 states it computes the fraction of visitors returning on each subsequent day for those first seen in the range, effectively defining the metric and scope. However, it does not explicitly differentiate from sibling tools like funnel_report or journey_report.

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?

The description mentions a requirement (timezone) but provides no guidance on when to use this tool versus alternatives, nor any conditions or exclusions. The agent has little context to decide between retention_report and other analytics tools.

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

session_detailA

Everything about one session: its summary, its activity log (the pages/events in order), and its custom properties — fetched together. Get a sessionId from list_sessions first.

ParametersJSON Schema
NameRequiredDescriptionDefault
endAtNoRange end, ISO date. Optional; defaults to now.
startAtNoRange start, ISO date. Optional; defaults to 7 days ago.
sessionIdYesThe session id, from list_sessions.
websiteIdYesThe website id, from list_websites.

TDQS

A3.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It mentions that data is fetched together, but does not disclose behavioral traits such as rate limits, error conditions, or whether the operation is read-only. The return structure is described vaguely.

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

Conciseness5/5

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

The description is concise, with two sentences that efficiently convey purpose and prerequisite. Every sentence adds value without redundancy.

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 no output schema, the description explains return values (summary, activity log, custom properties). It includes a prerequisite but lacks details on error handling or size limits. It is adequate but could be more complete.

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 coverage is 100%, so the baseline is 3. The description does not add any additional meaning to the parameters beyond what is already in the schema.

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

Purpose5/5

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

The description clearly states what the tool does: fetches the summary, activity log, and custom properties of a single session. It uses specific verbs ('fetched together') and resource ('one session'), distinguishing it from sibling tools like list_sessions which list sessions.

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?

The description provides context by stating 'Get a sessionId from list_sessions first', indicating a prerequisite. However, it does not explicitly state when not to use this tool or provide alternatives.

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

website_statsA

Summary metrics for one website over a date range: pageviews, visitors, visits, bounces, total time (each with the prior-period value for comparison).

ParametersJSON Schema
NameRequiredDescriptionDefault
endAtNoRange end, ISO date. Optional; defaults to now.
startAtNoRange start, ISO date. Optional; defaults to 7 days ago.
websiteIdYesThe website id, from list_websites.

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility for disclosing behavioral traits. It describes output (metrics with prior-period comparison) but fails to mention error handling, authentication requirements, rate limits, or that it is a read-only operation. The description adds minimal behavioral context beyond the schema.

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

Conciseness5/5

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

The description is a single sentence that efficiently conveys the tool's purpose and output, listing relevant metrics without extraneous information. It is well-structured and front-loaded.

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 tool with 3 parameters and no output schema, the description provides a clear picture of what metrics are returned (pageviews, visitors, etc., with prior-period comparison). It is complete enough for a summary statistics tool, though the sibling set indicates more analytical tools exist. No output schema is needed given the description.

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%: each parameter has a clear description (e.g., 'Range end, ISO date. Optional; defaults to now.'). The description adds no additional semantics beyond the schema, so a baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool provides 'summary metrics for one website over a date range' and lists specific metrics like pageviews, visitors, etc., with prior-period comparison. This verb+resource combination is specific and distinguishes it from siblings like 'pageviews_series' (time series) and 'metrics' (general), as well as exploration tools.

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?

The description implies usage for obtaining summary statistics over a date range but does not explicitly state when to use this tool versus alternatives like 'funnel_report' or 'retention_report'. No exclusions or comparative context is provided.

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

TDQS

A3.7/5.0
Disambiguation5/5

Each tool targets a distinct area of Umami analytics (time series, events, sessions, reports, etc.) with clear boundaries. The few overlaps, like metrics vs website_stats, are differentiated by purpose (top values vs summary aggregates).

Naming Consistency5/5

All tool names are lowercase snake_case, following a consistent pattern of verb_noun (e.g., list_websites, explore_event_data) or descriptive compound nouns (e.g., funnel_report, data_range). No mixing of styles or conventions.

Tool Count5/5

13 tools is well-scoped for an analytics server, covering all major data categories (pageviews, events, sessions, reports, realtime, website info) without unnecessary bloat or too few options.

Completeness5/5

The tool set covers all core Umami functionalities: website listing, stats, time series for pageviews and events, session exploration, funnel/journey reports, retention, realtime, and data boundaries. No obvious gaps for a read-only analytics API.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Read-only MCP server for Umami analytics. It talks to the Umami REST API directly over HTTP, supporting self-hosted and cloud setups.
    8
    17
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    An MCP server that gives Claude read access to Umami web analytics, allowing natural language queries for stats, breakdowns, pageview trends, live visitors, and user journeys.
    10
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server for Umami Analytics that provides read-only tools to query website stats, events, sessions, reports, and more, enabling natural language analytics queries.
    30
    3
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/campfirein/umami-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server