PageLens Analytics

Cookieless web analytics and AI Visibility: traffic, funnels, errors, and which AI bots read you.

Sollte ich dies verwenden

Qualität und Sicherheit

A
Qualität der Beschreibung
92%
Vollständigkeit des Schemas
95%
Qualität der Benennung
100%
Risiko der Vergiftung
100%
Übereinstimmung der Berechtigungen
90%
Einhaltung des Protokolls
100%

Befunde (7)

  • LOWTool 'get_pages' description lacks action verbin get_pages
  • LOWTool 'list_sessions' description lacks action verbin list_sessions
  • LOWTool 'get_session' description lacks action verbin get_session
  • LOWTool 'get_web_vitals' description lacks action verbin get_web_vitals
  • LOWTool 'get_journeys' description lacks action verbin get_journeys
  • LOWTool 'get_retention' description lacks action verbin get_retention
  • LOWTool 'get_web_vitals' suggests web access but openWorldHint=falsein get_web_vitals

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~6,168Tokens (Tool-Definitionen)
~2.4 KBTypische Antwortgröße
Erhebliche Auswirkung auf die Aufmerksamkeit (4.82% von 128k Kontext)

Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.

Installieren

Installation mit einem Klick

Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:

{
  "mcpServers": {
    "pagelens": {
      "url": "https://app.pagelens.io/mcp"
    }
  }
}

Remote-Endpunkte

https://app.pagelens.io/mcpstreamable-http

Was es kann

Tool-Inventar

Tools (23)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢list_sites

List the websites this key can access, with visitors in the last 24 hours.

Eingabe-Schema

{
  "type": "object",
  "properties": {}
}
🟢list_segments(site_id)

Saved segments (named filter sets such as "Paid traffic" or "Mobile in Germany") that can be applied to any report with segment_id.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "site_id": {
      "type": "string",
      "description": "Site id from list_sites"
    }
  },
  "required": [
    "site_id"
  ]
}
🟢get_overview(site_id, period, from, to, timezone, ...)

Headline metrics (visitors, sessions, pageviews, pages per session, bounce rate, average session duration) for a period, compared with the previous period of the same length, plus a time series.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "site_id": {
      "type": "string",
      "description": "Site id from list_sites"
    },
    "period": {
      "type": "string",
      "enum": [
        "today",
        "yesterday",
        "24h",
        "7d",
        "30d",
        "90d",
        "12m"
      ],
      "description": "Time range (default 7d)"
    },
    "from": {
      "type": "string",
      "description": "Start date YYYY-MM-DD (overrides period)"
    },
    "to": {
      "type": "string",
      "description": "End date YYYY-MM-DD, inclusive (default today)"
    },
    "timezone": {
      "type": "string",
      "description": "IANA timezone for days and hours, e.g. Europe/Berlin (default UTC)"
    },
    "filters": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Optional filters \"dimension:value\" (is). Other operators go after the dimension: \"page!:/x\" is not, \"page~:blog\" contains, \"page!~:blog\" does not contain, \"page^:/docs\" starts with. Dimensions: page, title, hostname, referrer, channel, utm_source, utm_medium, utm_campaign, browser, os, device, screen, country (ISO code), city, language, event, tag"
    },
    "segment_id": {
      "type": "string",
      "description": "Apply a saved segment (see list_segments); combines with filters"
    },
    "include_series": {
      "type": "boolean",
      "description": "Include the per-day/hour series (default true)"
    }
  },
  "required": [
    "site_id"
  ]
}
🟢get_breakdown(site_id, dimension, period, from, to, ...)

