MCP server
Ripples has always been built to give you the answer instead of the chart. This is that taken literally: connect it to Claude, Claude Code or Cursor and ask in your own words. The assistant calls the same reports the dashboard draws — not a query builder, not a guess — so what it tells you is what your dashboard would have told you, phrased as a reply.
https://mcp.ripples.sh/mcp
Read-only. OAuth sign-in with your Ripples account. Free on every plan, including the free one — we don't gate features by tier.
What you can ask
These are real things people type. Each one is several calls behind the scenes — a breakdown, a cohort, a retention curve — assembled into one answer instead of four tabs.
And the ones it will refuse: session replay, bounce rate, session duration, A/B test analysis and custom multi-step funnels are not in Ripples, so the server says so rather than approximating. That list is on what we don't do.
Connect
No API key to generate, copy or leak. The client sends you to a Ripples sign-in page, you approve it, and the token belongs to your account — revoke it the same way you would any other login.
https://mcp.ripples.sh/mcp
What it can see
Not one tool per chart. One per question shape — “which X is working”, “do they come back”, “did the money come back” — because a list where three tools could plausibly answer the same question is a list an assistant picks wrongly from. The handful that can change something need a permission you grant separately, and they say what they changed.
ripples_projects
List projects
List every project you can see, across every team — with its handle, domain, timezone, currency and whether its tracking is actually working.
ripples_metrics
Metric definitions
What each metric in Ripples actually counts, the exact values every filter and enum accepts, and — importantly — the list of questions Ripples cannot answer.
ripples_overview
Overview
The scorecard: visitors, active users, signups, activations, revenue and who is online right now, each against its previous period.
ripples_timeseries
Metrics over time
Visitors, active users, pageviews, signups, activations and revenue plotted over time, with the previous period aligned bucket for bucket.
ripples_breakdown
Rank and compare a dimension
Rank the values of one or more dimensions — channel, source, campaign, country, city, page, device, browser, OS, platform, plan, tier, event type, and any trait your identify() call sends.
ripples_funnel
Conversion funnel
The conversion funnel: visited → signed up → activated → paid, with the count, conversion rate and drop-off at each step.
ripples_revenue
Revenue
Revenue in depth: totals against the previous period, MRR and its 30-day move, annualised run rate, ARPU, the subscription-vs-one-time split, revenue by channel, and how long people take to first pay.
ripples_retention
Retention
Do people come back? Returns the cohort matrix and curve — D1/D7/D30 style retention by acquisition cohort — plus the activity-tier mix of recent signups.
ripples_cohorts
Cohorts and payback
Ad payback by acquisition cohort: for each cohort, its size, spend, revenue and retention at 0/1/3/7/14/30/60 days, plus ROAS and the day the cohort paid for itself.
ripples_engagement
Product engagement
What people actually DO in the product, as opposed to how many arrive: which areas they use, which named actions they fire, how many are genuinely active, and how many signups reached activation.
ripples_realtime
Realtime
What is happening right now: how many visitors are on the site in the last five minutes, and optionally a per-minute series, their approximate locations, a live event feed, and the list of event names this project actually emits.
ripples_people
Find people
Find the people in a project by who they are (country, channel, plan, tier, revenue, signup date) and by what they did (fired an event, used an area, at least N times, in a window).
ripples_channels
Channel classification
Can write
Read, test and change how this project files traffic into channels — the dimension every ROAS, CAC and payback number is grouped by, and the only one the customer defines rather than Ripples measuring it.
ripples_person
One person
Extra permission
Everything about one person: who they are, where they came from, what they pay, which product areas they use, and their sessions in order.
ripples_configure
Record spend and settings
Can write
Write project configuration.
ripples_google_ads
Google Ads sync
Can write
Needs Google Ads
Check whether this project's Google Ads spend is actually up to date, and re-pull it if it is not.
Context and methods
Context you attach once. The docs ones matter most: “how do I track a signup from my Rails backend?” gets the real snippet from our documentation instead of one the model half-remembers, which is how people end up with a tracker that silently never fires.
ripples://docs
Every documentation page available at ripples://docs/{slug}, with its title and a one-line summary.
ripples://docs/{slug}
The full markdown of one Ripples documentation page — installation snippets, identify(), custom events, Stripe, Paddle, single-page apps, and the iOS, PHP and Python SDKs.
ripples://metrics
What every Ripples metric counts, every value each filter accepts, every caveat code a payload can carry, and the questions Ripples deliberately cannot answer.
ripples://project/{handle}/schema
The event names, product areas, identify() trait keys, channels and sources one project has actually sent in the last 90 days.
ripples://project/{handle}/channels
The channel classification rules for one project, in evaluation order, with the fields and operators they are built from.
Saved methods you pick from a menu in your client. Each one encodes how to do that piece of analysis honestly — rule out a broken tracker before blaming the business, report payback alongside return, never read a base rate as a finding.
/weekly_founder_brief
The Monday-morning read: what moved this week, where the people came from, whether they stayed, and the one thing worth doing about it.
/portfolio_triage
Rank every project you can see and name the one worth working on next, with the reasons.
/channel_review
Where the next marketing money should go: which channels bring people who pay, how long they take to pay back, and what to do with a given budget.
/launch_debrief
Before and after a ship, a launch or a post: who came, where from, whether they signed up, and whether anything actually changed.
/activation_audit
Where onboarding leaks: how many people who sign up ever do anything, which parts of the product they reach, and where they stop.
/investigate
Work out why a number moved, or what is different about a group of people.
/trust_check
Whether the numbers can be trusted: what is instrumented, what is missing, which figures are affected by each gap, and how to fix it.
Being straight with you
mcp:use
Granted by default
Every report the dashboard shows, for every project on every team you belong to. Counts, channels, revenue, retention and segments — no names, no email addresses.
mcp:people
You choose
Names, email addresses and one person's full history. Without it, people tools still answer "how many" and "what did that group do" — the identifying fields come back redacted.
mcp:write
You choose
Record what your ads cost — the one number Ripples cannot measure and every ROAS figure is divided by — and change the project timezone, week start, currency or channel rules. Channel rules cannot be saved without previewing what they reclassify first. Everything else on the server stays read-only without this.
The assistant cannot write a query against your data. It calls the same reports the dashboard draws, which is also why it cannot invent a metric: every number comes back with the definition of what it counted.
No tool ranks causes or hands back a conclusion. It returns the distributions, the deltas, the base rates and the caveats needed to read them honestly — the reasoning is the assistant's, in front of you, where you can argue with it.
A channel with no recorded ad spend comes back as null, never zero, so nothing reports free traffic with infinite return. A project too young to compare says so instead of printing +920000%. Those warnings ride on every payload.
A token is you, so it reaches every project across every team you belong to. That is the one thing the dashboard structurally cannot do, and it is why "which project deserves my Saturday" is answerable here first.
One line of code, then connect the assistant. Free until $1K MRR.