次のような場合に使用: ユーザーがRevenueCat(売上管理ツール)のデータ、分析情報、グラフ、またはKPI(重要業績評価指標)について質問する場合。具体的には、グラフを問い合わせしたり、購読サービスの指標を説明したり、ダッシュボードのグラフリンクを共有する場合に用いられます。
Use when the user asks about RevenueCat data, analytics, charts, or KPIs — querying charts with get-chart-options-schema and get-chart-data, interpreting subscription metrics, or sharing dashboard chart links.
RevenueCat MCPの以下の2つのツールを使用します:
get-chart-options-schema: 日付解像度、セグメント、フィルター、その他のセレクターなど、各チャートで利用可能なオプションを理解するためget-chart-data: チャートのデータを取得するため一般的には、コンテキストの圧迫を避けるため、定義された期間とより大きな解像度から始めて、徐々に範囲を絞ります。
サブスクリプションアプリは4つの力によって駆動されます:
アプリの収益の正味の変動は、これらの力の組み合わせの結果となります。アドバイスを提供する際は、常にベンチマークデータを使用して、問題を誤って診断していないことを確認してください。
attribution_source = Organicは、その値で明示的にタグ付けされたユーザーのみを意味します。タグなしのユーザーやすべてのオーガニック/非有料ユーザーは含まれません転換の定義は、アプリが使用しているモデルによって異なる場合があります。トライアルに転換してから、その後サブスクリプションに転換させる場合もあります。またはユーザーを直接サブスクリプションに送信する場合もあります。
フィルターを保持してRevenueCatダッシュボードチャートへの共有可能なリンクを生成します。
重要: この正確な構造を使用します:
https://app.revenuecat.com/projects/{project_id}/charts/{chart_name}?range={range_value}
{project_id} — 短い16進数ID(例:56965ae1)。完全なproj56965ae1ではなく{chart_name} — revenue、churn、mrrなどのチャート名正しい例:
https://app.revenuecat.com/projects/56965ae1/charts/revenue?range=Last+90+days%3A2025-11-16%3A2026-02-13
間違い — 使用しないでください:
https://app.revenuecat.com/charts/revenue?project=proj56965ae1&chart_start=...&chart_end=...
range)— 必須rangeパラメータは日付範囲を制御します。形式:{preset}:{start_date}:{end_date}、start_dateとend_dateはYYYY-MM-DD形式。任意の日付範囲の場合はCustomをプリセットとして使用します。
このフォーマットを必ず使用してください — start_date、end_date、chart_start、chart_endパラメータは使用しないでください。注:パート間の:はURL エンコード%3Aする必要があります。プリセット名の空白は+になります。
例:range=Custom%3A2025-01-01%3A2025-12-31
resolution)| 値 | 意味 |
|---|---|
0 |
日単位の粒度 |
1 |
週単位の粒度 |
2 |
月単位の粒度 |
3 |
四半期単位の粒度 |
4 |
年単位の粒度 |
segment)データを分割するディメンション。get-chart-dataリクエストを作成するときに使用していた正確な値を使用します。
country — 国別store — アプリストア別(App Store、Play Storeなど)product_id — 製品識別子別platform — プラットフォーム別(iOS、Androidなど)offering_id — オファリング別フィルターは個別のクエリfilterパラメータとして、内容{dimension}%3A%3D%3A{value}で渡されます。get-chart-dataリクエストに使用したディメンション名を使用してください。
| ディメンション | 例 |
|---|---|
country |
filter=country%3A%3D%3AUS |
store |
filter=store%3A%3D%3Aapp_store |
product |
filter=product_id%3A%3D%3Aprodbb68905d98 |
platform |
filter=platform%3A%3D%3AiOS |
複数のフィルターを使用するには、同じディメンションであるか複数のディメンションであるかに関わらず、複数のfilterクエリパラメータを含めます。同じディメンションに対して複数のフィルターを渡すとOR演算が行われ、異なるディメンションに対するフィルターを渡すとAND演算が行われます。
一部のチャートには特別なセレクターがあります:
転換/リテンションチャート:
customer_lifetime — 例:30_days、60_days、90_daysconversion_timeframe — 例:7_days、14_days、30_daysダッシュボードリンクを生成するには:
https://app.revenuecat.com/projects/{project_id}/charts/{chart_name}rangeパラメータを追加filterクエリパラメータとして追加segmentを追加+、コロン→%3Aなど)APIパラメータをダッシュボードURLに変換する場合:
| APIパラメータ | ダッシュボードパラメータ |
|---|---|
start_date + end_date |
range=Custom%3A{start}%3A{end}(Customプリセットを使用) |
segment |
segment |
filters(JSON配列) |
個別のfilterクエリパラメータ |
selectors(JSONオブジェクト) |
個別のクエリパラメータ |
ユーザーの要望:「直近90日間の国別セグメント化収益チャート、米国とドイツにフィルターされたもの」
日付を計算:本日が2026-02-13の場合、90日前は2025-11-16です。
https://app.revenuecat.com/projects/56965ae1/charts/revenue?range=Last+90+days%3A2025-11-16%3A2026-02-13&segment=country&filter=country%3A%3D%3AUS&filter=country%3A%3D%3ADE
ユーザーの要望:「2025年8月から現在までのチャーンチャート」
任意の日付範囲にCustomプリセットを使用します:
https://app.revenuecat.com/projects/56965ae1/charts/churn?range=Custom%3A2025-08-01%3A2026-02-13
プロジェクトIDはlist_projectsツールを使用して取得でき、すべてのプロジェクトとそのIDがリストされます。
projで始まるIDを返します。例:proj56965ae1projプリフィックスを削除してください — パスには56965ae1のみを使用しますWhen querying a RevenueCat chart, follow this workflow:
get-chart-options-schema to discover a chart's available options.get-chart-data with the right options to retrieve the chart data.In general, to avoid clogging the context, start with defined timeframes and larger resolution, then narrow down.
get-chart-options-schemaget-chart-options-schema as the source of truth for each chart before calling
get-chart-data. It returns the chart's supported resolutions, filters, segments, and
user_selectors. Always call this tool with "realtime": true. Later get-chart-data calls must
use string IDs exactly as returned here.filters are the dimensions you may later constrain in get-chart-data.
id to later use as the filter name.value_mode that tells you how to choose valid values:
inline_enum means you must use the id of one of the returned options. Resolve
user-supplied names first with the matching list tool, such as list-products,
list-offerings, list-apps, etc.inferred_standard means use the standard code from value_source such as an ISO country
code.dynamic means values come from observed project data and must match exactly.segments are the dimensions you may later group by in get-chart-data using segment.
id to use. It does not list segment values
because the chart will group by it and show all values in the output.conversion_to_paying may support product_id and
offering_identifier as filters but not as segments.user_selectors are chart-specific switches that change what metric or window the chart returns.
Each selector is keyed by the selector ID to pass in get-chart-data's selectors JSON object
and usually includes allowed option IDs plus a default. For example, the revenue chart may use
revenue_type (revenue, revenue_net_of_taxes, proceeds), while conversion charts may use
conversion_timeframe and default to 7_days. State non-default selector choices when presenting
results.resolutions list the supported time granularity and their string IDs for get-chart-data. You
must always pass one of these resolution IDs (such as "0" for day or "2" for month) when later
calling get-chart-data.get-chart-dataget-chart-data"realtime": true and specify start date, end date and resolution ID.get-chart-options-schema for that chart.filters to constrain the output. They are a JSON-encoded array of
{"name": "<filter id>", "values": ["<value id>", ...]}.
"[{\"name\": \"store\", \"values\": [\"app_store\"]}, {\"name\": \"country\", \"values\": [\"US\", \"GB\"]}]".selectors for configuring the chart. They are a JSON-encoded object mapping
selector IDs to option IDs, e.g. "{\"revenue_type\": \"proceeds\"}". Omitted selectors use their
defaults; the response echoes the applied values in user_selectors.segment to group the output by some of the segmentable dimension IDs:
limit_num_segments (keeps the top N by value and folds the
rest into "Other"), or aggregate when you only need per-segment totals.aggregate for summary-only questions such as totals or averages (e.g. "total Q1 revenue").
Prefer this over fetching and computing from raw data points yourself. Combined with segment it
returns compact per-segment summaries (e.g. country averages). In the output, values will be
empty and summary will contain just those operations.currency to convert outputs to some monetary unit (see yaxis_currency in the response).get-chart-data outputsmeasures lists the metrics the chart returns (display name, unit, description). Most charts
return several, e.g. revenue may return Revenue, Transactions, and Ad Impressions.values is a flat array of points {cohort, measure, value, incomplete}, plus segment when
segmented. cohort is the Unix timestamp of the period start; measure and segment are indexes
into the measures and segments arrays. The first segment is usually a "is_total": true -
never sum it together with the other segments.summary holds total and average per measure display name, nested per segment when segmented.incomplete: true cover partial periods: the current period, and the first period
when start_date falls mid-period (since expand_periods defaults to false). Exclude them from
trend or comparison analysis, and call them out when presenting. Point-in-time charts (MRR,
actives, trials) ignore expand_periods: their values are snapshots at period boundaries and are
never partial.annotations lists dated notes the user made on their dashboard (e.g. releases, launches or
experiments). Check them when explaining movements in the data.parameter_error whose message
lists the supported IDs. On such errors, re-read the options schema instead of retrying guesses.Total segment, and the limit_num_segments cap folds segments
beyond the top N into an Other segment. Use Total as the baseline; do not sum segments
yourself.jq or a short Python script) instead of reasoning over the numbers.conversion_timeframe on conversion charts, customer_lifetime on realized LTV charts), one
window per call. State the window when presenting results and hold it constant when comparing
cohorts.Subscription apps are driven by four forces:
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.
General guidelines:
revenue_type selector set to proceeds, don't link to the plain revenue chartattribution_source = Organic only means users
explicitly tagged with that value; it does not include untagged users or every organic/non-paid
user.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.
product_id gives the share of ALL new customers converting to that product,
not that product's own conversion rate. State this caveat when presenting filtered results.Generate shareable links to RevenueCat dashboard charts.
A chart link must follow a specific Dashboard URL Format and must be built
from a verified previous successful get-chart-data call.
get-chart-data call for this chart, follow the Querying
RevenueCat charts workflow above first.https://app.revenuecat.com/projects/{project_id}/charts/{chart_name}.range param with date range. This is required.resolution param with resolution. Don't trust defaults.filter params.segment param, if segmenting.+, colons → %3A, etc.)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} — The same chart name used with get-chart-data (revenue, churn, mrr,
conversion_to_paying, etc.)Correct example:
https://app.revenuecat.com/projects/56965ae1/charts/revenue?range=Custom%3A2025-11-16%3A2026-02-13
WRONG — do not use:
https://app.revenuecat.com/charts/revenue?project=proj56965ae1&chart_start=...&chart_end=...
range param — requiredThe range parameter controls the date range. Format: {preset}:{start_date}:{end_date}, with
start_date and end_date in YYYY-MM-DD format. Use Custom as the preset.
Always use this format — do not use start_date, end_date, chart_start, or chart_end
params. Note: The : between parts must be URL-encoded as %3A.
Example: range=Custom%3A2025-01-01%3A2025-12-31
resolution param| Value | Meaning |
|---|---|
0 |
Daily granularity |
1 |
Weekly granularity |
2 |
Monthly granularity |
3 |
Quarterly granularity |
4 |
Yearly granularity |
segment paramDimension to break down the data by. Use the exact dimension ID you were using to make the
get-chart-data request.
country — by countrystore — by app store (App Store, Play Store, etc.)product_id — by product identifierplatform — by platform (iOS, Android, etc.)offering_identifier — by offeringSegments vary per chart — only link a segment you successfully used in a get-chart-data call for
that chart.
filter paramsFilters are passed as individual query filter params with the content
{dimension}%3A%3D%3A{value}. Use the dimension names you used for the get-chart-data request.
| Dimension | Example |
|---|---|
country |
filter=country%3A%3D%3AUS |
store |
filter=store%3A%3D%3Aapp_store |
product_id |
filter=product_id%3A%3D%3Aprodbb68905d98 |
platform |
filter=platform%3A%3D%3AiOS |
To use multiple filters, regardless of whether they are for the same dimension or multiple
dimensions, include multiple filter query parameters. Passing multiple filters for the same
dimension will result in an OR operation, passing filters for different dimensions will result in an
AND operation.
Selectors are passed as individual query params, with the same names and values used in the
get-chart-data selectors argument. Orientative examples (truth in get-chart-data):
revenue_type (revenue chart) — revenue, revenue_net_of_taxes, or proceedsconversion_timeframe (conversion charts) — 0_days, 3_days, 7_days, 14_days, 30_days,
or unboundedcustomer_lifetime (realized LTV charts) — 7_days, 14_days, 30_days, 3_months up to
24_months, or unboundedWhen 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 |
filters (JSON array) |
Individual filter query params |
selectors (JSON object) |
Individual query params |
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=Custom%3A2025-11-16%3A2026-02-13&segment=country&filter=country%3A%3D%3AUS&filter=country%3A%3D%3ADE
User wants: "Churn chart from August 2025 to now"
https://app.revenuecat.com/projects/56965ae1/charts/churn?range=Custom%3A2025-08-01%3A2026-02-13
The project ID can be found via the list-projects tool, which lists all projects with their ID.
proj, for example proj56965ae1proj prefix — use just 56965ae1 in the path原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。