Top values of one dimension (pages, entry/exit pages, referrers, channels, UTM tags, countries, cities, browsers, OS, devices, languages, custom events, outbound links) with visitors and sessions.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "site_id": {
      "type": "string",
      "description": "Site id from list_sites"
    },
    "dimension": {
      "type": "string",
      "enum": [
        "page",
        "entry",
        "exit",
        "title",
        "hostname",
        "referrer",
        "channel",
        "utm_source",
        "utm_medium",
        "utm_campaign",
        "tag",
        "browser",
        "os",
        "device",
        "screen",
        "country",
        "city",
        "language",
        "event",
        "outbound"
      ]
    },
    "period": {
      "type": "string",
      "enum": [
        "today",
        "yesterday",
        "24h",
        "7d",
        "30d",
        "90d",
        "12m"
      ],
      "description": "Time range (default 7d)"
    },
    "from": {
      "type": "string",
      "description": "Start date YYYY-MM-DD (overrides period)"
    },
    "to": {
      "type": "string",
      "description": "End date YYYY-MM-DD, inclusive (default today)"
    },
    "timezone": {
      "type": "string",
      "description": "IANA timezone for days and hours, e.g. Europe/Berlin (default UTC)"
    },
    "filters": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Optional filters \"dimension:value\" (is). Other operators go after the dimension: \"page!:/x\" is not, \"page~:blog\" contains, \"page!~:blog\" does not contain, \"page^:/docs\" starts with. Dimensions: page, title, hostname, referrer, channel, utm_source, utm_medium, utm_campaign, browser, os, device, screen, country (ISO code), city, language, event, tag"
    },
    "segment_id": {
      "type": "string",
      "description": "Apply a saved segment (see list_segments); combines with filters"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "description": "Rows to return (default 10)"
    },
    "search": {
      "type": "string",
      "description": "Only values containing this text"
    }
  },
  "required": [
    "site_id",
    "dimension"
  ]
}
🟢get_pages(site_id, period, from, to, timezone, ...)

Per-page metrics: visitors, pageviews, entries, bounce rate and time on page.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "site_id": {
      "type": "string",
      "description": "Site id from list_sites"
    },
    "period": {
      "type": "string",
      "enum": [
        "today",
        "yesterday",
        "24h",
        "7d",
        "30d",
        "90d",
        "12m"
      ],
      "description": "Time range (default 7d)"
    },
    "from": {
      "type": "string",
      "description": "Start date YYYY-MM-DD (overrides period)"
    },
    "to": {
      "type": "string",
      "description": "End date YYYY-MM-DD, inclusive (default today)"
    },
    "timezone": {
      "type": "string",
      "description": "IANA timezone for days and hours, e.g. Europe/Berlin (default UTC)"
    },
    "filters": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Optional filters \"dimension:value\" (is). Other operators go after the dimension: \"page!:/x\" is not, \"page~:blog\" contains, \"page!~:blog\" does not contain, \"page^:/docs\" starts with. Dimensions: page, title, hostname, referrer, channel, utm_source, utm_medium, utm_campaign, browser, os, device, screen, country (ISO code), city, language, event, tag"
    },
    "segment_id": {
      "type": "string",
      "description": "Apply a saved segment (see list_segments); combines with filters"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "description": "Rows to return (default 10)"
    }
  },
  "required": [
    "site_id"
  ]
}
🟢get_realtime(site_id)

Visitors online right now (last 5 minutes) and what they are viewing.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "site_id": {
      "type": "string",
      "description": "Site id from list_sites"
    }
  },
  "required": [
    "site_id"
  ]
}
🟢list_sessions(site_id, period, from, to, timezone, ...)

