_ registry / mcp streamable-http · checked 1h ago

pirsch-mcp

https://pirsch.usefulapi.io

Registry code: 4f81d7449fce38d3

api record

Tools for Pirsch Analytics, hosted by usefulapi.io. Read-only tools never change data; ask the user before a tool that creates, changes or deletes Pirsch Analytics data. Free plan: 100 tool calls per month. Run pirsch_usage_status to see the calls used this month. If the user asks for something none of these tools can do, tell the user and, with their OK, run pirsch_request_feature to record the request. Pro (unlimited calls, $9/month or $90/year): when the user wants more calls or reaches the limit, run pirsch_upgrade; it returns a Stripe Checkout link for the user to open.…

endpoint
https://pirsch.usefulapi.io/mcp
protocol
streamable-http ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is pirsch-mcp live?
Yes — it answered the hub's last check (checked 1h ago). It answered 100% of checks over the last 30 days.
Is pirsch-mcp free to use?
No — it asks for a key or a login before it will serve.
What tools does pirsch-mcp have?
27 tools: pirsch_get_duration, pirsch_list_tags, pirsch_list_geography, pirsch_list_sessions, pirsch_get_active_visitors, pirsch_get_domain, pirsch_get_overview, pirsch_get_totals, ….
Is pirsch-mcp safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
100%

90 days 100%· all time 100%

latency
245ms

last good check

priced tools
0

of 27 tools

_ answered our checks, 90 days 1 checks · signed record
  • unknown → live
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.

accounts
0

through this hub

calls served
0

successful

paid through this hub
0 USDC

what callers paid

