Calculate normalized monthly recurring revenue from Stripe subscription data.
Stripe MCP Setup
Requires Stripe MCP connected via OAuth or restricted key. Docs: https://docs.stripe.com/mcp
GetMcpToolswithserver: "user-Stripe"(orplugin-stripe-stripe) before any call- Prefer
stripe_api_search→stripe_api_details→stripe_api_readfor list/retrieve - Always paginate —
limit: 100, followhas_morewithstarting_after - Amounts are in cents unless noted
- Never expose secret keys in output
Workflow
- List all
activesubscriptions — paginate untilhas_more: falseGetSubscriptionswithexpand: ["data.items.data.price"],status: active,limit: 100
- Optionally include
past_duein "MRR at risk" (label separately) - For each subscription item, normalize to monthly MRR:
| Interval | Monthly MRR per unit |
|---|---|
| month | unit_amount × quantity / interval_count |
| year | unit_amount × quantity / (12 × interval_count) |
| week | unit_amount × quantity × 52 / (12 × interval_count) |
- Group by
price.idand product name - Sum → MRR; multiply by 12 → ARR
Output Template
MRR Snapshot (as of [date])
Active subscriptions: [N]
MRR (active only): $[X]
ARR: $[X × 12]
Past due MRR at risk: $[Y] ([n] subs) — optional
By plan:
| Subs | Plan | Unit price | MRR |
|------|------|------------|-----|
Notes:
- [annual plans normalized to monthly]
- [multi-item subs counted once per sub, sum line items]
Pitfalls
- Search API caps at 100 — use
GetSubscriptionswith pagination trialingsubs: exclude from paid MRR unless user asks for "pipeline MRR"- Multi-currency: report per currency or convert with stated FX rate