Recent sessions with entry/exit page, pages viewed, duration, source, location and device.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "site_id": {
      "type": "string",
      "description": "Site id from list_sites"
    },
    "period": {
      "type": "string",
      "enum": [
        "today",
        "yesterday",
        "24h",
        "7d",
        "30d",
        "90d",
        "12m"
      ],
      "description": "Time range (default 7d)"
    },
    "from": {
      "type": "string",
      "description": "Start date YYYY-MM-DD (overrides period)"
    },
    "to": {
      "type": "string",
      "description": "End date YYYY-MM-DD, inclusive (default today)"
    },
    "timezone": {
      "type": "string",
      "description": "IANA timezone for days and hours, e.g. Europe/Berlin (default UTC)"
    },
    "filters": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Optional filters \"dimension:value\" (is). Other operators go after the dimension: \"page!:/x\" is not, \"page~:blog\" contains, \"page!~:blog\" does not contain, \"page^:/docs\" starts with. Dimensions: page, title, hostname, referrer, channel, utm_source, utm_medium, utm_campaign, browser, os, device, screen, country (ISO code), city, language, event, tag"
    },
    "segment_id": {
      "type": "string",
      "description": "Apply a saved segment (see list_segments); combines with filters"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "description": "Rows to return (default 10)"
    },
    "kind": {
      "type": "string",
      "enum": [
        "all",
        "engaged",
        "bounced",
        "errors",
        "replay"
      ]
    },
    "user_id": {
      "type": "string",
      "description": "Only sessions of this identified user"
    }
  },
  "required": [
    "site_id"
  ]
}
🟢get_session(site_id, session_id)

Every pageview and event in one session, in order.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "site_id": {
      "type": "string",
      "description": "Site id from list_sites"
    },
    "session_id": {
      "type": "string"
    }
  },
  "required": [
    "site_id",
    "session_id"
  ]
}
🟢get_events(site_id, period, from, to, timezone, ...)

Custom events (sent with pagelens.track) and outbound clicks with counts and their properties.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "site_id": {
      "type": "string",
      "description": "Site id from list_sites"
    },
    "period": {
      "type": "string",
      "enum": [
        "today",
        "yesterday",
        "24h",
        "7d",
        "30d",
        "90d",
        "12m"
      ],
      "description": "Time range (default 7d)"
    },
    "from": {
      "type": "string",
      "description": "Start date YYYY-MM-DD (overrides period)"
    },
    "to": {
      "type": "string",
      "description": "End date YYYY-MM-DD, inclusive (default today)"
    },
    "timezone": {
      "type": "string",
      "description": "IANA timezone for days and hours, e.g. Europe/Berlin (default UTC)"
    },
    "filters": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Optional filters \"dimension:value\" (is). Other operators go after the dimension: \"page!:/x\" is not, \"page~:blog\" contains, \"page!~:blog\" does not contain, \"page^:/docs\" starts with. Dimensions: page, title, hostname, referrer, channel, utm_source, utm_medium, utm_campaign, browser, os, device, screen, country (ISO code), city, language, event, tag"
    },
    "segment_id": {
      "type": "string",
      "description": "Apply a saved segment (see list_segments); combines with filters"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "description": "Rows to return (default 10)"
    }
  },
  "required": [
    "site_id"
  ]
}
🟢get_errors(site_id, period, from, to, timezone, ...)

JavaScript errors grouped by message, with occurrences, affected sessions and pages.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "site_id": {
      "type": "string",
      "description": "Site id from list_sites"
    },
    "period": {
      "type": "string",
      "enum": [
        "today",
        "yesterday",
        "24h",
        "7d",
        "30d",
        "90d",
        "12m"
      ],
      "description": "Time range (default 7d)"
    },
    "from": {
      "type": "string",
      "description": "Start date YYYY-MM-DD (overrides period)"
    },
    "to": {
      "type": "string",
      "description": "End date YYYY-MM-DD, inclusive (default today)"
    },
    "timezone": {
      "type": "string",
      "description": "IANA timezone for days and hours, e.g. Europe/Berlin (default UTC)"
    },
    "filters": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Optional filters \"dimension:value\" (is). Other operators go after the dimension: \"page!:/x\" is not, \"page~:blog\" contains, \"page!~:blog\" does not contain, \"page^:/docs\" starts with. Dimensions: page, title, hostname, referrer, channel, utm_source, utm_medium, utm_campaign, browser, os, device, screen, country (ISO code), city, language, event, tag"
    },
    "segment_id": {
      "type": "string",
      "description": "Apply a saved segment (see list_segments); combines with filters"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "description": "Rows to return (default 10)"
    }
  },
  "required": [
    "site_id"
  ]
}
🟢get_web_vitals(site_id, period, from, to, timezone, ...)

