Skip to content

Pirsch Analytics MCP by usefulapi

by usefulapi.io · remote · no sign-in to list tools · v1.3.3 · published by io.usefulapi

Read Pirsch web analytics: visitors, pages, referrers, UTM, events, funnels and sessions.

Read only

27 tools: 27 only read.

Scanned Oct 21, 2026

1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http pirsch https://pirsch.usefulapi.io/mcp

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • The description contains "every other tool", wording about other tools or servers.

    Matched text

    description: "...ne and role. Use the id as domain_id in every other tool. A dashboard-level client sees one doma..."

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

27 tools

Only reads 27Claude Code: allow
  • pirsch_get_active_visitorsVisitors on the site right now (or in the past n seconds), with the pages they are on and their countries.No findings

    Why it is in this group

    • The name "pirsch_get_active_visitors" says "get": a word for reading.
    Description, as the server wrote it
    Visitors on the site right now (or in the past n seconds), with the pages they are on and their countries. GET /api/v1/statistics/active.

    Annotations the server declares

    • title: Get active visitors
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • pirsch_get_domainOne Pirsch dashboard (domain) by id, with its time zone, hostname, role and subscription state.No findings

    Why it is in this group

    • The name "pirsch_get_domain" says "get": a word for reading.
    Description, as the server wrote it
    One Pirsch dashboard (domain) by id, with its time zone, hostname, role and subscription state. GET /api/v1/domain?id=.

    Annotations the server declares

    • title: Get domain
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • pirsch_get_durationAverage session duration over time, or average time on page over time, in seconds.No findings

    Why it is in this group

    • The name "pirsch_get_duration" says "get": a word for reading.
    Description, as the server wrote it
    Average session duration over time, or average time on page over time, in seconds. GET /api/v1/statistics/duration/session or /duration/page.

    Annotations the server declares

    • title: Get time spent
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • pirsch_get_event_breakdownThe values of one metadata key of one event, with count, visitors and conversion rate.No findings

    Why it is in this group

    • The name "pirsch_get_event_breakdown" says "get": a word for reading.
    Description, as the server wrote it
    The values of one metadata key of one event, with count, visitors and conversion rate. Both event and event_meta_key are required. GET /api/v1/statistics/event/meta.

    Annotations the server declares

    • title: Get event metadata breakdown
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • pirsch_get_funnelVisitors per funnel step for a period: visitors, share of the first step, drop-off between steps.No findings

    Why it is in this group

    • The name "pirsch_get_funnel" says "get": a word for reading.
    Description, as the server wrote it
    Visitors per funnel step for a period: visitors, share of the first step, drop-off between steps. The filter applies to the first step. GET /api/v1/statistics/funnel.

    Annotations the server declares

    • title: Get funnel statistics
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • pirsch_get_growthGrowth of visitors, views, sessions, bounces, time spent and conversion rate compared with the previous period of the same length.No findings

    Why it is in this group

    • The name "pirsch_get_growth" says "get": a word for reading.
    Description, as the server wrote it
    Growth of visitors, views, sessions, bounces, time spent and conversion rate compared with the previous period of the same length. GET /api/v1/statistics/growth.

    Annotations the server declares

    • title: Get growth rates
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • pirsch_get_overviewQuick overview of a dashboard: visitors, views, growth compared with the previous period, a visitors time series and the number of team members.No findings

    Why it is in this group

    • The name "pirsch_get_overview" says "get": a word for reading.
    Description, as the server wrote it
    Quick overview of a dashboard: visitors, views, growth compared with the previous period, a visitors time series and the number of team members. Cached by Pirsch; takes no date range or filters. GET /api/v1/statistics/overview.

    Annotations the server declares

    • title: Get overview
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • pirsch_get_platformsVisitors on desktop, mobile and unknown platforms, as counts and shares.No findings

    Why it is in this group

    • The name "pirsch_get_platforms" says "get": a word for reading.
    Description, as the server wrote it
    Visitors on desktop, mobile and unknown platforms, as counts and shares. GET /api/v1/statistics/platform.

    Annotations the server declares

    • title: Get platform split
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • pirsch_get_sessionAll page views and events of one session in time order.No findings

    Why it is in this group

    • The name "pirsch_get_session" says "get": a word for reading.
    Description, as the server wrote it
    All page views and events of one session in time order. Both ids come from pirsch_list_sessions. GET /api/v1/statistics/session/details.

    Annotations the server declares

    • title: Get session details
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • pirsch_get_tag_breakdownThe values of one tag key with views and share.No findings

    Why it is in this group

    • The name "pirsch_get_tag_breakdown" says "get": a word for reading.
    Description, as the server wrote it
    The values of one tag key with views and share. The tag filter (the key) is required. GET /api/v1/statistics/tag/details.

    Annotations the server declares

    • title: Get tag breakdown
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • pirsch_get_time_distributionVisitors by hour of the day, by minute (only when from and to are the same day), or by weekday and hour (Monday is 0).No findings

    Why it is in this group

    • The name "pirsch_get_time_distribution" says "get": a word for reading.
    Description, as the server wrote it
    Visitors by hour of the day, by minute (only when from and to are the same day), or by weekday and hour (Monday is 0). Shows when traffic peaks. GET /api/v1/statistics/hours, /minutes or /weekdays.

    Annotations the server declares

    • title: Get visitors by time
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • pirsch_get_totalsTotals for a period: visitors, views, sessions, bounces, bounce rate and conversion rate.No findings

    Why it is in this group

    • The name "pirsch_get_totals" says "get": a word for reading.
    Description, as the server wrote it
    Totals for a period: visitors, views, sessions, bounces, bounce rate and conversion rate. Not grouped by day, so returning visitors are counted once. GET /api/v1/statistics/total.

    Annotations the server declares

    • title: Get total visitors
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • pirsch_get_visitors_time_seriesVisitors, views, sessions, bounces and bounce rate per day, week, month or year (see scale).No findings

    Why it is in this group

    • The name "pirsch_get_visitors_time_series" says "get": a word for reading.
    Description, as the server wrote it
    Visitors, views, sessions, bounces and bounce rate per day, week, month or year (see scale). Use it for traffic charts and trends. GET /api/v1/statistics/visitor.

    Annotations the server declares

    • title: Get visitors time series
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • pirsch_list_devicesVisitors per browser, browser version, operating system or screen class (XXL to S).No findings

    Why it is in this group

    • The name "pirsch_list_devices" says "list": a word for reading.
    Description, as the server wrote it
    Visitors per browser, browser version, operating system or screen class (XXL to S). Filters narrow the data (for example country=de, path=~blog). Results are rows with visitors, views, sessions, bounces and relative shares. GET /api/v1/statistics/browser, /browser/version, /os or /screen.

    Annotations the server declares

    • title: List browsers, operating systems and screens
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • pirsch_list_domainsList the Pirsch dashboards (domains) the OAuth client can read: id, hostname, display name, time zone and role.1 finding

    Why it is in this group

    • The name "pirsch_list_domains" says "list": a word for reading.

    Findings

    • Warn

      The description contains "every other tool", wording about other tools or servers.

      Matched text

      description: "...ne and role. Use the id as domain_id in every other tool. A dashboard-level client sees one doma..."

      What this check looks for
    Description, as the server wrote it
    List the Pirsch dashboards (domains) the OAuth client can read: id, hostname, display name, time zone and role. Use the id as domain_id in every other tool. A dashboard-level client sees one domain; an account-level client sees all. GET /api/v1/domain.

    Annotations the server declares

    • title: List domains
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • pirsch_list_event_pagesThe pages on which an event was triggered, with visitors and views.No findings

    Why it is in this group

    • The name "pirsch_list_event_pages" says "list": a word for reading.
    Description, as the server wrote it
    The pages on which an event was triggered, with visitors and views. The event name is required. GET /api/v1/statistics/event/page.

    Annotations the server declares

    • title: List pages of an event
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • pirsch_list_eventsCustom events with count, visitors, views, conversion rate, average duration and their metadata keys.No findings

    Why it is in this group

    • The name "pirsch_list_events" says "list": a word for reading.
    Description, as the server wrote it
    Custom events with count, visitors, views, conversion rate, average duration and their metadata keys. Use pirsch_get_event_breakdown for the values of one metadata key. GET /api/v1/statistics/events.

    Annotations the server declares

    • title: List events
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • pirsch_list_filter_valuesThe values that exist for a filter in a period, such as all page paths, referrers, countries, browsers or event names.No findings

    Why it is in this group

    • The name "pirsch_list_filter_values" says "list": a word for reading.
    Description, as the server wrote it
    The values that exist for a filter in a period, such as all page paths, referrers, countries, browsers or event names. Use it to find valid values before filtering. GET /api/v1/statistics/options/{dimension}.

    Annotations the server declares

    • title: List filter values
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • pirsch_list_funnelsThe funnels defined for a dashboard, with their steps and step filters.No findings

    Why it is in this group

    • The name "pirsch_list_funnels" says "list": a word for reading.
    Description, as the server wrote it
    The funnels defined for a dashboard, with their steps and step filters. Use a funnel id in pirsch_get_funnel. GET /api/v1/funnel.

    Annotations the server declares

    • title: List funnels
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • pirsch_list_geographyVisitors per country, region, city or language.No findings

    Why it is in this group

    • The name "pirsch_list_geography" says "list": a word for reading.
    Description, as the server wrote it
    Visitors per country, region, city or language. Filters narrow the data (for example country=de, path=~blog). Results are rows with visitors, views, sessions, bounces and relative shares. GET /api/v1/statistics/country, /region, /city or /language.

    Annotations the server declares

    • title: List countries, regions, cities and languages
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • pirsch_list_goalsConversion goals with their definition (page pattern, event, targets) and the visitors, views and conversion rate for the period.No findings

    Why it is in this group

    • The name "pirsch_list_goals" says "list": a word for reading.
    Description, as the server wrote it
    Conversion goals with their definition (page pattern, event, targets) and the visitors, views and conversion rate for the period. GET /api/v1/statistics/goals.

    Annotations the server declares

    • title: List conversion goals
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • pirsch_list_hostnamesTraffic per hostname.No findings

    Why it is in this group

    • The name "pirsch_list_hostnames" says "list": a word for reading.
    Description, as the server wrote it
    Traffic per hostname. Mostly useful for rollup views that combine several hostnames. GET /api/v1/statistics/hostname.

    Annotations the server declares

    • title: List hostnames
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • pirsch_list_pagesTop pages with visitors, views, sessions, bounces, bounce rate and average time on page.No findings

    Why it is in this group

    • The name "pirsch_list_pages" says "list": a word for reading.
    Description, as the server wrote it
    Top pages with visitors, views, sessions, bounces, bounce rate and average time on page. type=entry lists landing pages, type=exit lists exit pages. Filters narrow the data (for example country=de, path=~blog). Results are rows with visitors, views, sessions, bounces and relative shares. GET /api/v1/statistics/page, /page/entry or /page/exit.

    Annotations the server declares

    • title: List pages
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • pirsch_list_referrersWhere visitors come from: referrers (by=referrer) or traffic channels such as Organic Search and Paid Search (by=channel).No findings

    Why it is in this group

    • The name "pirsch_list_referrers" says "list": a word for reading.
    Description, as the server wrote it
    Where visitors come from: referrers (by=referrer) or traffic channels such as Organic Search and Paid Search (by=channel). Filters narrow the data (for example country=de, path=~blog). Results are rows with visitors, views, sessions, bounces and relative shares. GET /api/v1/statistics/referrer or /channel.

    Annotations the server declares

    • title: List referrers
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • pirsch_list_sessionsIndividual visitor sessions: start, duration, entry and exit page, page views, bounce, country, city, referrer, browser, OS and UTM data.No findings

    Why it is in this group

    • The name "pirsch_list_sessions" says "list": a word for reading.
    Description, as the server wrote it
    Individual visitor sessions: start, duration, entry and exit page, page views, bounce, country, city, referrer, browser, OS and UTM data. visitor_id is a string (a 64-bit number). Use pirsch_get_session for one session's page views and events. GET /api/v1/statistics/session/list.

    Annotations the server declares

    • title: List sessions
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • pirsch_list_tagsTag keys with views and share.No findings

    Why it is in this group

    • The name "pirsch_list_tags" says "list": a word for reading.
    Description, as the server wrote it
    Tag keys with views and share. Use pirsch_get_tag_breakdown to see the values of one key. GET /api/v1/statistics/tags.

    Annotations the server declares

    • title: List tags
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • pirsch_list_utmVisitors per UTM source, medium, campaign, content or term.No findings

    Why it is in this group

    • The name "pirsch_list_utm" says "list": a word for reading.
    Description, as the server wrote it
    Visitors per UTM source, medium, campaign, content or term. Filters narrow the data (for example country=de, path=~blog). Results are rows with visitors, views, sessions, bounces and relative shares. GET /api/v1/statistics/utm/{dimension}.

    Annotations the server declares

    • title: List UTM parameters
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.3.3. Values in angle brackets are yours to fill in.

