PageLens Analytics
Server Details
Cookieless web analytics and AI Visibility: traffic, funnels, errors, and which AI bots read you.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Score is being calculated.
Available Tools
23 toolsadd_annotationInspect
Mark a date on the charts (a release, a campaign, an outage). Needs a write key and member access or higher.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | YYYY-MM-DD | |
| text | Yes | ||
| site_id | Yes | Site id from list_sites |
create_goalInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| type | Yes | ||
| value | Yes | Page path (wildcards allowed) or event name | |
| site_id | Yes | Site id from list_sites | |
| threshold | No | For scroll goals: percentage of the page scrolled, e.g. 75 |
delete_user_dataDestructiveInspect
GDPR erasure: permanently delete all events, session replays and the profile of one user on a site. Needs a write key and admin access.
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | Yes | Site id from list_sites | |
| user_id | Yes | Identified user id, or "anon:<visitor_id>" for an anonymous visitor |
get_ai_visibilityRead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date YYYY-MM-DD, inclusive (default today) | |
| from | No | Start date YYYY-MM-DD (overrides period) | |
| period | No | Time range (default 7d) | |
| filters | No | 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 | |
| site_id | Yes | Site id from list_sites | |
| timezone | No | IANA timezone for days and hours, e.g. Europe/Berlin (default UTC) | |
| segment_id | No | Apply a saved segment (see list_segments); combines with filters |
get_bots_and_aiRead-onlyInspect
Bot and AI traffic: AI crawlers (GPTBot, ClaudeBot…), AI assistants fetching pages, search engines, and human visits referred by AI assistants (ChatGPT, Perplexity, Claude…).
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date YYYY-MM-DD, inclusive (default today) | |
| from | No | Start date YYYY-MM-DD (overrides period) | |
| period | No | Time range (default 7d) | |
| filters | No | 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 | |
| site_id | Yes | Site id from list_sites | |
| timezone | No | IANA timezone for days and hours, e.g. Europe/Berlin (default UTC) | |
| segment_id | No | Apply a saved segment (see list_segments); combines with filters |
get_breakdownRead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date YYYY-MM-DD, inclusive (default today) | |
| from | No | Start date YYYY-MM-DD (overrides period) | |
| limit | No | Rows to return (default 10) | |
| period | No | Time range (default 7d) | |
| search | No | Only values containing this text | |
| filters | No | 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 | |
| site_id | Yes | Site id from list_sites | |
| timezone | No | IANA timezone for days and hours, e.g. Europe/Berlin (default UTC) | |
| dimension | Yes | ||
| segment_id | No | Apply a saved segment (see list_segments); combines with filters |
get_errorsRead-onlyInspect
JavaScript errors grouped by message, with occurrences, affected sessions and pages.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date YYYY-MM-DD, inclusive (default today) | |
| from | No | Start date YYYY-MM-DD (overrides period) | |
| limit | No | Rows to return (default 10) | |
| period | No | Time range (default 7d) | |
| filters | No | 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 | |
| site_id | Yes | Site id from list_sites | |
| timezone | No | IANA timezone for days and hours, e.g. Europe/Berlin (default UTC) | |
| segment_id | No | Apply a saved segment (see list_segments); combines with filters |
get_eventsRead-onlyInspect
Custom events (sent with pagelens.track) and outbound clicks with counts and their properties.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date YYYY-MM-DD, inclusive (default today) | |
| from | No | Start date YYYY-MM-DD (overrides period) | |
| limit | No | Rows to return (default 10) | |
| period | No | Time range (default 7d) | |
| filters | No | 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 | |
| site_id | Yes | Site id from list_sites | |
| timezone | No | IANA timezone for days and hours, e.g. Europe/Berlin (default UTC) | |
| segment_id | No | Apply a saved segment (see list_segments); combines with filters |
get_journeysRead-onlyInspect
Most common page-to-page paths visitors take.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date YYYY-MM-DD, inclusive (default today) | |
| from | No | Start date YYYY-MM-DD (overrides period) | |
| limit | No | Rows to return (default 10) | |
| period | No | Time range (default 7d) | |
| filters | No | 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 | |
| site_id | Yes | Site id from list_sites | |
| timezone | No | IANA timezone for days and hours, e.g. Europe/Berlin (default UTC) | |
| segment_id | No | Apply a saved segment (see list_segments); combines with filters |
get_overviewRead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date YYYY-MM-DD, inclusive (default today) | |
| from | No | Start date YYYY-MM-DD (overrides period) | |
| period | No | Time range (default 7d) | |
| filters | No | 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 | |
| site_id | Yes | Site id from list_sites | |
| timezone | No | IANA timezone for days and hours, e.g. Europe/Berlin (default UTC) | |
| segment_id | No | Apply a saved segment (see list_segments); combines with filters | |
| include_series | No | Include the per-day/hour series (default true) |
get_pagesRead-onlyInspect
Per-page metrics: visitors, pageviews, entries, bounce rate and time on page.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date YYYY-MM-DD, inclusive (default today) | |
| from | No | Start date YYYY-MM-DD (overrides period) | |
| limit | No | Rows to return (default 10) | |
| period | No | Time range (default 7d) | |
| filters | No | 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 | |
| site_id | Yes | Site id from list_sites | |
| timezone | No | IANA timezone for days and hours, e.g. Europe/Berlin (default UTC) | |
| segment_id | No | Apply a saved segment (see list_segments); combines with filters |
get_realtimeRead-onlyInspect
Visitors online right now (last 5 minutes) and what they are viewing.
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | Yes | Site id from list_sites |
get_retentionRead-onlyInspect
Cohort retention of identified users (pagelens.identify): share of each daily or weekly cohort that came back in later periods.
| Name | Required | Description | Default |
|---|---|---|---|
| unit | No | ||
| site_id | Yes | Site id from list_sites | |
| timezone | No | IANA timezone for days and hours, e.g. Europe/Berlin (default UTC) |
get_search_consoleRead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date YYYY-MM-DD, inclusive (default today) | |
| from | No | Start date YYYY-MM-DD (overrides period) | |
| limit | No | Rows to return (default 10) | |
| period | No | Time range (default 7d) | |
| search | No | Only queries (or pages) containing this text | |
| filters | No | 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 | |
| site_id | Yes | Site id from list_sites | |
| timezone | No | IANA timezone for days and hours, e.g. Europe/Berlin (default UTC) | |
| dimension | No | ||
| segment_id | No | Apply a saved segment (see list_segments); combines with filters |
get_sessionRead-onlyInspect
Every pageview and event in one session, in order.
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | Yes | Site id from list_sites | |
| session_id | Yes |
get_userRead-onlyInspect
Profile of one identified user (traits, first/last seen, totals) and their sessions.
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | Yes | Site id from list_sites | |
| user_id | Yes |
get_web_vitalsRead-onlyInspect
Core Web Vitals from real visitors (LCP, INP, CLS, FCP, TTFB) at p50/p75/p90, overall and per page.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date YYYY-MM-DD, inclusive (default today) | |
| from | No | Start date YYYY-MM-DD (overrides period) | |
| period | No | Time range (default 7d) | |
| filters | No | 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 | |
| site_id | Yes | Site id from list_sites | |
| timezone | No | IANA timezone for days and hours, e.g. Europe/Berlin (default UTC) | |
| segment_id | No | Apply a saved segment (see list_segments); combines with filters |
list_goalsRead-onlyInspect
Goals with conversions and conversion rate for the period, compared with the previous period.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date YYYY-MM-DD, inclusive (default today) | |
| from | No | Start date YYYY-MM-DD (overrides period) | |
| period | No | Time range (default 7d) | |
| filters | No | 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 | |
| site_id | Yes | Site id from list_sites | |
| timezone | No | IANA timezone for days and hours, e.g. Europe/Berlin (default UTC) | |
| segment_id | No | Apply a saved segment (see list_segments); combines with filters |
list_segmentsRead-onlyInspect
Saved segments (named filter sets such as "Paid traffic" or "Mobile in Germany") that can be applied to any report with segment_id.
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | Yes | Site id from list_sites |
list_sessionsRead-onlyInspect
Recent sessions with entry/exit page, pages viewed, duration, source, location and device.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date YYYY-MM-DD, inclusive (default today) | |
| from | No | Start date YYYY-MM-DD (overrides period) | |
| kind | No | ||
| limit | No | Rows to return (default 10) | |
| period | No | Time range (default 7d) | |
| filters | No | 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 | |
| site_id | Yes | Site id from list_sites | |
| user_id | No | Only sessions of this identified user | |
| timezone | No | IANA timezone for days and hours, e.g. Europe/Berlin (default UTC) | |
| segment_id | No | Apply a saved segment (see list_segments); combines with filters |
list_sitesRead-onlyInspect
List the websites this key can access, with visitors in the last 24 hours.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
list_usersRead-onlyInspect
Users active in the period: identified users (with traits) and anonymous visitors, with sessions, pageviews and first source.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date YYYY-MM-DD, inclusive (default today) | |
| from | No | Start date YYYY-MM-DD (overrides period) | |
| kind | No | ||
| limit | No | Rows to return (default 10) | |
| period | No | Time range (default 7d) | |
| search | No | Match user id, name or email | |
| filters | No | 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 | |
| site_id | Yes | Site id from list_sites | |
| timezone | No | IANA timezone for days and hours, e.g. Europe/Berlin (default UTC) | |
| segment_id | No | Apply a saved segment (see list_segments); combines with filters |
run_funnelRead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date YYYY-MM-DD, inclusive (default today) | |
| from | No | Start date YYYY-MM-DD (overrides period) | |
| mode | No | ||
| steps | Yes | ||
| period | No | Time range (default 7d) | |
| filters | No | 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 | |
| site_id | Yes | Site id from list_sites | |
| timezone | No | IANA timezone for days and hours, e.g. Europe/Berlin (default UTC) | |
| segment_id | No | Apply a saved segment (see list_segments); combines with filters | |
| compare_previous | No |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
23 tool updates
- First observed
add_annotation - First observed
create_goal - First observed
delete_user_data - First observed
get_ai_visibility - First observed
get_bots_and_ai - First observed
get_breakdown - First observed
get_errors - First observed
get_events - First observed
get_journeys - First observed
get_overview - First observed
get_pages - First observed
get_realtime - First observed
get_retention - First observed
get_search_console - First observed
get_session - First observed
get_user - First observed
get_web_vitals - First observed
list_goals - First observed
list_segments - First observed
list_sessions - First observed
list_sites - First observed
list_users - First observed
run_funnel
Related MCP Connectors
Cookieless web analytics your AI agent can read: traffic, spikes and what caused them, funnels.
1Privacy-first web analytics for AI agents: visitors, revenue, funnels, visitor profiles.
- cabinOAuthcom.withcabin
Privacy-first, cookie-free web analytics. Read stats and manage sites from your AI.
Cookieless web analytics your coding agent reads: traffic answers, deploy impact, what broke.
Related MCP Servers
- AlicenseAqualityDmaintenancePrivacy friendly, cookieless web analytics built MCP-first. "Add analytics to my Next.js app" → an AI agent runs the setup_analytics_for_site tool, picks the right install snippet, edits your layout file, and verifies the script is loading. OAuth onboarding, no API keys to paste.2827 npm1MIT
- AlicenseAqualityDmaintenanceEnables AI agents to access website analytics, including visitor sessions, UX friction, conversion funnels, and anomaly alerts.6MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to read cookieless website analytics, investigate traffic spikes, build funnels, rank growth channels, and manage tracked campaigns through MCP tools.1MIT
- AlicenseNot gradedqualityDmaintenanceMulti-site analytics for AI agents — GA4, Google Search Console, Cloudflare edge, PageSpeed, and audit insights across all your websites as tools.28 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.