Core Web Vitals from real visitors (LCP, INP, CLS, FCP, TTFB) at p50/p75/p90, overall and per page.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "site_id": {
      "type": "string",
      "description": "Site id from list_sites"
    },
    "period": {
      "type": "string",
      "enum": [
        "today",
        "yesterday",
        "24h",
        "7d",
        "30d",
        "90d",
        "12m"
      ],
      "description": "Time range (default 7d)"
    },
    "from": {
      "type": "string",
      "description": "Start date YYYY-MM-DD (overrides period)"
    },
    "to": {
      "type": "string",
      "description": "End date YYYY-MM-DD, inclusive (default today)"
    },
    "timezone": {
      "type": "string",
      "description": "IANA timezone for days and hours, e.g. Europe/Berlin (default UTC)"
    },
    "filters": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Optional filters \"dimension:value\" (is). Other operators go after the dimension: \"page!:/x\" is not, \"page~:blog\" contains, \"page!~:blog\" does not contain, \"page^:/docs\" starts with. Dimensions: page, title, hostname, referrer, channel, utm_source, utm_medium, utm_campaign, browser, os, device, screen, country (ISO code), city, language, event, tag"
    },
    "segment_id": {
      "type": "string",
      "description": "Apply a saved segment (see list_segments); combines with filters"
    }
  },
  "required": [
    "site_id"
  ]
}
🟢get_journeys(site_id, period, from, to, timezone, ...)

Most common page-to-page paths visitors take.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "site_id": {
      "type": "string",
      "description": "Site id from list_sites"
    },
    "period": {
      "type": "string",
      "enum": [
        "today",
        "yesterday",
        "24h",
        "7d",
        "30d",
        "90d",
        "12m"
      ],
      "description": "Time range (default 7d)"
    },
    "from": {
      "type": "string",
      "description": "Start date YYYY-MM-DD (overrides period)"
    },
    "to": {
      "type": "string",
      "description": "End date YYYY-MM-DD, inclusive (default today)"
    },
    "timezone": {
      "type": "string",
      "description": "IANA timezone for days and hours, e.g. Europe/Berlin (default UTC)"
    },
    "filters": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Optional filters \"dimension:value\" (is). Other operators go after the dimension: \"page!:/x\" is not, \"page~:blog\" contains, \"page!~:blog\" does not contain, \"page^:/docs\" starts with. Dimensions: page, title, hostname, referrer, channel, utm_source, utm_medium, utm_campaign, browser, os, device, screen, country (ISO code), city, language, event, tag"
    },
    "segment_id": {
      "type": "string",
      "description": "Apply a saved segment (see list_segments); combines with filters"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "description": "Rows to return (default 10)"
    }
  },
  "required": [
    "site_id"
  ]
}
🟢run_funnel(site_id, steps, mode, compare_previous, period, ...)