_ what it can do 27 tools
27 auth-required 27 of 27 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • pirsch_get_duration auth-required never probed

    Average session duration over time, or average time on page over time, in seconds. GET /api/v1/statistics/duration/session or /duration/page.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "domain_id",
        "from",
        "to",
        "kind"
      ],
      "properties": {
        "os": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Operating system. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "to": {
          "type": "string",
          "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
          "description": "Last day, yyyy-mm-dd, whole day included."
        },
        "tz": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_+\\-/]+$",
          "maxLength": 64,
          "minLength": 1,
          "description": "IANA time zone such as Europe/Berlin. Default: the dashboard's time zone."
        },
        "tag": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Tag key to filter for."
        },
        "city": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "City name. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "from": {
          "type": "string",
          "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
          "description": "First day, yyyy-mm-dd (in the dashboard time zone unless tz is set)."
        },
        "kind": {
          "enum": [
            "session",
            "page"
          ],
          "type": "string",
          "description": "session = average session duration, page = average time on page."
        },
        "path": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Page path, for example /pricing. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "tags": {
          "type": "object",
          "description": "Tag key/value pairs; only results with all pairs match.",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "string",
            "maxLength": 500
          }
        },
        "event": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Event name. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "scale": {
          "enum": [
            "day",
            "week",
            "month",
            "year"
          ],
          "type": "string",
          "description": "Group results by day (default), week, month or year."
        },
        "browser": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Browser. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "channel": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Traffic channel such as \"Paid Search\" or \"Organic Search\". Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "country": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "ISO 3166 alpha-2 country code such as jp. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "pattern": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Regular expression that filters and groups pages, for example (?i)^/blog/[^/]+$."
        },
        "hostname": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Hostname (useful for rollup views). Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "language": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "ISO 639-1 language code such as en. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "platform": {
          "enum": [
            "desktop",
            "mobile",
            "unknown"
          ],
          "type": "string",
          "description": "Platform."
        },
        "referrer": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Referrer, usually a URL. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_term": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM term. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "domain_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]+$",
          "maxLength": 64,
          "minLength": 1,
          "description": "Pirsch domain (dashboard) id. Get it from pirsch_list_domains."
        },
        "exit_path": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Exit page path. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "entry_path": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Entry page path. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "event_meta": {
          "type": "object",
          "description": "Event metadata key/value pairs; only events with all pairs match.",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "string",
            "maxLength": 500
          }
        },
        "utm_medium": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM medium. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_source": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM source. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_content": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM content. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "screen_class": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Screen class XXL, XL, L, M or S. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_campaign": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM campaign. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "referrer_name": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Referrer name, usually the hostname. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        }
      }
    }
    arguments 211 lines
  • pirsch_list_tags auth-required never probed

    Tag keys with views and share. Use pirsch_get_tag_breakdown to see the values of one key. GET /api/v1/statistics/tags.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "domain_id",
        "from",
        "to"
      ],
      "properties": {
        "os": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Operating system. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "to": {
          "type": "string",
          "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
          "description": "Last day, yyyy-mm-dd, whole day included."
        },
        "tz": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_+\\-/]+$",
          "maxLength": 64,
          "minLength": 1,
          "description": "IANA time zone such as Europe/Berlin. Default: the dashboard's time zone."
        },
        "tag": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Tag key to filter for."
        },
        "city": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "City name. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "from": {
          "type": "string",
          "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
          "description": "First day, yyyy-mm-dd (in the dashboard time zone unless tz is set)."
        },
        "path": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Page path, for example /pricing. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "sort": {
          "type": "string",
          "pattern": "^[a-z_]{1,40}$",
          "description": "Field to sort by, for example visitors, views, sessions or bounce_rate."
        },
        "tags": {
          "type": "object",
          "description": "Tag key/value pairs; only results with all pairs match.",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "string",
            "maxLength": 500
          }
        },
        "event": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Event name. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "limit": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1,
          "description": "Results per page, 1-100 (default 25)."
        },
        "offset": {
          "type": "integer",
          "maximum": 1000000,
          "minimum": 0,
          "description": "Results to skip (default 0). Pass the previous reply's next_offset."
        },
        "search": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Only rows whose main field contains this text."
        },
        "browser": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Browser. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "channel": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Traffic channel such as \"Paid Search\" or \"Organic Search\". Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "country": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "ISO 3166 alpha-2 country code such as jp. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "pattern": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Regular expression that filters and groups pages, for example (?i)^/blog/[^/]+$."
        },
        "hostname": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Hostname (useful for rollup views). Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "language": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "ISO 639-1 language code such as en. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "platform": {
          "enum": [
            "desktop",
            "mobile",
            "unknown"
          ],
          "type": "string",
          "description": "Platform."
        },
        "referrer": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Referrer, usually a URL. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_term": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM term. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "direction": {
          "enum": [
            "asc",
            "desc"
          ],
          "type": "string",
          "description": "Sort direction."
        },
        "domain_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]+$",
          "maxLength": 64,
          "minLength": 1,
          "description": "Pirsch domain (dashboard) id. Get it from pirsch_list_domains."
        },
        "exit_path": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Exit page path. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "entry_path": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Entry page path. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "event_meta": {
          "type": "object",
          "description": "Event metadata key/value pairs; only events with all pairs match.",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "string",
            "maxLength": 500
          }
        },
        "utm_medium": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM medium. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_source": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM source. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_content": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM content. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "screen_class": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Screen class XXL, XL, L, M or S. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_campaign": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM campaign. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "referrer_name": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Referrer name, usually the hostname. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        }
      }
    }
    arguments 223 lines
  • pirsch_list_geography auth-required never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "domain_id",
        "from",
        "to",
        "dimension"
      ],
      "properties": {
        "os": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Operating system. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "to": {
          "type": "string",
          "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
          "description": "Last day, yyyy-mm-dd, whole day included."
        },
        "tz": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_+\\-/]+$",
          "maxLength": 64,
          "minLength": 1,
          "description": "IANA time zone such as Europe/Berlin. Default: the dashboard's time zone."
        },
        "tag": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Tag key to filter for."
        },
        "city": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "City name. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "from": {
          "type": "string",
          "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
          "description": "First day, yyyy-mm-dd (in the dashboard time zone unless tz is set)."
        },
        "path": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Page path, for example /pricing. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "sort": {
          "type": "string",
          "pattern": "^[a-z_]{1,40}$",
          "description": "Field to sort by, for example visitors, views, sessions or bounce_rate."
        },
        "tags": {
          "type": "object",
          "description": "Tag key/value pairs; only results with all pairs match.",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "string",
            "maxLength": 500
          }
        },
        "event": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Event name. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "limit": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1,
          "description": "Results per page, 1-100 (default 25)."
        },
        "offset": {
          "type": "integer",
          "maximum": 1000000,
          "minimum": 0,
          "description": "Results to skip (default 0). Pass the previous reply's next_offset."
        },
        "search": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Only rows whose main field contains this text."
        },
        "browser": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Browser. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "channel": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Traffic channel such as \"Paid Search\" or \"Organic Search\". Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "country": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "ISO 3166 alpha-2 country code such as jp. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "pattern": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Regular expression that filters and groups pages, for example (?i)^/blog/[^/]+$."
        },
        "hostname": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Hostname (useful for rollup views). Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "language": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "ISO 639-1 language code such as en. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "platform": {
          "enum": [
            "desktop",
            "mobile",
            "unknown"
          ],
          "type": "string",
          "description": "Platform."
        },
        "referrer": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Referrer, usually a URL. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_term": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM term. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "dimension": {
          "enum": [
            "country",
            "region",
            "city",
            "language"
          ],
          "type": "string",
          "description": "Which breakdown."
        },
        "direction": {
          "enum": [
            "asc",
            "desc"
          ],
          "type": "string",
          "description": "Sort direction."
        },
        "domain_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]+$",
          "maxLength": 64,
          "minLength": 1,
          "description": "Pirsch domain (dashboard) id. Get it from pirsch_list_domains."
        },
        "exit_path": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Exit page path. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "entry_path": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Entry page path. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "event_meta": {
          "type": "object",
          "description": "Event metadata key/value pairs; only events with all pairs match.",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "string",
            "maxLength": 500
          }
        },
        "utm_medium": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM medium. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_source": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM source. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_content": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM content. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "screen_class": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Screen class XXL, XL, L, M or S. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_campaign": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM campaign. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "referrer_name": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Referrer name, usually the hostname. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        }
      }
    }
    arguments 234 lines
  • pirsch_list_sessions auth-required never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "domain_id",
        "from",
        "to"
      ],
      "properties": {
        "os": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Operating system. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "to": {
          "type": "string",
          "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
          "description": "Last day, yyyy-mm-dd, whole day included."
        },
        "tz": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_+\\-/]+$",
          "maxLength": 64,
          "minLength": 1,
          "description": "IANA time zone such as Europe/Berlin. Default: the dashboard's time zone."
        },
        "tag": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Tag key to filter for."
        },
        "city": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "City name. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "from": {
          "type": "string",
          "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
          "description": "First day, yyyy-mm-dd (in the dashboard time zone unless tz is set)."
        },
        "path": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Page path, for example /pricing. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "sort": {
          "type": "string",
          "pattern": "^[a-z_]{1,40}$",
          "description": "Field to sort by, for example visitors, views, sessions or bounce_rate."
        },
        "tags": {
          "type": "object",
          "description": "Tag key/value pairs; only results with all pairs match.",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "string",
            "maxLength": 500
          }
        },
        "event": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Event name. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "limit": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1,
          "description": "Results per page, 1-100 (default 25)."
        },
        "offset": {
          "type": "integer",
          "maximum": 1000000,
          "minimum": 0,
          "description": "Results to skip (default 0). Pass the previous reply's next_offset."
        },
        "search": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Only rows whose main field contains this text."
        },
        "browser": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Browser. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "channel": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Traffic channel such as \"Paid Search\" or \"Organic Search\". Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "country": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "ISO 3166 alpha-2 country code such as jp. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "pattern": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Regular expression that filters and groups pages, for example (?i)^/blog/[^/]+$."
        },
        "hostname": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Hostname (useful for rollup views). Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "language": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "ISO 639-1 language code such as en. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "platform": {
          "enum": [
            "desktop",
            "mobile",
            "unknown"
          ],
          "type": "string",
          "description": "Platform."
        },
        "referrer": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Referrer, usually a URL. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_term": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM term. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "direction": {
          "enum": [
            "asc",
            "desc"
          ],
          "type": "string",
          "description": "Sort direction."
        },
        "domain_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]+$",
          "maxLength": 64,
          "minLength": 1,
          "description": "Pirsch domain (dashboard) id. Get it from pirsch_list_domains."
        },
        "exit_path": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Exit page path. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "entry_path": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Entry page path. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "event_meta": {
          "type": "object",
          "description": "Event metadata key/value pairs; only events with all pairs match.",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "string",
            "maxLength": 500
          }
        },
        "utm_medium": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM medium. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_source": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM source. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_content": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM content. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "screen_class": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Screen class XXL, XL, L, M or S. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_campaign": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM campaign. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "referrer_name": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Referrer name, usually the hostname. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        }
      }
    }
    arguments 223 lines
  • pirsch_get_active_visitors auth-required 1h ago

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "domain_id"
      ],
      "properties": {
        "start": {
          "type": "integer",
          "maximum": 3600,
          "minimum": 1,
          "description": "Look back this many seconds, 1-3600 (default 600 = 10 minutes)."
        },
        "domain_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]+$",
          "maxLength": 64,
          "minLength": 1,
          "description": "Pirsch domain (dashboard) id. Get it from pirsch_list_domains."
        }
      }
    }
    arguments 22 lines
  • pirsch_get_domain auth-required 1h ago

    One Pirsch dashboard (domain) by id, with its time zone, hostname, role and subscription state. GET /api/v1/domain?id=.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "domain_id"
      ],
      "properties": {
        "domain_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]+$",
          "maxLength": 64,
          "minLength": 1,
          "description": "Pirsch domain (dashboard) id. Get it from pirsch_list_domains."
        }
      }
    }
    arguments 16 lines
  • pirsch_get_overview auth-required never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "domain_id"
      ],
      "properties": {
        "domain_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]+$",
          "maxLength": 64,
          "minLength": 1,
          "description": "Pirsch domain (dashboard) id. Get it from pirsch_list_domains."
        }
      }
    }
    arguments 16 lines
  • pirsch_get_totals auth-required never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "domain_id",
        "from",
        "to"
      ],
      "properties": {
        "os": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Operating system. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "to": {
          "type": "string",
          "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
          "description": "Last day, yyyy-mm-dd, whole day included."
        },
        "tz": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_+\\-/]+$",
          "maxLength": 64,
          "minLength": 1,
          "description": "IANA time zone such as Europe/Berlin. Default: the dashboard's time zone."
        },
        "tag": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Tag key to filter for."
        },
        "city": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "City name. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "from": {
          "type": "string",
          "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
          "description": "First day, yyyy-mm-dd (in the dashboard time zone unless tz is set)."
        },
        "path": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Page path, for example /pricing. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "tags": {
          "type": "object",
          "description": "Tag key/value pairs; only results with all pairs match.",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "string",
            "maxLength": 500
          }
        },
        "event": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Event name. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "browser": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Browser. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "channel": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Traffic channel such as \"Paid Search\" or \"Organic Search\". Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "country": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "ISO 3166 alpha-2 country code such as jp. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "pattern": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Regular expression that filters and groups pages, for example (?i)^/blog/[^/]+$."
        },
        "hostname": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Hostname (useful for rollup views). Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "language": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "ISO 639-1 language code such as en. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "platform": {
          "enum": [
            "desktop",
            "mobile",
            "unknown"
          ],
          "type": "string",
          "description": "Platform."
        },
        "referrer": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Referrer, usually a URL. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_term": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM term. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "domain_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]+$",
          "maxLength": 64,
          "minLength": 1,
          "description": "Pirsch domain (dashboard) id. Get it from pirsch_list_domains."
        },
        "exit_path": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Exit page path. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "entry_path": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Entry page path. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "event_meta": {
          "type": "object",
          "description": "Event metadata key/value pairs; only events with all pairs match.",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "string",
            "maxLength": 500
          }
        },
        "utm_medium": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM medium. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_source": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM source. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_content": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM content. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "screen_class": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Screen class XXL, XL, L, M or S. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_campaign": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM campaign. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "referrer_name": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Referrer name, usually the hostname. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        }
      }
    }
    arguments 192 lines
  • pirsch_get_visitors_time_series auth-required never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "domain_id",
        "from",
        "to"
      ],
      "properties": {
        "os": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Operating system. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "to": {
          "type": "string",
          "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
          "description": "Last day, yyyy-mm-dd, whole day included."
        },
        "tz": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_+\\-/]+$",
          "maxLength": 64,
          "minLength": 1,
          "description": "IANA time zone such as Europe/Berlin. Default: the dashboard's time zone."
        },
        "tag": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Tag key to filter for."
        },
        "city": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "City name. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "from": {
          "type": "string",
          "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
          "description": "First day, yyyy-mm-dd (in the dashboard time zone unless tz is set)."
        },
        "path": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Page path, for example /pricing. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "tags": {
          "type": "object",
          "description": "Tag key/value pairs; only results with all pairs match.",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "string",
            "maxLength": 500
          }
        },
        "event": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Event name. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "scale": {
          "enum": [
            "day",
            "week",
            "month",
            "year"
          ],
          "type": "string",
          "description": "Group results by day (default), week, month or year."
        },
        "browser": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Browser. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "channel": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Traffic channel such as \"Paid Search\" or \"Organic Search\". Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "country": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "ISO 3166 alpha-2 country code such as jp. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "pattern": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Regular expression that filters and groups pages, for example (?i)^/blog/[^/]+$."
        },
        "hostname": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Hostname (useful for rollup views). Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "language": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "ISO 639-1 language code such as en. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "platform": {
          "enum": [
            "desktop",
            "mobile",
            "unknown"
          ],
          "type": "string",
          "description": "Platform."
        },
        "referrer": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Referrer, usually a URL. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_term": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM term. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "domain_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]+$",
          "maxLength": 64,
          "minLength": 1,
          "description": "Pirsch domain (dashboard) id. Get it from pirsch_list_domains."
        },
        "exit_path": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Exit page path. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "entry_path": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Entry page path. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "event_meta": {
          "type": "object",
          "description": "Event metadata key/value pairs; only events with all pairs match.",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "string",
            "maxLength": 500
          }
        },
        "utm_medium": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM medium. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_source": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM source. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_content": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM content. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "screen_class": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Screen class XXL, XL, L, M or S. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_campaign": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM campaign. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "referrer_name": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Referrer name, usually the hostname. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        }
      }
    }
    arguments 202 lines
  • pirsch_get_growth auth-required never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "domain_id",
        "from",
        "to"
      ],
      "properties": {
        "os": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Operating system. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "to": {
          "type": "string",
          "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
          "description": "Last day, yyyy-mm-dd, whole day included."
        },
        "tz": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_+\\-/]+$",
          "maxLength": 64,
          "minLength": 1,
          "description": "IANA time zone such as Europe/Berlin. Default: the dashboard's time zone."
        },
        "tag": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Tag key to filter for."
        },
        "city": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "City name. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "from": {
          "type": "string",
          "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
          "description": "First day, yyyy-mm-dd (in the dashboard time zone unless tz is set)."
        },
        "path": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Page path, for example /pricing. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "tags": {
          "type": "object",
          "description": "Tag key/value pairs; only results with all pairs match.",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "string",
            "maxLength": 500
          }
        },
        "event": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Event name. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "browser": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Browser. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "channel": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Traffic channel such as \"Paid Search\" or \"Organic Search\". Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "country": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "ISO 3166 alpha-2 country code such as jp. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "pattern": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Regular expression that filters and groups pages, for example (?i)^/blog/[^/]+$."
        },
        "hostname": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Hostname (useful for rollup views). Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "language": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "ISO 639-1 language code such as en. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "platform": {
          "enum": [
            "desktop",
            "mobile",
            "unknown"
          ],
          "type": "string",
          "description": "Platform."
        },
        "referrer": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Referrer, usually a URL. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_term": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM term. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "domain_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]+$",
          "maxLength": 64,
          "minLength": 1,
          "description": "Pirsch domain (dashboard) id. Get it from pirsch_list_domains."
        },
        "exit_path": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Exit page path. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "entry_path": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Entry page path. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "event_meta": {
          "type": "object",
          "description": "Event metadata key/value pairs; only events with all pairs match.",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "string",
            "maxLength": 500
          }
        },
        "utm_medium": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM medium. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_source": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM source. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_content": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM content. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "screen_class": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Screen class XXL, XL, L, M or S. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_campaign": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM campaign. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "referrer_name": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Referrer name, usually the hostname. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        }
      }
    }
    arguments 192 lines
  • pirsch_get_time_distribution auth-required never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "domain_id",
        "from",
        "to",
        "by"
      ],
      "properties": {
        "by": {
          "enum": [
            "hour",
            "minute",
            "weekday"
          ],
          "type": "string",
          "description": "hour = per hour of day, minute = per minute (needs a one-day range), weekday = weekday and hour."
        },
        "os": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Operating system. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "to": {
          "type": "string",
          "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
          "description": "Last day, yyyy-mm-dd, whole day included."
        },
        "tz": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_+\\-/]+$",
          "maxLength": 64,
          "minLength": 1,
          "description": "IANA time zone such as Europe/Berlin. Default: the dashboard's time zone."
        },
        "tag": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Tag key to filter for."
        },
        "city": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "City name. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "from": {
          "type": "string",
          "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
          "description": "First day, yyyy-mm-dd (in the dashboard time zone unless tz is set)."
        },
        "path": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Page path, for example /pricing. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "tags": {
          "type": "object",
          "description": "Tag key/value pairs; only results with all pairs match.",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "string",
            "maxLength": 500
          }
        },
        "event": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Event name. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "browser": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Browser. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "channel": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Traffic channel such as \"Paid Search\" or \"Organic Search\". Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "country": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "ISO 3166 alpha-2 country code such as jp. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "pattern": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Regular expression that filters and groups pages, for example (?i)^/blog/[^/]+$."
        },
        "hostname": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Hostname (useful for rollup views). Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "language": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "ISO 639-1 language code such as en. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "platform": {
          "enum": [
            "desktop",
            "mobile",
            "unknown"
          ],
          "type": "string",
          "description": "Platform."
        },
        "referrer": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Referrer, usually a URL. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_term": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM term. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "domain_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]+$",
          "maxLength": 64,
          "minLength": 1,
          "description": "Pirsch domain (dashboard) id. Get it from pirsch_list_domains."
        },
        "exit_path": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Exit page path. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "entry_path": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Entry page path. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "event_meta": {
          "type": "object",
          "description": "Event metadata key/value pairs; only events with all pairs match.",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "string",
            "maxLength": 500
          }
        },
        "utm_medium": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM medium. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_source": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM source. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_content": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM content. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "screen_class": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Screen class XXL, XL, L, M or S. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_campaign": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM campaign. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "referrer_name": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Referrer name, usually the hostname. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        }
      }
    }
    arguments 202 lines
  • pirsch_list_pages auth-required never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "domain_id",
        "from",
        "to"
      ],
      "properties": {
        "os": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Operating system. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "to": {
          "type": "string",
          "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
          "description": "Last day, yyyy-mm-dd, whole day included."
        },
        "tz": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_+\\-/]+$",
          "maxLength": 64,
          "minLength": 1,
          "description": "IANA time zone such as Europe/Berlin. Default: the dashboard's time zone."
        },
        "tag": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Tag key to filter for."
        },
        "city": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "City name. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "from": {
          "type": "string",
          "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
          "description": "First day, yyyy-mm-dd (in the dashboard time zone unless tz is set)."
        },
        "path": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Page path, for example /pricing. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "sort": {
          "type": "string",
          "pattern": "^[a-z_]{1,40}$",
          "description": "Field to sort by, for example visitors, views, sessions or bounce_rate."
        },
        "tags": {
          "type": "object",
          "description": "Tag key/value pairs; only results with all pairs match.",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "string",
            "maxLength": 500
          }
        },
        "type": {
          "enum": [
            "all",
            "entry",
            "exit"
          ],
          "type": "string",
          "description": "all (default), entry or exit pages."
        },
        "event": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Event name. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "limit": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1,
          "description": "Results per page, 1-100 (default 25)."
        },
        "offset": {
          "type": "integer",
          "maximum": 1000000,
          "minimum": 0,
          "description": "Results to skip (default 0). Pass the previous reply's next_offset."
        },
        "search": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Only rows whose main field contains this text."
        },
        "browser": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Browser. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "channel": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Traffic channel such as \"Paid Search\" or \"Organic Search\". Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "country": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "ISO 3166 alpha-2 country code such as jp. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "pattern": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Regular expression that filters and groups pages, for example (?i)^/blog/[^/]+$."
        },
        "hostname": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Hostname (useful for rollup views). Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "language": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "ISO 639-1 language code such as en. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "platform": {
          "enum": [
            "desktop",
            "mobile",
            "unknown"
          ],
          "type": "string",
          "description": "Platform."
        },
        "referrer": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Referrer, usually a URL. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_term": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM term. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "direction": {
          "enum": [
            "asc",
            "desc"
          ],
          "type": "string",
          "description": "Sort direction."
        },
        "domain_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]+$",
          "maxLength": 64,
          "minLength": 1,
          "description": "Pirsch domain (dashboard) id. Get it from pirsch_list_domains."
        },
        "exit_path": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Exit page path. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "entry_path": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Entry page path. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "event_meta": {
          "type": "object",
          "description": "Event metadata key/value pairs; only events with all pairs match.",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "string",
            "maxLength": 500
          }
        },
        "utm_medium": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM medium. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_source": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM source. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_content": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM content. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "screen_class": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Screen class XXL, XL, L, M or S. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_campaign": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM campaign. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "include_title": {
          "type": "boolean",
          "description": "Group by title and path instead of path only."
        },
        "referrer_name": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Referrer name, usually the hostname. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        }
      }
    }
    arguments 236 lines
  • pirsch_list_hostnames auth-required never probed

    Traffic per hostname. Mostly useful for rollup views that combine several hostnames. GET /api/v1/statistics/hostname.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "domain_id",
        "from",
        "to"
      ],
      "properties": {
        "os": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Operating system. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "to": {
          "type": "string",
          "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
          "description": "Last day, yyyy-mm-dd, whole day included."
        },
        "tz": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_+\\-/]+$",
          "maxLength": 64,
          "minLength": 1,
          "description": "IANA time zone such as Europe/Berlin. Default: the dashboard's time zone."
        },
        "tag": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Tag key to filter for."
        },
        "city": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "City name. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "from": {
          "type": "string",
          "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
          "description": "First day, yyyy-mm-dd (in the dashboard time zone unless tz is set)."
        },
        "path": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Page path, for example /pricing. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "sort": {
          "type": "string",
          "pattern": "^[a-z_]{1,40}$",
          "description": "Field to sort by, for example visitors, views, sessions or bounce_rate."
        },
        "tags": {
          "type": "object",
          "description": "Tag key/value pairs; only results with all pairs match.",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "string",
            "maxLength": 500
          }
        },
        "event": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Event name. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "limit": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1,
          "description": "Results per page, 1-100 (default 25)."
        },
        "offset": {
          "type": "integer",
          "maximum": 1000000,
          "minimum": 0,
          "description": "Results to skip (default 0). Pass the previous reply's next_offset."
        },
        "search": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Only rows whose main field contains this text."
        },
        "browser": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Browser. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "channel": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Traffic channel such as \"Paid Search\" or \"Organic Search\". Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "country": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "ISO 3166 alpha-2 country code such as jp. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "pattern": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Regular expression that filters and groups pages, for example (?i)^/blog/[^/]+$."
        },
        "hostname": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Hostname (useful for rollup views). Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "language": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "ISO 639-1 language code such as en. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "platform": {
          "enum": [
            "desktop",
            "mobile",
            "unknown"
          ],
          "type": "string",
          "description": "Platform."
        },
        "referrer": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Referrer, usually a URL. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_term": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM term. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "direction": {
          "enum": [
            "asc",
            "desc"
          ],
          "type": "string",
          "description": "Sort direction."
        },
        "domain_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]+$",
          "maxLength": 64,
          "minLength": 1,
          "description": "Pirsch domain (dashboard) id. Get it from pirsch_list_domains."
        },
        "exit_path": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Exit page path. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "entry_path": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Entry page path. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "event_meta": {
          "type": "object",
          "description": "Event metadata key/value pairs; only events with all pairs match.",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "string",
            "maxLength": 500
          }
        },
        "utm_medium": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM medium. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_source": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM source. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_content": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM content. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "screen_class": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Screen class XXL, XL, L, M or S. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_campaign": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM campaign. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "referrer_name": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Referrer name, usually the hostname. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        }
      }
    }
    arguments 223 lines
  • pirsch_list_referrers auth-required never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "domain_id",
        "from",
        "to"
      ],
      "properties": {
        "by": {
          "enum": [
            "referrer",
            "channel"
          ],
          "type": "string",
          "description": "referrer (default) or channel."
        },
        "os": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Operating system. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "to": {
          "type": "string",
          "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
          "description": "Last day, yyyy-mm-dd, whole day included."
        },
        "tz": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_+\\-/]+$",
          "maxLength": 64,
          "minLength": 1,
          "description": "IANA time zone such as Europe/Berlin. Default: the dashboard's time zone."
        },
        "tag": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Tag key to filter for."
        },
        "city": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "City name. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "from": {
          "type": "string",
          "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
          "description": "First day, yyyy-mm-dd (in the dashboard time zone unless tz is set)."
        },
        "path": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Page path, for example /pricing. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "sort": {
          "type": "string",
          "pattern": "^[a-z_]{1,40}$",
          "description": "Field to sort by, for example visitors, views, sessions or bounce_rate."
        },
        "tags": {
          "type": "object",
          "description": "Tag key/value pairs; only results with all pairs match.",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "string",
            "maxLength": 500
          }
        },
        "event": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Event name. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "limit": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1,
          "description": "Results per page, 1-100 (default 25)."
        },
        "offset": {
          "type": "integer",
          "maximum": 1000000,
          "minimum": 0,
          "description": "Results to skip (default 0). Pass the previous reply's next_offset."
        },
        "search": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Only rows whose main field contains this text."
        },
        "browser": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Browser. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "channel": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Traffic channel such as \"Paid Search\" or \"Organic Search\". Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "country": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "ISO 3166 alpha-2 country code such as jp. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "pattern": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Regular expression that filters and groups pages, for example (?i)^/blog/[^/]+$."
        },
        "hostname": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Hostname (useful for rollup views). Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "language": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "ISO 639-1 language code such as en. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "platform": {
          "enum": [
            "desktop",
            "mobile",
            "unknown"
          ],
          "type": "string",
          "description": "Platform."
        },
        "referrer": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Referrer, usually a URL. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_term": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM term. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "direction": {
          "enum": [
            "asc",
            "desc"
          ],
          "type": "string",
          "description": "Sort direction."
        },
        "domain_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]+$",
          "maxLength": 64,
          "minLength": 1,
          "description": "Pirsch domain (dashboard) id. Get it from pirsch_list_domains."
        },
        "exit_path": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Exit page path. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "entry_path": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Entry page path. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "event_meta": {
          "type": "object",
          "description": "Event metadata key/value pairs; only events with all pairs match.",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "string",
            "maxLength": 500
          }
        },
        "utm_medium": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM medium. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_source": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM source. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_content": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM content. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "screen_class": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Screen class XXL, XL, L, M or S. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_campaign": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM campaign. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "referrer_name": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Referrer name, usually the hostname. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        }
      }
    }
    arguments 231 lines
  • pirsch_list_utm auth-required never probed

    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}.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "domain_id",
        "from",
        "to",
        "dimension"
      ],
      "properties": {
        "os": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Operating system. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "to": {
          "type": "string",
          "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
          "description": "Last day, yyyy-mm-dd, whole day included."
        },
        "tz": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_+\\-/]+$",
          "maxLength": 64,
          "minLength": 1,
          "description": "IANA time zone such as Europe/Berlin. Default: the dashboard's time zone."
        },
        "tag": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Tag key to filter for."
        },
        "city": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "City name. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "from": {
          "type": "string",
          "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
          "description": "First day, yyyy-mm-dd (in the dashboard time zone unless tz is set)."
        },
        "path": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Page path, for example /pricing. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "sort": {
          "type": "string",
          "pattern": "^[a-z_]{1,40}$",
          "description": "Field to sort by, for example visitors, views, sessions or bounce_rate."
        },
        "tags": {
          "type": "object",
          "description": "Tag key/value pairs; only results with all pairs match.",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "string",
            "maxLength": 500
          }
        },
        "event": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Event name. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "limit": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1,
          "description": "Results per page, 1-100 (default 25)."
        },
        "offset": {
          "type": "integer",
          "maximum": 1000000,
          "minimum": 0,
          "description": "Results to skip (default 0). Pass the previous reply's next_offset."
        },
        "search": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Only rows whose main field contains this text."
        },
        "browser": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Browser. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "channel": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Traffic channel such as \"Paid Search\" or \"Organic Search\". Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "country": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "ISO 3166 alpha-2 country code such as jp. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "pattern": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Regular expression that filters and groups pages, for example (?i)^/blog/[^/]+$."
        },
        "hostname": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Hostname (useful for rollup views). Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "language": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "ISO 639-1 language code such as en. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "platform": {
          "enum": [
            "desktop",
            "mobile",
            "unknown"
          ],
          "type": "string",
          "description": "Platform."
        },
        "referrer": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Referrer, usually a URL. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_term": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM term. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "dimension": {
          "enum": [
            "source",
            "medium",
            "campaign",
            "content",
            "term"
          ],
          "type": "string",
          "description": "Which UTM parameter to break down."
        },
        "direction": {
          "enum": [
            "asc",
            "desc"
          ],
          "type": "string",
          "description": "Sort direction."
        },
        "domain_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]+$",
          "maxLength": 64,
          "minLength": 1,
          "description": "Pirsch domain (dashboard) id. Get it from pirsch_list_domains."
        },
        "exit_path": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Exit page path. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "entry_path": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Entry page path. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "event_meta": {
          "type": "object",
          "description": "Event metadata key/value pairs; only events with all pairs match.",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "string",
            "maxLength": 500
          }
        },
        "utm_medium": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM medium. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_source": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM source. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_content": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM content. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "screen_class": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Screen class XXL, XL, L, M or S. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_campaign": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM campaign. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "referrer_name": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Referrer name, usually the hostname. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        }
      }
    }
    arguments 235 lines
  • pirsch_list_devices auth-required never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "domain_id",
        "from",
        "to",
        "dimension"
      ],
      "properties": {
        "os": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Operating system. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "to": {
          "type": "string",
          "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
          "description": "Last day, yyyy-mm-dd, whole day included."
        },
        "tz": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_+\\-/]+$",
          "maxLength": 64,
          "minLength": 1,
          "description": "IANA time zone such as Europe/Berlin. Default: the dashboard's time zone."
        },
        "tag": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Tag key to filter for."
        },
        "city": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "City name. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "from": {
          "type": "string",
          "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
          "description": "First day, yyyy-mm-dd (in the dashboard time zone unless tz is set)."
        },
        "path": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Page path, for example /pricing. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "sort": {
          "type": "string",
          "pattern": "^[a-z_]{1,40}$",
          "description": "Field to sort by, for example visitors, views, sessions or bounce_rate."
        },
        "tags": {
          "type": "object",
          "description": "Tag key/value pairs; only results with all pairs match.",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "string",
            "maxLength": 500
          }
        },
        "event": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Event name. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "limit": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1,
          "description": "Results per page, 1-100 (default 25)."
        },
        "offset": {
          "type": "integer",
          "maximum": 1000000,
          "minimum": 0,
          "description": "Results to skip (default 0). Pass the previous reply's next_offset."
        },
        "search": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Only rows whose main field contains this text."
        },
        "browser": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Browser. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "channel": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Traffic channel such as \"Paid Search\" or \"Organic Search\". Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "country": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "ISO 3166 alpha-2 country code such as jp. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "pattern": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Regular expression that filters and groups pages, for example (?i)^/blog/[^/]+$."
        },
        "hostname": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Hostname (useful for rollup views). Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "language": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "ISO 639-1 language code such as en. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "platform": {
          "enum": [
            "desktop",
            "mobile",
            "unknown"
          ],
          "type": "string",
          "description": "Platform."
        },
        "referrer": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Referrer, usually a URL. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_term": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM term. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "dimension": {
          "enum": [
            "browser",
            "browser_version",
            "os",
            "screen"
          ],
          "type": "string",
          "description": "Which breakdown."
        },
        "direction": {
          "enum": [
            "asc",
            "desc"
          ],
          "type": "string",
          "description": "Sort direction."
        },
        "domain_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]+$",
          "maxLength": 64,
          "minLength": 1,
          "description": "Pirsch domain (dashboard) id. Get it from pirsch_list_domains."
        },
        "exit_path": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Exit page path. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "entry_path": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Entry page path. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "event_meta": {
          "type": "object",
          "description": "Event metadata key/value pairs; only events with all pairs match.",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "string",
            "maxLength": 500
          }
        },
        "utm_medium": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM medium. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_source": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM source. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_content": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM content. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "screen_class": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Screen class XXL, XL, L, M or S. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_campaign": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM campaign. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "referrer_name": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Referrer name, usually the hostname. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        }
      }
    }
    arguments 234 lines
  • pirsch_get_platforms auth-required never probed

    Visitors on desktop, mobile and unknown platforms, as counts and shares. GET /api/v1/statistics/platform.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "domain_id",
        "from",
        "to"
      ],
      "properties": {
        "os": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Operating system. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "to": {
          "type": "string",
          "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
          "description": "Last day, yyyy-mm-dd, whole day included."
        },
        "tz": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_+\\-/]+$",
          "maxLength": 64,
          "minLength": 1,
          "description": "IANA time zone such as Europe/Berlin. Default: the dashboard's time zone."
        },
        "tag": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Tag key to filter for."
        },
        "city": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "City name. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "from": {
          "type": "string",
          "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
          "description": "First day, yyyy-mm-dd (in the dashboard time zone unless tz is set)."
        },
        "path": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Page path, for example /pricing. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "tags": {
          "type": "object",
          "description": "Tag key/value pairs; only results with all pairs match.",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "string",
            "maxLength": 500
          }
        },
        "event": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Event name. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "browser": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Browser. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "channel": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Traffic channel such as \"Paid Search\" or \"Organic Search\". Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "country": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "ISO 3166 alpha-2 country code such as jp. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "pattern": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Regular expression that filters and groups pages, for example (?i)^/blog/[^/]+$."
        },
        "hostname": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Hostname (useful for rollup views). Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "language": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "ISO 639-1 language code such as en. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "platform": {
          "enum": [
            "desktop",
            "mobile",
            "unknown"
          ],
          "type": "string",
          "description": "Platform."
        },
        "referrer": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Referrer, usually a URL. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_term": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM term. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "domain_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]+$",
          "maxLength": 64,
          "minLength": 1,
          "description": "Pirsch domain (dashboard) id. Get it from pirsch_list_domains."
        },
        "exit_path": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Exit page path. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "entry_path": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Entry page path. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "event_meta": {
          "type": "object",
          "description": "Event metadata key/value pairs; only events with all pairs match.",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "string",
            "maxLength": 500
          }
        },
        "utm_medium": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM medium. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_source": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM source. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_content": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM content. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "screen_class": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Screen class XXL, XL, L, M or S. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_campaign": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM campaign. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "referrer_name": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Referrer name, usually the hostname. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        }
      }
    }
    arguments 192 lines
  • pirsch_list_events auth-required never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "domain_id",
        "from",
        "to"
      ],
      "properties": {
        "os": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Operating system. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "to": {
          "type": "string",
          "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
          "description": "Last day, yyyy-mm-dd, whole day included."
        },
        "tz": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_+\\-/]+$",
          "maxLength": 64,
          "minLength": 1,
          "description": "IANA time zone such as Europe/Berlin. Default: the dashboard's time zone."
        },
        "tag": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Tag key to filter for."
        },
        "city": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "City name. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "from": {
          "type": "string",
          "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
          "description": "First day, yyyy-mm-dd (in the dashboard time zone unless tz is set)."
        },
        "path": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Page path, for example /pricing. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "sort": {
          "type": "string",
          "pattern": "^[a-z_]{1,40}$",
          "description": "Field to sort by, for example visitors, views, sessions or bounce_rate."
        },
        "tags": {
          "type": "object",
          "description": "Tag key/value pairs; only results with all pairs match.",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "string",
            "maxLength": 500
          }
        },
        "event": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Event name. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "limit": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1,
          "description": "Results per page, 1-100 (default 25)."
        },
        "offset": {
          "type": "integer",
          "maximum": 1000000,
          "minimum": 0,
          "description": "Results to skip (default 0). Pass the previous reply's next_offset."
        },
        "search": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Only rows whose main field contains this text."
        },
        "browser": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Browser. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "channel": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Traffic channel such as \"Paid Search\" or \"Organic Search\". Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "country": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "ISO 3166 alpha-2 country code such as jp. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "pattern": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Regular expression that filters and groups pages, for example (?i)^/blog/[^/]+$."
        },
        "hostname": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Hostname (useful for rollup views). Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "language": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "ISO 639-1 language code such as en. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "platform": {
          "enum": [
            "desktop",
            "mobile",
            "unknown"
          ],
          "type": "string",
          "description": "Platform."
        },
        "referrer": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Referrer, usually a URL. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_term": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM term. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "direction": {
          "enum": [
            "asc",
            "desc"
          ],
          "type": "string",
          "description": "Sort direction."
        },
        "domain_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]+$",
          "maxLength": 64,
          "minLength": 1,
          "description": "Pirsch domain (dashboard) id. Get it from pirsch_list_domains."
        },
        "exit_path": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Exit page path. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "entry_path": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Entry page path. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "event_meta": {
          "type": "object",
          "description": "Event metadata key/value pairs; only events with all pairs match.",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "string",
            "maxLength": 500
          }
        },
        "utm_medium": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM medium. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_source": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM source. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_content": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM content. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "screen_class": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Screen class XXL, XL, L, M or S. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_campaign": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM campaign. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "referrer_name": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Referrer name, usually the hostname. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        }
      }
    }
    arguments 223 lines
  • pirsch_get_event_breakdown auth-required never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "domain_id",
        "from",
        "to",
        "event",
        "event_meta_key"
      ],
      "properties": {
        "to": {
          "type": "string",
          "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
          "description": "Last day, yyyy-mm-dd, whole day included."
        },
        "tz": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_+\\-/]+$",
          "maxLength": 64,
          "minLength": 1,
          "description": "IANA time zone such as Europe/Berlin. Default: the dashboard's time zone."
        },
        "from": {
          "type": "string",
          "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
          "description": "First day, yyyy-mm-dd (in the dashboard time zone unless tz is set)."
        },
        "sort": {
          "type": "string",
          "pattern": "^[a-z_]{1,40}$",
          "description": "Field to sort by, for example visitors, views, sessions or bounce_rate."
        },
        "event": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Event name."
        },
        "limit": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1,
          "description": "Results per page, 1-100 (default 25)."
        },
        "offset": {
          "type": "integer",
          "maximum": 1000000,
          "minimum": 0,
          "description": "Results to skip (default 0). Pass the previous reply's next_offset."
        },
        "search": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Only rows whose main field contains this text."
        },
        "direction": {
          "enum": [
            "asc",
            "desc"
          ],
          "type": "string",
          "description": "Sort direction."
        },
        "domain_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]+$",
          "maxLength": 64,
          "minLength": 1,
          "description": "Pirsch domain (dashboard) id. Get it from pirsch_list_domains."
        },
        "event_meta_key": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1,
          "description": "Metadata key to break down."
        }
      }
    }
    arguments 80 lines
  • pirsch_list_event_pages auth-required never probed

    The pages on which an event was triggered, with visitors and views. The event name is required. GET /api/v1/statistics/event/page.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "domain_id",
        "from",
        "to",
        "event"
      ],
      "properties": {
        "to": {
          "type": "string",
          "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
          "description": "Last day, yyyy-mm-dd, whole day included."
        },
        "tz": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_+\\-/]+$",
          "maxLength": 64,
          "minLength": 1,
          "description": "IANA time zone such as Europe/Berlin. Default: the dashboard's time zone."
        },
        "from": {
          "type": "string",
          "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
          "description": "First day, yyyy-mm-dd (in the dashboard time zone unless tz is set)."
        },
        "sort": {
          "type": "string",
          "pattern": "^[a-z_]{1,40}$",
          "description": "Field to sort by, for example visitors, views, sessions or bounce_rate."
        },
        "event": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Event name."
        },
        "limit": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1,
          "description": "Results per page, 1-100 (default 25)."
        },
        "offset": {
          "type": "integer",
          "maximum": 1000000,
          "minimum": 0,
          "description": "Results to skip (default 0). Pass the previous reply's next_offset."
        },
        "search": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Only rows whose main field contains this text."
        },
        "direction": {
          "enum": [
            "asc",
            "desc"
          ],
          "type": "string",
          "description": "Sort direction."
        },
        "domain_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]+$",
          "maxLength": 64,
          "minLength": 1,
          "description": "Pirsch domain (dashboard) id. Get it from pirsch_list_domains."
        }
      }
    }
    arguments 73 lines
  • pirsch_list_funnels auth-required never probed

    The funnels defined for a dashboard, with their steps and step filters. Use a funnel id in pirsch_get_funnel. GET /api/v1/funnel.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "domain_id"
      ],
      "properties": {
        "search": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Only funnels whose name contains this text."
        },
        "domain_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]+$",
          "maxLength": 64,
          "minLength": 1,
          "description": "Pirsch domain (dashboard) id. Get it from pirsch_list_domains."
        }
      }
    }
    arguments 22 lines
  • pirsch_get_funnel auth-required never probed

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "domain_id",
        "from",
        "to",
        "funnel_id"
      ],
      "properties": {
        "os": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Operating system. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "to": {
          "type": "string",
          "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
          "description": "Last day, yyyy-mm-dd, whole day included."
        },
        "tz": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_+\\-/]+$",
          "maxLength": 64,
          "minLength": 1,
          "description": "IANA time zone such as Europe/Berlin. Default: the dashboard's time zone."
        },
        "tag": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Tag key to filter for."
        },
        "city": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "City name. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "from": {
          "type": "string",
          "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
          "description": "First day, yyyy-mm-dd (in the dashboard time zone unless tz is set)."
        },
        "path": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Page path, for example /pricing. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "tags": {
          "type": "object",
          "description": "Tag key/value pairs; only results with all pairs match.",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "string",
            "maxLength": 500
          }
        },
        "event": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Event name. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "browser": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Browser. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "channel": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Traffic channel such as \"Paid Search\" or \"Organic Search\". Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "country": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "ISO 3166 alpha-2 country code such as jp. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "pattern": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Regular expression that filters and groups pages, for example (?i)^/blog/[^/]+$."
        },
        "hostname": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Hostname (useful for rollup views). Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "language": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "ISO 639-1 language code such as en. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "platform": {
          "enum": [
            "desktop",
            "mobile",
            "unknown"
          ],
          "type": "string",
          "description": "Platform."
        },
        "referrer": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Referrer, usually a URL. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_term": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM term. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "domain_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]+$",
          "maxLength": 64,
          "minLength": 1,
          "description": "Pirsch domain (dashboard) id. Get it from pirsch_list_domains."
        },
        "exit_path": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Exit page path. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "funnel_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]+$",
          "maxLength": 64,
          "minLength": 1,
          "description": "Funnel id from pirsch_list_funnels."
        },
        "entry_path": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Entry page path. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "event_meta": {
          "type": "object",
          "description": "Event metadata key/value pairs; only events with all pairs match.",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "string",
            "maxLength": 500
          }
        },
        "utm_medium": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM medium. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_source": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM source. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_content": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM content. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "screen_class": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Screen class XXL, XL, L, M or S. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_campaign": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM campaign. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "referrer_name": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Referrer name, usually the hostname. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        }
      }
    }
    arguments 200 lines
  • pirsch_get_tag_breakdown auth-required never probed

    The values of one tag key with views and share. The tag filter (the key) is required. GET /api/v1/statistics/tag/details.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "domain_id",
        "from",
        "to",
        "tag"
      ],
      "properties": {
        "to": {
          "type": "string",
          "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
          "description": "Last day, yyyy-mm-dd, whole day included."
        },
        "tz": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_+\\-/]+$",
          "maxLength": 64,
          "minLength": 1,
          "description": "IANA time zone such as Europe/Berlin. Default: the dashboard's time zone."
        },
        "tag": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Tag key to break down."
        },
        "from": {
          "type": "string",
          "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
          "description": "First day, yyyy-mm-dd (in the dashboard time zone unless tz is set)."
        },
        "sort": {
          "type": "string",
          "pattern": "^[a-z_]{1,40}$",
          "description": "Field to sort by, for example visitors, views, sessions or bounce_rate."
        },
        "limit": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1,
          "description": "Results per page, 1-100 (default 25)."
        },
        "offset": {
          "type": "integer",
          "maximum": 1000000,
          "minimum": 0,
          "description": "Results to skip (default 0). Pass the previous reply's next_offset."
        },
        "search": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Only rows whose main field contains this text."
        },
        "direction": {
          "enum": [
            "asc",
            "desc"
          ],
          "type": "string",
          "description": "Sort direction."
        },
        "domain_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]+$",
          "maxLength": 64,
          "minLength": 1,
          "description": "Pirsch domain (dashboard) id. Get it from pirsch_list_domains."
        }
      }
    }
    arguments 73 lines
  • pirsch_get_session auth-required never probed

    All page views and events of one session in time order. Both ids come from pirsch_list_sessions. GET /api/v1/statistics/session/details.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "domain_id",
        "from",
        "to",
        "visitor_id",
        "session_id"
      ],
      "properties": {
        "to": {
          "type": "string",
          "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
          "description": "Last day, yyyy-mm-dd, whole day included."
        },
        "tz": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_+\\-/]+$",
          "maxLength": 64,
          "minLength": 1,
          "description": "IANA time zone such as Europe/Berlin. Default: the dashboard's time zone."
        },
        "from": {
          "type": "string",
          "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
          "description": "First day, yyyy-mm-dd (in the dashboard time zone unless tz is set)."
        },
        "domain_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]+$",
          "maxLength": 64,
          "minLength": 1,
          "description": "Pirsch domain (dashboard) id. Get it from pirsch_list_domains."
        },
        "session_id": {
          "type": "string",
          "pattern": "^\\d{1,20}$",
          "description": "session_id from pirsch_list_sessions."
        },
        "visitor_id": {
          "type": "string",
          "pattern": "^\\d{1,20}$",
          "description": "visitor_id from pirsch_list_sessions."
        }
      }
    }
    arguments 47 lines
  • pirsch_list_filter_values auth-required never probed

    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}.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "domain_id",
        "from",
        "to",
        "dimension"
      ],
      "properties": {
        "to": {
          "type": "string",
          "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
          "description": "Last day, yyyy-mm-dd, whole day included."
        },
        "tz": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_+\\-/]+$",
          "maxLength": 64,
          "minLength": 1,
          "description": "IANA time zone such as Europe/Berlin. Default: the dashboard's time zone."
        },
        "from": {
          "type": "string",
          "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
          "description": "First day, yyyy-mm-dd (in the dashboard time zone unless tz is set)."
        },
        "search": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Only values that contain this text."
        },
        "dimension": {
          "enum": [
            "hostname",
            "page",
            "referrer",
            "channel",
            "event",
            "country",
            "region",
            "city",
            "language",
            "browser",
            "os",
            "utm/source",
            "utm/medium",
            "utm/campaign",
            "utm/content",
            "utm/term",
            "tag",
            "metadata/keys"
          ],
          "type": "string",
          "description": "Which filter to list values for."
        },
        "domain_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]+$",
          "maxLength": 64,
          "minLength": 1,
          "description": "Pirsch domain (dashboard) id. Get it from pirsch_list_domains."
        }
      }
    }
    arguments 66 lines
  • pirsch_list_domains auth-required 1h ago

    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.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "search": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Only domains whose hostname contains this text."
        }
      }
    }
    arguments 12 lines
  • pirsch_list_goals auth-required never probed

    Conversion goals with their definition (page pattern, event, targets) and the visitors, views and conversion rate for the period. GET /api/v1/statistics/goals.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "domain_id",
        "from",
        "to"
      ],
      "properties": {
        "os": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Operating system. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "to": {
          "type": "string",
          "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
          "description": "Last day, yyyy-mm-dd, whole day included."
        },
        "tz": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_+\\-/]+$",
          "maxLength": 64,
          "minLength": 1,
          "description": "IANA time zone such as Europe/Berlin. Default: the dashboard's time zone."
        },
        "tag": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Tag key to filter for."
        },
        "city": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "City name. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "from": {
          "type": "string",
          "pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
          "description": "First day, yyyy-mm-dd (in the dashboard time zone unless tz is set)."
        },
        "path": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Page path, for example /pricing. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "sort": {
          "type": "string",
          "pattern": "^[a-z_]{1,40}$",
          "description": "Field to sort by, for example visitors, views, sessions or bounce_rate."
        },
        "tags": {
          "type": "object",
          "description": "Tag key/value pairs; only results with all pairs match.",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "string",
            "maxLength": 500
          }
        },
        "event": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Event name. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "limit": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1,
          "description": "Results per page, 1-100 (default 25)."
        },
        "offset": {
          "type": "integer",
          "maximum": 1000000,
          "minimum": 0,
          "description": "Results to skip (default 0). Pass the previous reply's next_offset."
        },
        "search": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Only rows whose main field contains this text."
        },
        "browser": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Browser. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "channel": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Traffic channel such as \"Paid Search\" or \"Organic Search\". Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "country": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "ISO 3166 alpha-2 country code such as jp. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "pattern": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Regular expression that filters and groups pages, for example (?i)^/blog/[^/]+$."
        },
        "hostname": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Hostname (useful for rollup views). Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "language": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "ISO 639-1 language code such as en. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "platform": {
          "enum": [
            "desktop",
            "mobile",
            "unknown"
          ],
          "type": "string",
          "description": "Platform."
        },
        "referrer": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Referrer, usually a URL. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_term": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM term. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "direction": {
          "enum": [
            "asc",
            "desc"
          ],
          "type": "string",
          "description": "Sort direction."
        },
        "domain_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]+$",
          "maxLength": 64,
          "minLength": 1,
          "description": "Pirsch domain (dashboard) id. Get it from pirsch_list_domains."
        },
        "exit_path": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Exit page path. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "entry_path": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Entry page path. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "event_meta": {
          "type": "object",
          "description": "Event metadata key/value pairs; only events with all pairs match.",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "string",
            "maxLength": 500
          }
        },
        "utm_medium": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM medium. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_source": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM source. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_content": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM content. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "screen_class": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Screen class XXL, XL, L, M or S. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "utm_campaign": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "UTM campaign. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        },
        "referrer_name": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "description": "Referrer name, usually the hostname. Optional filter. A value may start with ! (is not), ~ (contains) or ^ (does not contain)."
        }
      }
    }
    arguments 223 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id 4f81d7449fce38d3.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/4f81d7449fce38d3/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/4f81d7449fce38d3/badge.svg)](https://brick.blue/agent/4f81d7449fce38d3?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we know
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.

_ also on usefulapi.io 84 entries

Served from the same domain, which is what was measured. Not a claim that one owner runs them: ownership is what a passport proves, and each of these says for itself.

76 more sit on this domain. All of them.