
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 toolsVerified 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...
limitnumberproject*stringsincenumberuntilnumberuserstringtop_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.
limitnumberproject*stringsincenumberuntilnumberpageviews_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...
project*stringsincenumberuntilnumberuserstringevents_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...
namestringproject*stringsincenumberuntilnumberuserstringrecent_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.
limitnumbernamestringproject*stringredactbooleanuserstringuser_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...
project*stringsincenumberuntilnumberuser*stringweekly_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...
comparebooleandaysnumberproject*stringlist_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.
project*stringget_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.
funnelId*stringcreate_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...
conversionWindowMsnumberdescriptionstringname*stringproject*stringsteps*arrayupdate_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.
conversionWindowMsnumberdescriptionstringfunnelId*stringnamestringstepsarraydelete_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.
funnelId*stringcompute_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.
funnelId*stringsincenumberuntilnumberSponsors
Readme
Convalytics
Web analytics and product event tracking built for Convex apps.
Dashboard: convalytics.dev
What is Convalytics?
Convalytics gives Convex apps two things:
- Web analytics — automatic page views, sessions, bounce rate, referrers, and device/browser breakdowns via a lightweight script tag.
- 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
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