rybbit-super-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@rybbit-super-mcp Show me top pages by bounce rate"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
rybbit-super-mcp
Extended MCP server for Rybbit Analytics — 48 tools with full CRUD for funnels, goals, and sites. Query statistics, manage funnels, create goals, and analyze performance directly from Claude Code.
Why?
Instead of switching to the Rybbit dashboard, let the LLM query and manage your analytics directly:
"Create a checkout funnel: homepage → product → cart → order confirmation"
"What's the drop-off rate on the signup funnel?"
"Set up conversion goals for purchases and newsletter signups"
"Delete all test funnels"
"Show me top pages by bounce rate for the last 7 days"
"Which countries drive the most traffic?"
Related MCP server: rybbit-mcp
Quick Start
Installation
git clone https://github.com/Tchoow/rybbit-super-mcp.git
cd rybbit-super-mcp
npm install && npm run buildConfiguration
Add the MCP server to your Claude Code settings (~/.claude/settings.json):
Option 1 — Local path (recommended):
{
"mcpServers": {
"rybbit": {
"command": "node",
"args": ["/absolute/path/to/rybbit-super-mcp/build/index.js"],
"env": {
"RYBBIT_URL": "https://your-rybbit-instance.com",
"RYBBIT_API_KEY": "your-api-key-here",
"RYBBIT_EMAIL": "your-email@example.com",
"RYBBIT_PASSWORD": "your-password"
}
}
}
}API key is used first for all read operations (stateless, fast). For CRUD operations (funnels/goals), the MCP automatically falls back to session auth if the API key returns 403. See Authentication for details.
Option 2 — Via npx (no clone needed):
{
"mcpServers": {
"rybbit": {
"command": "npx",
"args": ["-y", "github:Tchoow/rybbit-super-mcp"],
"env": {
"RYBBIT_URL": "https://your-rybbit-instance.com",
"RYBBIT_API_KEY": "your-api-key-here",
"RYBBIT_EMAIL": "your-email@example.com",
"RYBBIT_PASSWORD": "your-password"
}
}
}
}Features
Category | Tools | Description |
Configuration & Sites | 8 | Server config, list/create/update/delete sites, site details, excluded IPs/countries |
Real-time & Overview | 4 | Live users, overview metrics, time series, session locations |
Metrics & Dimensions | 3 | Metric breakdown by 22 dimensions, retention, page titles |
Sessions | 2 | List sessions with IP filtering, session detail with event timeline |
Users | 5 | List users, user detail, user traits, event breakdown, session count timeline |
Events | 6 | List events, event names, properties, time series, outbound links, event count by type |
Errors | 1 | Error tracking (names, events, timeseries modes) |
Performance | 2 | Core Web Vitals (LCP, CLS, INP, FCP, TTFB) with time series |
Funnels | 7 | List, analyze, step sessions + create, update, delete, batch create |
Goals | 6 | List, goal sessions + create, update, delete, batch create |
Journeys | 1 | User journey/flow analysis |
Organization | 2 | Org event count, check site has data |
Tools (48)
Configuration & Site Management (8)
Tool | Description |
| Get Rybbit server version and configuration |
| List all sites and organizations |
| Look up a site ID by domain name |
| NEW — Get full site config (tracking flags, domain, etc.) |
| Create a new site in an organization |
| Update site tracking settings (IP, errors, replay, etc.) |
| Delete a site permanently |
| NEW — List IPs excluded from tracking |
| NEW — List countries excluded from tracking |
Real-time & Overview (4)
Tool | Description |
| Current live/active user count |
| Aggregated metrics: sessions, pageviews, users, bounce rate |
| Overview metrics as time-series with configurable buckets |
| Geographic session data with coordinates |
Metrics & Dimensions (3)
Tool | Description |
| Breakdown by dimension (browser, country, pathname, UTM, etc.) |
| User retention cohort analysis |
| NEW — Page titles with visit counts and avg time on page |
Sessions (2)
Tool | Description |
| List sessions with filtering, pagination, IP search |
| Session detail with full event timeline |
Users (5)
Tool | Description |
| List users with search, sorting, identified-only filter |
| User detail with traits and activity |
| User trait keys, values, or find users by trait |
| Per-user event count breakdown |
| NEW — Daily session count timeline for a specific user |
Events (6)
Tool | Description |
| Raw event records with filtering |
| All custom event names with counts |
| Property breakdown for a specific event |
| Event counts as time-series |
| Outbound link click tracking |
| NEW — Event counts by type (pageviews, custom, errors, etc.) |
Errors (1)
Tool | Description |
| Error tracking: names, individual events, or timeseries |
Performance (2)
Tool | Description |
| Core Web Vitals with percentiles, optional dimension breakdown |
| Web Vitals trends over time |
Funnels (3 read + 4 CRUD)
Tool | Description |
| List all saved funnels |
| Ad-hoc funnel analysis (without saving) |
| Sessions that reached/dropped at a funnel step |
| NEW — Create and save a funnel |
| NEW — Update a funnel's name or steps |
| NEW — Delete a saved funnel |
| NEW — Create multiple funnels at once |
Goals (2 read + 4 CRUD)
Tool | Description |
| List goals with conversion metrics |
| Sessions that completed a goal |
| NEW — Create a conversion goal |
| NEW — Update a goal |
| NEW — Delete a goal |
| NEW — Create multiple goals at once |
Journeys (1)
Tool | Description |
| User journey/flow analysis with common navigation paths |
Organization & Utilities (2)
Tool | Description |
| NEW — Aggregated event counts across all sites in an org |
| NEW — Check if a site has any recorded events (boolean) |
Common Parameters
Date Ranges
Most analytics tools accept either absolute or relative date ranges:
Absolute:
startDate/endDateinYYYY-MM-DDformatRelative:
pastMinutesStart/pastMinutesEnd(e.g.,pastMinutesStart: 60= last hour)
Filters
[
{ "parameter": "country", "type": "equals", "value": ["US", "FR"] },
{ "parameter": "browser", "type": "not_equals", "value": ["IE"] },
{ "parameter": "pathname", "type": "contains", "value": ["/blog"] }
]Available filter dimensions: browser, operating_system, language, country, region, city, device_type, referrer, hostname, pathname, page_title, querystring, event_name, channel, utm_source, utm_medium, utm_campaign, utm_term, utm_content, entry_page, exit_page, user_id.
Filter types: equals, not_equals, contains, not_contains, regex, not_regex, greater_than, less_than.
Time Buckets
For time-series endpoints: minute, five_minutes, ten_minutes, fifteen_minutes, hour, day, week, month, year.
Pagination
page: Page number (1-indexed)limit: Results per page (max 200)
Authentication
Two modes are supported. API key + email/password is the recommended setup for full access:
Mode | Environment Variables | CRUD Support |
API Key + Email/Password (recommended) |
| All 48 tools (automatic fallback) |
API Key only |
| Read + site config (CRUD may fail on older Rybbit versions) |
Email/Password only |
| All 48 tools |
All modes require RYBBIT_URL — the URL of your Rybbit instance (without trailing slash).
How it works: API key is used first (stateless, fast). If a CRUD request returns 403 and email/password credentials are available, the MCP automatically retries with session auth. This transparent fallback ensures all 48 tools work regardless of the Rybbit server version.
Recommended config (full access):
{
"mcpServers": {
"rybbit": {
"command": "node",
"args": ["/path/to/rybbit-super-mcp/build/index.js"],
"env": {
"RYBBIT_URL": "https://your-rybbit-instance.com",
"RYBBIT_API_KEY": "your-api-key-here",
"RYBBIT_EMAIL": "your-email@example.com",
"RYBBIT_PASSWORD": "your-password"
}
}
}
}E-commerce Examples
PrestaShop Checkout Funnel
"Create a checkout funnel for my PrestaShop store with these steps:
1. Homepage (/)
2. Product Page (/en/*/*.html)
3. Add to Cart (event: add_to_cart)
4. Checkout (/en/order)
5. Purchase Confirmation (/en/order-confirmation)"Conversion Goals (Batch)
Goals use goalType ("path" or "event") and a config object:
"Create these conversion goals for my e-commerce site:
- Purchase: goalType=path, config.pathPattern=/order-confirmation
- Add to Cart: goalType=event, config.eventName=add_to_cart
- Newsletter: goalType=event, config.eventName=newsletter_subscribe
- Contact Form: goalType=path, config.pathPattern=/contact-success
- Account Created: goalType=event, config.eventName=user_registered"Funnel Drop-off Analysis
"Analyze the checkout funnel and show me which step has the highest drop-off.
Then get the sessions that dropped off at that step so I can understand why."Differences from upstream
Feature |
|
|
Total tools | 32 | 48 |
Create funnel | — |
|
Update funnel | — |
|
Delete funnel | — |
|
Batch create funnels | — |
|
Create goal | — |
|
Update goal | — |
|
Delete goal | — |
|
Batch create goals | — |
|
Page titles | — |
|
Site event count | — |
|
Org event count | — |
|
Site has data | — |
|
User session count | — |
|
Site details | — |
|
Excluded IPs | — |
|
Excluded countries | — |
|
Auth priority | API key first | API key first + automatic session fallback on 403 |
LLM instructions | Basic workflow | Full CRUD workflow guide |
Development
npm install # Install dependencies
npm run build # Compile TypeScript
npm run dev # Watch mode (recompile on change)
npm start # Run the compiled serverCredits
Fork of @nks-hub/rybbit-mcp by NKS Hub. Extended by Tchoow / Flowcode.
License
Available Tools
48 toolsrybbit_analyze_funnelAnalyze FunnelARead-onlyIdempotent
Analyze a custom funnel by defining steps (page visits or events). Returns visitor counts and drop-off rates at each step.
Inputs: steps (required), siteId (required), endDate, filters, +4 more.
rybbit_batch_create_funnelsBatch Create FunnelsA
Create multiple funnels at once. Each funnel is created sequentially to respect rate limits. If one fails, the others still proceed. Returns a summary of successes and failures.
Inputs: siteId (required), funnels (required).
rybbit_batch_create_goalsBatch Create GoalsA
Create multiple conversion goals at once. Each goal is created sequentially to respect rate limits. If one fails, the others still proceed. Returns a summary of successes and failures.
Inputs: goals (required), siteId (required).
rybbit_check_site_has_dataCheck Site Has DataARead-onlyIdempotent
Check if a site has any recorded events. Returns a boolean. Useful for verifying that the tracking script is properly installed before querying analytics.
Inputs: siteId (required).
rybbit_create_funnelCreate FunnelA
Create and save a new funnel in Rybbit. Requires a name and at least 2 steps. Each step is either a page path (supports wildcards) or a custom event name. Use rybbit_list_funnels to verify creation afterward.
Inputs: name (required), steps (required), siteId (required).
rybbit_create_goalCreate GoalA
Create a new conversion goal in Rybbit. A goal tracks conversions when users visit a specific page path or trigger a custom event. For path goals: set goalType='path' and config.pathPattern (e.g. '/order-confirmation'). For event goals: set goalType='event' and config.eventName (e.g. 'purchase'). Use rybbit_list_goals to verify creation afterward.
Inputs: config (required), siteId (required), goalType (required), name.
rybbit_create_siteCreate SiteA
Create a new site in Rybbit. Returns the created site with its siteId for tracking integration.
Inputs: domain (required), organizationId (required), name.
rybbit_delete_funnelDelete FunnelADestructive
Permanently delete a saved funnel. This cannot be undone. Use rybbit_list_funnels to find funnel IDs.
Inputs: siteId (required), funnelId (required).
rybbit_delete_goalDelete GoalADestructive
Permanently delete a conversion goal. This cannot be undone. Use rybbit_list_goals to find goal IDs.
Inputs: goalId (required), siteId (required).
rybbit_delete_siteDelete SiteADestructive
Delete a site from Rybbit. This permanently removes the site and its replay data. Use rybbit_list_sites or rybbit_get_site_id to find site IDs.
Inputs: siteId (required).
rybbit_get_configGet Rybbit ConfigARead-onlyIdempotent
Get Rybbit server version and configuration
Inputs: no named parameters.
rybbit_get_errorsError TrackingARead-onlyIdempotent
Get error tracking data. Workflow: (1) type='names' to see error types and counts, (2) type='events' with errorMessage to see individual instances with stack traces, (3) type='timeseries' with errorMessage to see trends over time.
Inputs: siteId (required), page, type, limit, +8 more.
rybbit_get_event_namesEvent NamesBRead-onlyIdempotent
Get all custom event names and their occurrence counts for a site. Useful for discovering what events are being tracked.
Inputs: siteId (required), endDate, filters, timeZone, +3 more.
rybbit_get_event_propertiesEvent PropertiesARead-onlyIdempotent
Get property breakdowns for a specific custom event. Returns the distinct property keys and values with counts.
Inputs: siteId (required), eventName (required), endDate, filters, +4 more.
rybbit_get_event_timeseriesEvent Time SeriesBRead-onlyIdempotent
Get custom event counts as time-series data with configurable buckets. Useful for analyzing event trends over time.
Inputs: siteId (required), bucket, endDate, filters, +4 more.
rybbit_get_excluded_countriesExcluded CountriesARead-onlyIdempotent
Get the list of country codes excluded from tracking for a site. Useful for compliance auditing (GDPR, etc.).
Inputs: siteId (required).
rybbit_get_excluded_ipsExcluded IPsARead-onlyIdempotent
Get the list of IP addresses excluded from tracking for a site. Useful for auditing tracking configuration.
Inputs: siteId (required).
rybbit_get_funnel_step_sessionsFunnel Step SessionsARead-onlyIdempotent
Get the sessions that reached (or dropped off at) a specific funnel step. Useful for drilling into why users drop off at a particular funnel step.
Inputs: mode (required), steps (required), siteId (required), stepNumber (required), +8 more.
rybbit_get_goal_sessionsGoal SessionsARead-onlyIdempotent
Get sessions that completed a specific goal. Useful for analyzing which users and sessions triggered goal conversions.
Inputs: goalId (required), siteId (required), page, limit, +6 more.
rybbit_get_journeysUser JourneysARead-onlyIdempotent
Get user journey (flow) analysis showing the most common navigation paths through the site. Shows sequences of pages users visit and how many sessions follow each path.
Inputs: siteId (required), steps, endDate, filters, +5 more.
rybbit_get_metricMetric BreakdownARead-onlyIdempotent
Get metric breakdown by dimension. Use parameter='pathname' for top pages, 'browser'/'operating_system'/'device_type' for tech stats, 'country'/'city' for geo, 'utm_source'/'utm_campaign' for marketing, 'referrer'/'channel' for traffic sources, 'entry_page'/'exit_page' for user flow. Returns sorted list with counts, percentages, bounce rate, and session duration.
Inputs: siteId (required), parameter (required), page, limit, +6 more.
rybbit_get_org_event_countOrganization Event CountARead-onlyIdempotent
Get aggregated daily event counts across all sites in an organization. Includes breakdown by event type (pageviews, custom events, errors, etc.). Use rybbit_list_sites to find organization IDs.
Inputs: organizationId (required), endDate, timeZone, startDate.
rybbit_get_outbound_linksOutbound LinksARead-onlyIdempotent
Get outbound link clicks tracked on the site. Shows which external URLs users are clicking and how often.
Inputs: siteId (required), page, limit, endDate, +5 more.
rybbit_get_overviewSite OverviewBRead-onlyIdempotent
Get aggregated overview metrics for a site: sessions, pageviews, unique users, pages per session, bounce rate, and average session duration. Supports date range and filters.
Inputs: siteId (required), endDate, filters, timeZone, +3 more.
rybbit_get_overview_timeseriesOverview Time SeriesARead-onlyIdempotent
Get overview metrics as time-series data with configurable time buckets (minute, hour, day, week, month). Returns arrays of data points for charting trends.
Inputs: siteId (required), bucket, endDate, filters, +4 more.
rybbit_get_page_titlesPage TitlesBRead-onlyIdempotent
Get page titles with visit counts, percentages, and average time on page. Useful for understanding content engagement. Returns title, pathname, visits, percentage, and avg time.
Inputs: siteId (required), page, limit, endDate, +5 more.
rybbit_get_performanceWeb VitalsARead-onlyIdempotent
Get Core Web Vitals performance metrics (LCP, CLS, INP, FCP, TTFB) with p50, p75, p90, p99 percentiles. Optionally break down by page path, browser, or OS.
Inputs: siteId (required), endDate, filters, timeZone, +4 more.
rybbit_get_performance_timeseriesWeb Vitals Time SeriesARead-onlyIdempotent
Get Core Web Vitals performance metrics as time-series data for trend analysis.
Inputs: siteId (required), bucket, endDate, filters, +4 more.
rybbit_get_retentionUser RetentionBRead-onlyIdempotent
Get user retention cohort analysis showing how many users return over time periods.
Inputs: siteId (required), endDate, filters, timeZone, +3 more.
rybbit_get_sessionSession DetailARead-onlyIdempotent
Get detailed session information including all page views, events, user traits, device info, location, and full event timeline. Use rybbit_list_sessions first to find session IDs.
Inputs: siteId (required), sessionId (required).
rybbit_get_session_locationsSession LocationsARead-onlyIdempotent
Get geographic session location data with coordinates. Returns latitude, longitude, city, country, and session count for map visualization and geographic analysis.
Inputs: siteId (required), page, limit, endDate, +5 more.
rybbit_get_site_detailsSite DetailsARead-onlyIdempotent
Get full site configuration and metadata: domain, name, creation date, tracking flags (blockBots, trackIp, sessionReplay, webVitals, trackErrors, trackOutbound, trackUrlParams, trackButtonClicks, trackCopy, trackFormInteractions, etc.). Complementary to rybbit_update_site_config — this reads the current config.
Inputs: siteId (required).
rybbit_get_site_event_countSite Event CountARead-onlyIdempotent
Get time-bucketed event counts broken down by type: pageviews, custom events, performance, outbound, errors, button clicks, copy, form submits, input changes. Useful for understanding the volume and mix of tracking events over time.
Inputs: siteId (required), bucket, endDate, filters, +4 more.
rybbit_get_site_idGet Site ID by DomainARead-onlyIdempotent
Look up a site ID by domain name. Useful for finding the siteId needed for tracking setup and analytics queries.
Inputs: domain (required).
rybbit_get_userUser DetailARead-onlyIdempotent
Get detailed information about a specific user including their traits, session history, and activity summary.
Inputs: siteId (required), userId (required).
rybbit_get_user_event_breakdownUser Event BreakdownARead-onlyIdempotent
Get event count breakdown for a specific user. Shows how many times each event_name was triggered by this user. Accepts either the Rybbit user_id (device hash) or the identified_user_id (app-provided user ID). Useful for analyzing per-user behavior like ad_click, chat_message_sent, etc.
Inputs: siteId (required), userId (required), endDate, filters, +4 more.
rybbit_get_user_session_countUser Session CountARead-onlyIdempotent
Get daily session counts for a specific user over time. Useful for analyzing individual user activity patterns and retention.
Inputs: siteId (required), userId (required), endDate, timeZone, +1 more.
rybbit_get_user_traitsUser TraitsARead-onlyIdempotent
Get user trait keys, values, or find users by trait. mode='keys' lists all trait keys. mode='values' (default when key is provided) returns distinct values for a trait key. mode='users' finds users matching a specific trait key+value pair (case-insensitive).
Inputs: siteId (required), key, mode, limit, +1 more.
rybbit_list_eventsList EventsARead-onlyIdempotent
List raw events for a site with filtering and pagination. Returns individual event records with timestamps, types, pathnames, event names, and properties. When filtering by event_name, only matching events are returned (not entire sessions).
Inputs: siteId (required), page, limit, endDate, +6 more.
rybbit_list_funnelsList FunnelsARead-onlyIdempotent
List all saved funnels for a site with their step definitions.
Inputs: siteId (required).
rybbit_list_goalsList GoalsARead-onlyIdempotent
List all goals for a site with their current conversion metrics and configuration.
Inputs: siteId (required), endDate, filters, timeZone, +3 more.
rybbit_list_sessionsList SessionsARead-onlyIdempotent
List sessions for a site with filtering and pagination. Returns session ID, user info, device, location, pages visited, duration, bounce status, and IP address (if site has trackIp enabled). Supports client-side IP filtering.
Inputs: siteId (required), ip, page, limit, +8 more.
rybbit_list_sitesList SitesARead-onlyIdempotent
List all sites and organizations the authenticated user has access to
Inputs: no named parameters.
rybbit_list_usersList UsersARead-onlyIdempotent
List users for a site. Returns user IDs, session counts, first/last seen dates, and user traits. Supports filtering by any analytics dimension. Use 'search' param to find users by username/email/name (case-insensitive partial match).
Inputs: siteId (required), page, limit, search, +10 more.
rybbit_live_usersLive User CountARead-onlyIdempotent
Get the current number of live/active users on a site in real-time
Inputs: siteId (required).
rybbit_update_funnelUpdate FunnelAIdempotent
Update an existing funnel's name and/or steps. Uses the create endpoint with reportId to perform an upsert. Use rybbit_list_funnels to find funnel IDs (the 'id' field is the reportId).
Inputs: name (required), steps (required), siteId (required), funnelId (required).
rybbit_update_goalUpdate GoalAIdempotent
Update an existing goal. You must provide the full goal definition (goalType + config) as the update replaces the entire goal. Use rybbit_list_goals to find goal IDs and current configuration.
Inputs: config (required), goalId (required), siteId (required), goalType (required), +1 more.
rybbit_update_site_configUpdate Site ConfigBIdempotent
Update configuration for an existing Rybbit site. Toggle tracking features like IP tracking, session replay, error tracking, button clicks, etc.
Inputs: siteId (required), public, trackIp, blockBots, +11 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 48 tools
Most tools are clearly distinct resource/action pairs, and the verbose descriptions help separate similarly named analytics queries. However, the large cluster of get_* metric, event-count, and timeseries tools could still cause misselection without careful reading.
All tools follow a consistent rybbit_<verb>_<noun> pattern with standard CRUD verbs and batch_create variants. There is no mixed casing or arbitrary verb usage, so an agent can reliably predict tool names.
48 tools is far above the 25+ threshold and creates a heavy selection surface for agents. The tools are logically grouped, but the count feels more like a full REST API dump than a curated MCP toolset.
The toolset provides strong coverage across sites, sessions, users, events, funnels, goals, performance, and configuration workflows, including CRUD where appropriate. Minor gaps exist: excluded IP/country lists are read-only, and there are no bulk update/delete operations for sites.
Maintenance
Related MCP Connectors
Real-time web analytics for AI agents: query traffic, funnels, revenue, and manage your sites.
Query your Betterlytics web analytics from AI agents: traffic, funnels, journeys, errors, uptime.
SEO research, Search Console, GA4 and PPC tools for Claude and ChatGPT.
Ask your website analytics in plain language and set up funnels, features and dashboards.
Related MCP Servers
- AlicenseAqualityBmaintenanceEnables users to access and manage Savri analytics data, including visitor statistics, traffic sources, and conversion funnels, directly within Claude. It supports tracking custom event properties and creating multi-step conversion goals through natural language prompts.15651 npmMIT
- AlicenseBqualityBmaintenanceEnables querying Rybbit Analytics data directly through MCP-compatible clients like Claude Code. It provides tools for monitoring website statistics, user sessions, error logs, funnels, and performance metrics via natural language.4314 npm4MIT
- AlicenseAqualityDmaintenanceExposes Rybbit Analytics as MCP tools for querying site traffic, page views, visitor sessions, and live visitor counts through natural language.978 npmMIT
- FlicenseNot gradedqualityDmaintenanceEnables Claude Desktop to interact with Roistat analytics, orders, statistics, call tracking, and clients via 16 supported functions.1-