dan-cleary avatar

Convalytics

dan-cleary/convalytics

Connects Claude to Convalytics analytics dashboards for Convex apps. Exposes read-only query access to page views, sessions, bounce rates, referrers, device breakdowns, and custom product events tracked from your Convex mutations. Useful when you want to ask questions about user behavior, conversion funnels, or feature adoption without switching to the web dashboard. The MCP endpoint runs at api.convalytics.dev/mcp and works over streamable HTTP, so no local server setup needed. Pairs with their Convex component that handles server-side event ingestion, which can't be blocked by ad blockers like client-side analytics.

GitHub stars
6
tools
15
auth
Secret needed
transport
HTTP
last updated
Apr 23, 2026

Install

From registry metadata
$ npx add-mcp https://api.convalytics.dev/mcp --name convalytics --header 'Authorization: Bearer ${API_TOKEN}'

Run in your terminal. add-mcp asks which agents to add it to, then asks for each value it needs. Add -g to install it for every project.

Review the command, arguments and environment values before installing. MCP servers run with your local permissions.

Other ways

Claude Code

$ claude mcp add --transport http convalytics https://api.convalytics.dev/mcp --header 'Authorization: YOUR_AUTHORIZATION'

Run in your terminal. Add --scope user to make it available in every project.

Tools

Verified live · 15 tools

Verified live against the running server on Nov 6, 2026.

list_projectsList all Convalytics projects on the team this token belongs to. Useful when the agent needs to confirm the project it's querying against. No arguments.

List all Convalytics projects on the team this token belongs to. Useful when the agent needs to confirm the project it's querying against. No arguments.

No parameters. Call it with no arguments.

get_usageReturn the current month's custom-event usage, monthly quota, retention days, and plan name for the team.

Return the current month's custom-event usage, monthly quota, retention days, and plan name for the team.

No parameters. Call it with no arguments.

top_pagesReturn the top pages for a specific project, ranked by views in a time window. Default window is the last 7 days. Use list_projects first if you don't know the project name. Returns path, views, uniqueVisitors, and percentage of total views for each page. Pass `user` to see pa...5 params

Return the top pages for a specific project, ranked by views in a time window. Default window is the last 7 days. Use list_projects first if you don't know the project name. Returns path, views, uniqueVisitors, and percentage of total views for each page. Pass `user` to see pa...

Parameters* required
limitnumber
Maximum number of pages to return. Default 20, max 50.
project*string
Project name (case-insensitive, e.g. 'slopbench') or project id from list_projects.
sincenumber
Start of window as unix milliseconds. Defaults to 7 days ago.
untilnumber
End of window as unix milliseconds. Defaults to now.
userstring
Optional. Filter to one visitor/user. Accepts userEmail (case-insensitive) or visitorId (exact). For the full per-user snapshot prefer user_activity.
top_referrersReturn the top referring hosts for a specific project, ranked by visit count in a time window. Includes '(direct)' for visits with no referrer. Default window is the last 7 days.4 params

Return the top referring hosts for a specific project, ranked by visit count in a time window. Includes '(direct)' for visits with no referrer. Default window is the last 7 days.

Parameters* required
limitnumber
Maximum number of referrers to return. Default 10, max 50.
project*string
Project name (case-insensitive, e.g. 'slopbench') or project id from list_projects.
sincenumber
Start of window as unix milliseconds. Defaults to 7 days ago.
untilnumber
End of window as unix milliseconds. Defaults to now.
pageviews_countCount page views for a specific project in a time window. Page views are the automatic hits captured by the browser script tag (separate from custom events). Use this for web-traffic questions like 'how many pageviews in the last 24 hours'. Default window is the last 7 days. P...4 params

Count page views for a specific project in a time window. Page views are the automatic hits captured by the browser script tag (separate from custom events). Use this for web-traffic questions like 'how many pageviews in the last 24 hours'. Default window is the last 7 days. P...

Parameters* required
project*string
Project name (case-insensitive, e.g. 'slopbench') or project id from list_projects.
sincenumber
Start of window as unix milliseconds. Defaults to 7 days ago.
untilnumber
End of window as unix milliseconds. Defaults to now.
userstring
Optional. Filter to one visitor/user. Accepts userEmail (case-insensitive) or visitorId (exact). For the full per-user snapshot prefer user_activity.
events_countCount CUSTOM PRODUCT events for a specific project in a time window, optionally filtered to one event name and/or one user. Custom events are emitted by explicit analytics.track() calls in app code (signup_completed, payment_succeeded, etc.). This does NOT count page views — u...5 params