Conversion funnel: how many sessions completed each step. Steps are pages (path, * wildcard allowed), custom event names, or a page scrolled at least `threshold` percent (type scroll). mode: ordered (default; other pages may come in between), strict (each step right after the previous one) or flexible (middle steps may be skipped). compare_previous adds the same funnel over the previous period.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "site_id": {
      "type": "string",
      "description": "Site id from list_sites"
    },
    "steps": {
      "type": "array",
      "minItems": 2,
      "maxItems": 10,
      "items": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "page",
              "event",
              "scroll"
            ]
          },
          "value": {
            "type": "string"
          },
          "threshold": {
            "type": "integer"
          }
        },
        "required": [
          "type",
          "value"
        ]
      }
    },
    "mode": {
      "type": "string",
      "enum": [
        "ordered",
        "strict",
        "flexible"
      ]
    },
    "compare_previous": {
      "type": "boolean"
    },
    "period": {
      "type": "string",
      "enum": [
        "today",
        "yesterday",
        "24h",
        "7d",
        "30d",
        "90d",
        "12m"
      ],
      "description": "Time range (default 7d)"
    },
    "from": {
      "type": "string",
      "description": "Start date YYYY-MM-DD (overrides period)"
    },
    "to": {
      "type": "string",
      "description": "End date YYYY-MM-DD, inclusive (default today)"
    },
    "timezone": {
      "type": "string",
      "description": "IANA timezone for days and hours, e.g. Europe/Berlin (default UTC)"
    },
    "filters": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Optional filters \"dimension:value\" (is). Other operators go after the dimension: \"page!:/x\" is not, \"page~:blog\" contains, \"page!~:blog\" does not contain, \"page^:/docs\" starts with. Dimensions: page, title, hostname, referrer, channel, utm_source, utm_medium, utm_campaign, browser, os, device, screen, country (ISO code), city, language, event, tag"
    },
    "segment_id": {
      "type": "string",
      "description": "Apply a saved segment (see list_segments); combines with filters"
    }
  },
  "required": [
    "site_id",
    "steps"
  ]
}
🟢list_goals(site_id, period, from, to, timezone, ...)

Goals with conversions and conversion rate for the period, compared with the previous period.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "site_id": {
      "type": "string",
      "description": "Site id from list_sites"
    },
    "period": {
      "type": "string",
      "enum": [
        "today",
        "yesterday",
        "24h",
        "7d",
        "30d",
        "90d",
        "12m"
      ],
      "description": "Time range (default 7d)"
    },
    "from": {
      "type": "string",
      "description": "Start date YYYY-MM-DD (overrides period)"
    },
    "to": {
      "type": "string",
      "description": "End date YYYY-MM-DD, inclusive (default today)"
    },
    "timezone": {
      "type": "string",
      "description": "IANA timezone for days and hours, e.g. Europe/Berlin (default UTC)"
    },
    "filters": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Optional filters \"dimension:value\" (is). Other operators go after the dimension: \"page!:/x\" is not, \"page~:blog\" contains, \"page!~:blog\" does not contain, \"page^:/docs\" starts with. Dimensions: page, title, hostname, referrer, channel, utm_source, utm_medium, utm_campaign, browser, os, device, screen, country (ISO code), city, language, event, tag"
    },
    "segment_id": {
      "type": "string",
      "description": "Apply a saved segment (see list_segments); combines with filters"
    }
  },
  "required": [
    "site_id"
  ]
}
🟡create_goal(site_id, name, type, value, threshold)

Create a goal that counts sessions visiting a page, firing a custom event, or scrolling a page at least `threshold` percent (type scroll). Needs a write key and member access or higher.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "site_id": {
      "type": "string",
      "description": "Site id from list_sites"
    },
    "name": {
      "type": "string"
    },
    "type": {
      "type": "string",
      "enum": [
        "page",
        "event",
        "scroll"
      ]
    },
    "value": {
      "type": "string",
      "description": "Page path (wildcards allowed) or event name"
    },
    "threshold": {
      "type": "integer",
      "description": "For scroll goals: percentage of the page scrolled, e.g. 75"
    }
  },
  "required": [
    "site_id",
    "type",
    "value"
  ]
}
🟡add_annotation(site_id, date, text)

Mark a date on the charts (a release, a campaign, an outage). Needs a write key and member access or higher.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "site_id": {
      "type": "string",
      "description": "Site id from list_sites"
    },
    "date": {
      "type": "string",
      "description": "YYYY-MM-DD"
    },
    "text": {
      "type": "string"
    }
  },
  "required": [
    "site_id",
    "date",
    "text"
  ]
}
🟢get_retention(site_id, unit, timezone)

