What it does
Real reading time + scroll depth from the engagement beacon (fired on pagehide). Returns engaged_pages count, avg/median/p90 engagement seconds, and avg/median scroll depth. avg_scroll_depth_pct and median_scroll_depth_pct are percentages of page height: 58.3 means 58.3% scrolled. Better signal than session duration which counts inactive tabs.
Example prompts
Ask Claude (or any MCP client connected to mcp-analytics) something like:
How engaged are mysite.com visitors? Scroll depth and time on page.
The client will pick engagement_overview automatically based on the prompt and your account's available sites.
Arguments
| Name | Type | Required | Description / Default |
|---|---|---|---|
site_id |
string | required | Site identifier from list_sites (8-character base32, e.g. 'wjxayhdd'). |
period |
string | optional |
Time window. Keywords: today, yesterday, last_7_days, last_30_days, last_90_days, last_12_months. Or a custom date range YYYY-MM-DD..YYYY-MM-DD (inclusive).
default: last_7_days
|
conversion_event |
string | optional | Optional custom event name (case-sensitive, from list_events) to treat as the conversion. The response then adds `converters`: the same engagement stats restricted to units that fired the event — compare it against the top-level stats to see whether converters read longer or scroll deeper. The response gains a site-wide `conversion` block: conversion_base (units in the period), converted (how many fired the event), conversion_rate (ratio 0–1: 0.05 means 5%), `unit` and a `note` to relay. The unit depends on the site's privacy_mode: 'session' on strict and balanced sites (no identity survives UTC midnight there, so only conversions within one visit count), 'visitor' on privacy_mode=all sites (first-party cookie, so a visitor who arrives Monday and converts Thursday counts as converted, if both days are inside the period). The auto-tracked 'pageview' and 'engagement' are rejected — pick one of the site's own events. |
How to call it directly
If you're integrating from your own code rather than a chat client, this is the JSON-RPC payload:
curl -X POST https://mcp-analytics.com/mcp \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "engagement_overview",
"arguments": {
"site_id": "abc12345"
}
}
}'
Token comes from /settings after you sign up. Replace any required arguments above.
Related tools
top_sources: Top UTM source/medium/campaign combinations.viewport_breakdown: Pageviews bucketed by viewport width: mobile_xs (<480), mobile (<768), tablet (<1024), desktop (<1440), desktop_xl (≥1440).list_sites: List all sites on the authenticated account.top_pages: Most-viewed URL paths.get_tracking_snippet: Return the HTML <script> snippet for a given site_id.