Count CUSTOM PRODUCT events for a specific project in a time window, optionally filtered to one event name and/or one user. Custom events are emitted by explicit analytics.track() calls in app code (signup_completed, payment_succeeded, etc.). This does NOT count page views — u...

Parameters* required
namestring
Optional event name to filter by (e.g. 'signup_completed'). If omitted, counts all custom events in the window. Do NOT pass 'page_view' here — page views are in a separate table.
project*string
Project name (case-insensitive, e.g. 'slopbench') or project id from list_projects.
sincenumber
Start of window as unix milliseconds. Defaults to 7 days ago.
untilnumber
End of window as unix milliseconds. Defaults to now.
userstring
Optional. Filter to one visitor/user. Accepts userEmail (case-insensitive) or visitorId (exact). For the full per-user snapshot prefer user_activity.
recent_eventsReturn the most recent custom events for a specific project, optionally filtered to one event name and/or one user. PII (userEmail, userName, props) is redacted by default; pass redact: false to include them.5 params

Return the most recent custom events for a specific project, optionally filtered to one event name and/or one user. PII (userEmail, userName, props) is redacted by default; pass redact: false to include them.

Parameters* required
limitnumber
Maximum number of events to return. Default 20, max 100.
namestring
Optional event name to filter by (e.g. 'signup_completed'). Omit to return events of any name.
project*string
Project name (case-insensitive, e.g. 'slopbench') or project id from list_projects.
redactboolean
If true (default), userEmail/userName are null and props is {}. Set to false to include them.
userstring
Optional. Filter to one visitor/user. Accepts userEmail (case-insensitive) or visitorId (exact). For the full per-user snapshot prefer user_activity.
user_activityComposite snapshot of a specific user's activity on a project. Returns an identity block (visitorId, userEmail, userName, firstSeen, lastSeen), total pageviews, total custom events, session count, top pages this user visited, their most-fired event names, and their 20 most rec...4 params

Composite snapshot of a specific user's activity on a project. Returns an identity block (visitorId, userEmail, userName, firstSeen, lastSeen), total pageviews, total custom events, session count, top pages this user visited, their most-fired event names, and their 20 most rec...

Parameters* required
project*string
Project name (case-insensitive, e.g. 'slopbench') or project id from list_projects.
sincenumber
Start of window as unix milliseconds. Defaults to 7 days ago.
untilnumber
End of window as unix milliseconds. Defaults to now.
user*string
User identifier. Accepts userEmail (case-insensitive, e.g. 'dan@example.com') or visitorId (the exact string passed as userId on the original track() call).
weekly_digestComposite snapshot of a project's web analytics over a lookback window. Returns unique visitors, pageviews, sessions, bounce rate, average session duration, top 5 pages, top 5 referrers, total custom events, and top 5 event names. Includes period-over-period comparison against...3 params

Composite snapshot of a project's web analytics over a lookback window. Returns unique visitors, pageviews, sessions, bounce rate, average session duration, top 5 pages, top 5 referrers, total custom events, and top 5 event names. Includes period-over-period comparison against...

Parameters* required
compareboolean
Include period-over-period comparison against the prior equal-length window. Default true. Set false for faster response when only current numbers matter.
daysnumber
Lookback window in days, 1 to 90. Default 7.
project*string
Project name (case-insensitive, e.g. 'slopbench') or project id from list_projects.
list_funnelsList active funnels defined on a project. A funnel is a saved ordered sequence of steps (events or pageview paths) that Convalytics computes step-by-step conversion for. Soft-deleted funnels are excluded.1 params

List active funnels defined on a project. A funnel is a saved ordered sequence of steps (events or pageview paths) that Convalytics computes step-by-step conversion for. Soft-deleted funnels are excluded.

Parameters* required
project*string
Project name (case-insensitive, e.g. 'slopbench') or project id from list_projects.
get_funnelReturn the full definition of one funnel by id: name, description, ordered steps, and conversion window.1 params

Return the full definition of one funnel by id: name, description, ordered steps, and conversion window.