Cohort retention of identified users (pagelens.identify): share of each daily or weekly cohort that came back in later periods.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "site_id": {
      "type": "string",
      "description": "Site id from list_sites"
    },
    "unit": {
      "type": "string",
      "enum": [
        "day",
        "week"
      ]
    },
    "timezone": {
      "type": "string",
      "description": "IANA timezone for days and hours, e.g. Europe/Berlin (default UTC)"
    }
  },
  "required": [
    "site_id"
  ]
}
🟢list_users(site_id, period, from, to, timezone, ...)

Users active in the period: identified users (with traits) and anonymous visitors, with sessions, pageviews and first source.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "site_id": {
      "type": "string",
      "description": "Site id from list_sites"
    },
    "period": {
      "type": "string",
      "enum": [
        "today",
        "yesterday",
        "24h",
        "7d",
        "30d",
        "90d",
        "12m"
      ],
      "description": "Time range (default 7d)"
    },
    "from": {
      "type": "string",
      "description": "Start date YYYY-MM-DD (overrides period)"
    },
    "to": {
      "type": "string",
      "description": "End date YYYY-MM-DD, inclusive (default today)"
    },
    "timezone": {
      "type": "string",
      "description": "IANA timezone for days and hours, e.g. Europe/Berlin (default UTC)"
    },
    "filters": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Optional filters \"dimension:value\" (is). Other operators go after the dimension: \"page!:/x\" is not, \"page~:blog\" contains, \"page!~:blog\" does not contain, \"page^:/docs\" starts with. Dimensions: page, title, hostname, referrer, channel, utm_source, utm_medium, utm_campaign, browser, os, device, screen, country (ISO code), city, language, event, tag"
    },
    "segment_id": {
      "type": "string",
      "description": "Apply a saved segment (see list_segments); combines with filters"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "description": "Rows to return (default 10)"
    },
    "kind": {
      "type": "string",
      "enum": [
        "all",
        "identified",
        "anonymous"
      ]
    },
    "search": {
      "type": "string",
      "description": "Match user id, name or email"
    }
  },
  "required": [
    "site_id"
  ]
}
🟢get_user(site_id, user_id)

Profile of one identified user (traits, first/last seen, totals) and their sessions.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "site_id": {
      "type": "string",
      "description": "Site id from list_sites"
    },
    "user_id": {
      "type": "string"
    }
  },
  "required": [
    "site_id",
    "user_id"
  ]
}
🟢get_search_console(site_id, dimension, period, from, to, ...)

Google Search Console data for the site (when connected): clicks, impressions, CTR and average position in Google Search, by query, page, country or device, plus a daily series. Data lags about 2 days.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "site_id": {
      "type": "string",
      "description": "Site id from list_sites"
    },
    "dimension": {
      "type": "string",
      "enum": [
        "query",
        "page",
        "country",
        "device"
      ]
    },
    "period": {
      "type": "string",
      "enum": [
        "today",
        "yesterday",
        "24h",
        "7d",
        "30d",
        "90d",
        "12m"
      ],
      "description": "Time range (default 7d)"
    },
    "from": {
      "type": "string",
      "description": "Start date YYYY-MM-DD (overrides period)"
    },
    "to": {
      "type": "string",
      "description": "End date YYYY-MM-DD, inclusive (default today)"
    },
    "timezone": {
      "type": "string",
      "description": "IANA timezone for days and hours, e.g. Europe/Berlin (default UTC)"
    },
    "filters": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Optional filters \"dimension:value\" (is). Other operators go after the dimension: \"page!:/x\" is not, \"page~:blog\" contains, \"page!~:blog\" does not contain, \"page^:/docs\" starts with. Dimensions: page, title, hostname, referrer, channel, utm_source, utm_medium, utm_campaign, browser, os, device, screen, country (ISO code), city, language, event, tag"
    },
    "segment_id": {
      "type": "string",
      "description": "Apply a saved segment (see list_segments); combines with filters"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "description": "Rows to return (default 10)"
    },
    "search": {
      "type": "string",
      "description": "Only queries (or pages) containing this text"
    }
  },
  "required": [
    "site_id"
  ]
}
🔴delete_user_data(site_id, user_id)

