PageLens Analytics

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

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
92%
Integridad del esquema
95%
Calidad de los nombres
100%
Riesgo de envenenamiento
100%
Coincidencia de permisos
90%
Cumplimiento del protocolo
100%

Hallazgos (7)

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

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~6,168Tokens (definiciones de herramientas)
~2.4 KBTamaño de respuesta típico
Impacto significativo en la atención (4.82% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

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

Puntos de conexión remotos

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

Qué puede hacer

Inventario de herramientas

Herramientas (23)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢list_sites

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

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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…).

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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"
  ]
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada23 herramientas