Parameters* required
funnelId*string
Funnel id from list_funnels or create_funnel.
create_funnelCreate a new funnel on a project. Steps are 2–10 ordered events or pageview paths. conversionWindowMs caps how long a visitor has between consecutive steps (default 7 days); this is the step-to-step limit, without which a funnel is just event co-occurrence. Returns { id } on s...5 params

Create a new funnel on a project. Steps are 2–10 ordered events or pageview paths. conversionWindowMs caps how long a visitor has between consecutive steps (default 7 days); this is the step-to-step limit, without which a funnel is just event co-occurrence. Returns { id } on s...

Parameters* required
conversionWindowMsnumber
Max ms between consecutive steps. Default 7 days (604800000). Bounds: 60000 (1 min) to 7776000000 (90 days).
descriptionstring
Optional longer description.
name*string
Human-readable name.
project*string
Project name (case-insensitive, e.g. 'slopbench') or project id from list_projects.
steps*array
Ordered list of 2–10 steps. Visitors must hit them in order.
update_funnelPatch an existing funnel. Any subset of name/description/steps/conversionWindowMs. Refuses updates on deleted funnels.5 params

Patch an existing funnel. Any subset of name/description/steps/conversionWindowMs. Refuses updates on deleted funnels.

Parameters* required
conversionWindowMsnumber
descriptionstring
funnelId*string
namestring
stepsarray
delete_funnelSoft delete a funnel. The row is retained with status='deleted' and excluded from list/get/compute. Idempotent — calling twice is a no-op. Use if the funnel is obsolete; the record is kept for audit and cannot be undone from MCP.1 params

Soft delete a funnel. The row is retained with status='deleted' and excluded from list/get/compute. Idempotent — calling twice is a no-op. Use if the funnel is obsolete; the record is kept for audit and cannot be undone from MCP.

Parameters* required
funnelId*string
compute_funnelRun a funnel over a time window and return per-step visitor count, conversion from previous step, conversion from start, and average time to convert between steps. Returns `truncated` flags if the scan cap was hit.3 params

Run a funnel over a time window and return per-step visitor count, conversion from previous step, conversion from start, and average time to convert between steps. Returns `truncated` flags if the scan cap was hit.

Parameters* required
funnelId*string
sincenumber
Start of window as unix milliseconds. Defaults to 7 days ago.
untilnumber
End of window as unix milliseconds. Defaults to now.

Sponsors

Readme

Convalytics

Web analytics and product event tracking built for Convex apps.

Dashboard: convalytics.dev

What is Convalytics?

Convalytics gives Convex apps two things:

  1. Web analytics — automatic page views, sessions, bounce rate, referrers, and device/browser breakdowns via a lightweight script tag.
  2. Product event tracking — track signups, payments, feature usage, and any custom event directly from Convex mutations and actions. Server-side events can't be blocked by ad blockers.

Everything flows into a single dashboard. Projects auto-provision on first event — no account required to start tracking.

Quick start

npx convalytics init

This auto-provisions a project, installs the Convex component, patches convex/convex.config.ts, creates convex/analytics.ts with the write key inlined, inserts the browser script tag into index.html, and installs a skill file for AI agents. Works with Cursor, Claude Code, and other AI coding agents out of the box.

Packages


View the full README on GitHub

Details

Repository
github.com/dan-cleary/convalytics
Website
convalytics.dev/mcp
Category
Monitoring & Observability
Transport
HTTP
Auth
Required
Registry
MCP registry, active
Tools verified
Nov 6, 2026

Related Monitoring & Observability MCP servers

View all
1indigoprotocol avatarIndigo Mcpindigoprotocol/indigo-mcpIndigo Protocol MCP — iAsset prices, CDP analytics, stability pools, staking & governance6stars
2scrollmark avatarSocialGPTscrollmark/socialgpt-mcpSocial media analytics, video analysis, and competitor intel for any MCP-compatible AI agent.6stars
3kascada avatarLogmcpkascada/logmcpMCP server — read-only log access for AI assistants, without giving AI shell access.6stars
4sisense avatarSisense Mcp Serversisense/sisense-mcp-serverMCP server leveraging Sisense Intelligence for actionable insights and analytics.6stars
5socialityio avatarSociality.io MCPsocialityio/sociality-mcpSocial media analytics, post insights, and competitor benchmarking for AI agents.6stars
6defozo avatarDDC/CI Control Bridgedefozo/ddc-ci-control-bridgeControl monitor brightness, contrast, power and input via DDC/CI with MCP and MQTT support.5stars