GDPR erasure: permanently delete all events, session replays and the profile of one user on a site. Needs a write key and admin access.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "site_id": {
      "type": "string",
      "description": "Site id from list_sites"
    },
    "user_id": {
      "type": "string",
      "description": "Identified user id, or \"anon:<visitor_id>\" for an anonymous visitor"
    }
  },
  "required": [
    "site_id",
    "user_id"
  ]
}
🟢get_bots_and_ai(site_id, period, from, to, timezone, ...)

Bot and AI traffic: AI crawlers (GPTBot, ClaudeBot…), AI assistants fetching pages, search engines, and human visits referred by AI assistants (ChatGPT, Perplexity, Claude…).

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "site_id": {
      "type": "string",
      "description": "Site id from list_sites"
    },
    "period": {
      "type": "string",
      "enum": [
        "today",
        "yesterday",
        "24h",
        "7d",
        "30d",
        "90d",
        "12m"
      ],
      "description": "Time range (default 7d)"
    },
    "from": {
      "type": "string",
      "description": "Start date YYYY-MM-DD (overrides period)"
    },
    "to": {
      "type": "string",
      "description": "End date YYYY-MM-DD, inclusive (default today)"
    },
    "timezone": {
      "type": "string",
      "description": "IANA timezone for days and hours, e.g. Europe/Berlin (default UTC)"
    },
    "filters": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Optional filters \"dimension:value\" (is). Other operators go after the dimension: \"page!:/x\" is not, \"page~:blog\" contains, \"page!~:blog\" does not contain, \"page^:/docs\" starts with. Dimensions: page, title, hostname, referrer, channel, utm_source, utm_medium, utm_campaign, browser, os, device, screen, country (ISO code), city, language, event, tag"
    },
    "segment_id": {
      "type": "string",
      "description": "Apply a saved segment (see list_segments); combines with filters"
    }
  },
  "required": [
    "site_id"
  ]
}
🟢get_ai_visibility(site_id, period, from, to, timezone, ...)

How the site shows up in AI assistants, per AI company (OpenAI/ChatGPT, Anthropic/Claude, Perplexity, Google/Gemini…) and per page: crawler reads, live fetches while answering a person, human visits sent back, purchases and revenue, robots.txt access, and plain-language findings.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "site_id": {
      "type": "string",
      "description": "Site id from list_sites"
    },
    "period": {
      "type": "string",
      "enum": [
        "today",
        "yesterday",
        "24h",
        "7d",
        "30d",
        "90d",
        "12m"
      ],
      "description": "Time range (default 7d)"
    },
    "from": {
      "type": "string",
      "description": "Start date YYYY-MM-DD (overrides period)"
    },
    "to": {
      "type": "string",
      "description": "End date YYYY-MM-DD, inclusive (default today)"
    },
    "timezone": {
      "type": "string",
      "description": "IANA timezone for days and hours, e.g. Europe/Berlin (default UTC)"
    },
    "filters": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Optional filters \"dimension:value\" (is). Other operators go after the dimension: \"page!:/x\" is not, \"page~:blog\" contains, \"page!~:blog\" does not contain, \"page^:/docs\" starts with. Dimensions: page, title, hostname, referrer, channel, utm_source, utm_medium, utm_campaign, browser, os, device, screen, country (ISO code), city, language, event, tag"
    },
    "segment_id": {
      "type": "string",
      "description": "Apply a saved segment (see list_segments); combines with filters"
    }
  },
  "required": [
    "site_id"
  ]
}

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet23 Tools