Help us improve
Share bugs, ideas, or general feedback.
From RevenueCat
Guides querying RevenueCat charts via MCP tools and interpreting subscription KPIs for acquisition, conversion, retention, and reactivation. Provides dashboard URL formats.
npx claudepluginhub revenuecat/ai-toolkit --plugin RevenueCatHow this skill is triggered — by the user, by Claude, or both
Slash command
/RevenueCat:revenuecat-chartsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Use the following two tools of the RevenueCat MCP:
Mines projects and conversations into a searchable memory palace and retrieves past work via semantic search.
Guides Payload CMS config (payload.config.ts), collections, fields, hooks, access control, APIs. Debugs validation errors, security, relationships, queries, transactions, hook behavior.
Implements vector databases with Pinecone, Weaviate, Qdrant, Milvus, pgvector for semantic search, RAG, recommendations, and similarity systems. Optimizes embeddings, indexing, and hybrid search.
Share bugs, ideas, or general feedback.
Use the following two tools of the RevenueCat MCP:
get-chart-options-schema: To understand the available options for each chart, including date resolution, segments, filters, and other selectorsget-chart-data: To retrieve data for a chartIn general, to avoid clogging the context, start with defined timeframes and larger resolution, then narrow down.
Subscription apps are driven by four forces:
Acquisition - how many new customers are arriving to the app Conversion - how many of those customers are converting into trials or paid paid plans Retention - how long do those customers retain Reactivation - how can you bring back old users
The net movement of an apps revenue will be the result of the combination of these forces. When giving advice, always use benchmark data to make sure you aren't incorrectly diagnosing an issue.
The definition of conversion may vary depending on what model the app is using. They may be converting to a trial, that then converts into a subscription. Or they may be sending users directly to a subscription.
IMPORTANT: Use this exact structure:
https://app.revenuecat.com/projects/{project_id}/charts/{chart_name}?range={range_value}
{project_id} — The short hex ID (e.g., 56965ae1), NOT the full proj56965ae1{chart_name} — Chart name like revenue, churn, mrr, etc.Correct example:
https://app.revenuecat.com/projects/56965ae1/charts/revenue?range=Last+90+days%3A2025-11-16%3A2026-02-13
WRONG — do not use:
https://app.revenuecat.com/charts/revenue?project=proj56965ae1&chart_start=...&chart_end=...
range) — REQUIREDThe range parameter controls the date range. Format: {preset}:{start_date}:{end_date}
You must use this format — do NOT use start_date, end_date, chart_start, or chart_end params.
| Preset | Encoded Value |
|---|---|
| Last 7 days | range=Last+7+days%3A2026-02-06%3A2026-02-13 |
| Last 28 days | range=Last+28+days%3A2026-01-16%3A2026-02-13 |
| Last 90 days | range=Last+90+days%3A2025-11-16%3A2026-02-13 |
| Last 365 days | range=Last+365+days%3A2025-02-13%3A2026-02-13 |
| Custom | range=Custom%3A2025-01-01%3A2025-12-31 |
Note: The : between parts must be URL-encoded as %3A. Spaces become +.
resolution)| Value | Meaning |
|---|---|
day | Daily granularity |
week | Weekly granularity |
month | Monthly granularity |
quarter | Quarterly granularity |
year | Yearly granularity |
segment_by)Dimension to break down the data by. Common values:
country — by countrystore — by app store (App Store, Play Store, etc.)product — by product identifierplatform — by platform (iOS, Android, etc.)offering — by offeringFilters are passed as individual query params with the filter name as key:
| Filter | Example |
|---|---|
country | country=US |
store | store=app_store |
product_identifier | product_identifier=premium_monthly |
platform | platform=iOS |
Multiple values for the same filter: country=US&country=DE&country=JP
Some charts have special selectors:
Conversion/Retention charts:
customer_lifetime — e.g., 30+days, 60+days, 90+daysconversion_timeframe — e.g., 7+days, 14+days, 30+daysWorkflow charts:
path — workflow path filterworkflows_customer_lifetime — e.g., initialTo generate a dashboard link:
https://app.revenuecat.com/projects/{project_id}/charts/{chart_name}range param with date rangesegment_by if segmenting+, colons → %3A, etc.)When translating from API parameters to dashboard URLs:
| API Parameter | Dashboard Parameter |
|---|---|
start_date + end_date | range=Custom%3A{start}%3A{end} (use Custom preset) |
segment | segment_by |
filters (JSON array) | Individual query params |
selectors (JSON object) | Individual query params |
Note: Do NOT pass resolution as a numeric value. The resolution is typically implied by the range preset or omitted.
User wants: "Revenue chart for last 90 days, segmented by country, filtered to US and Germany"
Calculate dates: if today is 2026-02-13, then 90 days ago is 2025-11-16.
https://app.revenuecat.com/projects/56965ae1/charts/revenue?range=Last+90+days%3A2025-11-16%3A2026-02-13&segment_by=country&country=US&country=DE
User wants: "Churn chart from August 2025 to now"
Use the Custom preset for arbitrary date ranges:
https://app.revenuecat.com/projects/56965ae1/charts/churn?range=Custom%3A2025-08-01%3A2026-02-13
The project ID can be found via the API:
GET /projects — lists all projects with their IDsproj56965ae1proj prefix — use just 56965ae1 in the path