claude mcp add --transport http pirsch https://pirsch.usefulapi.io/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__pirsch__pirsch_list_domains",
      "mcp__pirsch__pirsch_get_domain",
      "mcp__pirsch__pirsch_get_overview",
      "mcp__pirsch__pirsch_get_totals",
      "mcp__pirsch__pirsch_get_visitors_time_series",
      "mcp__pirsch__pirsch_get_growth",
      "mcp__pirsch__pirsch_get_active_visitors",
      "mcp__pirsch__pirsch_get_time_distribution",
      "mcp__pirsch__pirsch_get_duration",
      "mcp__pirsch__pirsch_list_pages",
      "mcp__pirsch__pirsch_list_hostnames",
      "mcp__pirsch__pirsch_list_referrers",
      "mcp__pirsch__pirsch_list_utm",
      "mcp__pirsch__pirsch_list_geography",
      "mcp__pirsch__pirsch_list_devices",
      "mcp__pirsch__pirsch_get_platforms",
      "mcp__pirsch__pirsch_list_events",
      "mcp__pirsch__pirsch_get_event_breakdown",
      "mcp__pirsch__pirsch_list_event_pages",
      "mcp__pirsch__pirsch_list_goals",
      "mcp__pirsch__pirsch_list_funnels",
      "mcp__pirsch__pirsch_get_funnel",
      "mcp__pirsch__pirsch_list_tags",
      "mcp__pirsch__pirsch_get_tag_breakdown",
      "mcp__pirsch__pirsch_list_sessions",
      "mcp__pirsch__pirsch_get_session",
      "mcp__pirsch__pirsch_list_filter_values"
    ],
    "ask": [],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as pirsch. Review it before you use it.