CHARGEBEE MCP · HEADLESS BILLING INFRASTRUCTURE

Query subscriptions, invoices, and usage
in plain language.

Your billing record already holds what your team needs: renewal dates, churn signals, unpaid balances, ARR by cohort. Point an AI client at it through the MCP server and query it directly. Finance, CS, RevOps, and product all ask, no dashboard required.

Live · MCP connector25+ use cases  and counting
Works in
ClaudeCursorChatGPTCodexClaude CodeNotion
Toolsets in this MCP server
Exposed to Claude, Cursor, ChatGPT, Codex, Claude Code & Notion.
Customers
Subscriptions
Invoices
Payments
Transactions
Credit Notes
Quotes
Products & Plans
Events
Export Data
Metadata
Ramps / Billing phases
Why this works

Ask the record you  already have.

The data that decides what to do is already on the record: every invoice's payments and terms, every subscription's plan and add-ons, every cancellation's reason. The signal was always there. What was missing was a fast way to ask for it.

Connect an AI client through the Model Context Protocol and that history becomes queryable in plain English. One question reads the records, runs the math, and ranks the answer.

No SQL. No export. No analyst in the loop.

By team
By pain area
Featured outputs · see a live answer
Dunning recovery intelligence
Usually asked by the team working dunning
Ask Chargebee MCP
Claude Desktop — Chargebee MCP
"Pull all invoices where dunning_status is 'in_progress' — these are accounts currently in active dunning with automatic retries still running. Also pull invoices where dunning_status is 'exhausted' — these have used all retry attempts and are likely lost. For each account, show customer ID, invoice amount, number of dunning_attempts, and the last attempt date. Sort by invoice amount descending within each tier: Active dunning (in_progress), Exhausted (exhausted)."
dunning_status is a native server-side filter on invoices. Confirmed working live today. No workaround needed.
Chargebee MCP output

Two queries, two lists — here is what came back from your Chargebee site right now.

5
In active dunning
5
Dunning exhausted
$7,154
In-progress exposure
$6,430
Exhausted — no auto-recovery
Query 1 — dunning_status is in_progress
InvoiceCustomerAmount dueDateAction
INV-9102cst_hb3371$382.004 Jun 2026Retries active
INV-9089cst_ac6607$1,600.004 Jun 2026Retries active
INV-9078cst_rk9903$1,343.004 Jun 2026Retries active
INV-9031cst_sp1195$420.024 Jun 2026Retries active
INV-9030cst_yu8840$328.714 Jun 2026Retries active
Query 2 — dunning_status is exhausted
InvoiceCustomerAmount dueDateAction
INV-8914cst_dk2283$99.001 Jun 2026Manual outreach needed
INV-8847cst_du8813$696.001 Jun 2026Manual outreach needed
INV-8761cst_eg5514$3,486.0031 May 2026Manual outreach needed
INV-8492cst_fw3301$280.0027 May 2026Manual outreach needed
INV-8468cst_ox5591$1,869.2127 May 2026Manual outreach needed
The in_progress accounts still have retries running — a proactive call now could recover the payment before the next attempt fails. The exhausted accounts have no automatic path forward: a collections call or a write-off decision. Two filters, two completely different playbooks.
Ask Chargebee MCP
Claude Desktop — Chargebee MCP
"For a customer with repeated payment failures, pull their full invoice history. For each invoice show the month, amount, dunning_status (success, exhausted, or in_progress), and how many dunning_attempts it took. Lay them out chronologically so I can see the arc: which invoices cleared, which went to exhausted, and where the unbroken run of unpaid invoices starts. That inflection point — the first exhausted invoice after a healthy run — is the moment intervention still works. To scale this, pull payment_failed events first, take any customer appearing 2+ times, and run this history check on each."
dunning_attempts array on each invoice shows every retry with timestamp and result.
Chargebee MCP output

The chain is fully traceable. Every invoice carries a dunning_status and a dunning_attempts array, so you can watch a healthy payer degrade into a churn risk invoice by invoice. Here is one real account's 8-month arc.

3
Early invoices recovered
5
Consecutive unpaid since Feb
$3,800
Now stacked up, in dunning
Payment health, month by month — one account
Invoice monthAmountDunning outcomeSignal
Nov 2025$433Paid after 2 retriesHealthy
Dec 2025$860Paid after 2 retriesHealthy
Jan 2026$290Paid, but took 8 retriesStrain showing
Feb 2026$1,418Exhausted, unpaidChain begins
Mar 2026$290Exhausted, unpaidStacking
Apr 2026$304Exhausted, unpaidStacking
May 2026$437Exhausted, unpaidStacking
Jun 2026$1,343In active dunning nowPre-churn
This is what the failure-to-churn chain looks like before it becomes a cancellation. Three healthy months, one month of strain (8 retries to collect), then five straight unpaid invoices. The account is still active, but it is one dunning cycle away from an automatic cancel. Catching it at the February inflection — the first exhausted invoice — is the difference between a save and a write-off.
Ask Chargebee MCP
Claude Desktop — Chargebee MCP
"Pull the last 100 subscription cancellations. Group by source: SCHEDULED_JOB (involuntary), API (customer-initiated), ADMIN_CONSOLE (manual). Give me the count and percentage for each group. List the customer IDs in the involuntary bucket — those are the win-back candidates."
Source field on each cancellation event is the key signal. No extra query needed.
Chargebee MCP output

Every cancellation event carries a source field. That field is the signal that separates a customer who chose to leave from one the system cancelled after dunning ran out. Here is the real split across the last 35 cancellations.

35
Cancellations in window
24
Voluntary (API) — 69%
4
Involuntary (dunning) — 11%
7
Manual (admin) — 20%
How the source field maps to churn type
SourceCountChurn typeWhat it means
SCHEDULED_JOB4InvoluntaryAuto-cancelled after dunning exhausted. Payment failed, retries ran out. The customer may not have meant to leave.
API24VoluntaryCustomer-initiated through your app or portal. A deliberate decision to cancel.
ADMIN_CONSOLE7ManualCancelled by your team in Chargebee. Could be a support request or an ops cleanup.
The 4 involuntary cancellations are the preventable ones. Those customers hit a failed payment, not a decision to leave, so a card update or a quick call could have saved them. They are your win-back shortlist. The 24 voluntary cancellations need a different conversation entirely, and the 7 manual ones are worth a glance to confirm they were intended.
Cash & collections
Ask Chargebee MCP
Claude Desktop — Chargebee MCP
"How much does customer [CUSTOMER_ID] currently owe? Show all open invoices, the amount due on each, and whether any are in dunning."
Works for any customer ID. The connector reads directly from your live Chargebee data.
Chargebee MCP output

Billing questions that required a Chargebee tab, a filter, and three clicks now take one sentence in Claude.

Live result — customer lookup from Chargebee
FieldValue
Customer IDcst_vx8821 (Velostack)
InvoiceINV-8831
Statuspayment_due
Amount due$42,180.00
Due date1 Jun 2026
Dunningin_progress — 5 failed attempts
One question. One answer. No tab switching, no manual filter, no waiting for someone on the billing team to check.
Ask Chargebee MCP
Claude Desktop — Chargebee MCP
"Pull all payment_failed events from the last 60 days. Group by source: EXTERNAL_SERVICE, SCHEDULED_JOB, HOSTED_PAGE. For each group show count and customer IDs. Then identify customers with 3+ failures — show their invoice ID, amount, failure count, and whether the invoice has since been paid."
Grouping and counts are Claude-side calculations from returned event records.
Chargebee MCP output
20+
Failures in last 24h alone
3
Trigger sources
SourceMeaningCount (sample)Action
EXTERNAL_SERVICECard/bank declined~16 of 20Update payment method
SCHEDULED_JOBDunning retry failed~3 of 20Dunning active — monitor
HOSTED_PAGECheckout failure~1 of 20Customer-entered card — outreach
Repeat failure customerInvoiceAmountAttemptsStatus
cst_vx8821 (Velostack)INV-8831$42,1805Still open
cst_pq4412 (Pulseboard)INV-8372$23,3006Dunning exhausted
Ask Chargebee MCP
Claude Desktop — Chargebee MCP
"For customer [CUSTOMER_ID], pull all invoices. For each, find generated_at and the date of the first successful transaction in linked_payments. Calculate days-to-collect. Flag any over 30 days and give me the average."
linked_payments array on each invoice contains full transaction history including dates and success/failure status.
Chargebee MCP output
InvoiceAmountGeneratedPaidDays
INV-8831$42,1801 Jun 2026Not paidStill open
INV-8647$15,4601 May 202626 May 202625 days
INV-8412$1,4021 Apr 202629 May 202658 days
INV-8204$2,3001 Mar 202629 May 202689 days
INV-7983$7551 Feb 202629 May 2026117 days
INV-7761$3,9301 Jan 202629 May 2026148 days
Five invoices all settled on May 29 after ranging from 25 to 148 days outstanding. If your forecast models payment on invoice date, your cash flow projection was off by months for this account.
Ask Chargebee MCP
Claude Desktop — Chargebee MCP
"Pull payment_failed events from the last 7 days. For each customer, check whether their subscription is still active (grace period). For those, check whether dunning_status on their most recent invoice is 'in_progress'. Return: customer ID, invoice, amount, failure count, next_retry_at, subscription status."
Run this daily. The list updates in real time as new failures come in.
Chargebee MCP output

The query runs in two steps: pull invoices where dunning is in progress, then confirm the subscription is still active. Anyone still active is inside the grace window. Here is what came back live.

5
In grace window
5
Subscription still active
$4,054
Recoverable exposure
Failed payment, subscription still active — intervention window open
CustomerInvoiceAmount dueSubscriptionCard
cst_rk9903INV-9078$1,343.00ActiveValid
cst_ac6607INV-9089$1,600.00ActiveValid
cst_yu8840INV-9030$420.02ActiveValid
cst_hb3371INV-9102$382.00ActiveValid
cst_sp1195INV-9031$420.02ActiveValid
Every one of these subscriptions is still active with a valid card on file. The payment failed, but dunning has not exhausted yet, so Chargebee has not cancelled them. This is the window to reach out, fix the card, or retry manually — before the scheduled job ends the subscription and turns a retention problem into a win-back problem.
Churn & retention
Ask Chargebee MCP
Claude Desktop — Chargebee MCP
"Pull all subscription_cancellation_scheduled events and subscription_cancelled events from the last 30 days. For each customer, retrieve their subscription plan and amount. Rank by plan amount descending — that is the ARR at risk. Show: customer ID, plan, amount, days until cancellation, last payment date."
The save list is ready before the CSM opens their laptop, not after the cancellation finalises.
Chargebee MCP output

One native filter does this: pull every subscription where status is non_renewing. These are the accounts set to lapse at term end — still active today, but not coming back unless someone acts. Ranked by MRR at risk.

8
Non-renewing now
$605
MRR at risk / month
Jun 14–Jul 1
Term-end window
Non-renewing subscriptions — ranked by MRR at risk
CustomerMRRTerm endsDays leftStatus
cst_qt1198$138.0015 Jun 202611 daysnon_renewing
cst_dv6642$138.0030 Jun 202626 daysnon_renewing
cst_bm2287$115.0015 Jun 202611 daysnon_renewing
cst_nz7754$115.0015 Jun 202611 daysnon_renewing
cst_dk2283$99.001 Jul 202627 daysnon_renewing
These subscriptions are still active right now. Each one has a term-end date and has been flagged not to renew. The two closing on June 15 are the most urgent — 11 days to save them. The data was always in Chargebee. The only real risk is whether anyone looks before the term ends and the save window closes.
Ask Chargebee MCP
Claude Desktop — Chargebee MCP
"Pull all active subscriptions renewing in the next 90 days. For each customer, check their most recent invoice — is it payment_due or is dunning in_progress? Tier: High risk (active failures), Medium risk (overdue invoices, no recent failure), Healthy (all payments current). Sort by amount outstanding descending."
Tiering logic runs on Claude's side from billing data. No Salesforce access required.
Chargebee MCP output

The renewal filter is native: pull active subscriptions whose next_billing_at falls in the next 90 days, then check each one's invoice health. Here is the risk-tiered view from live data.

3
High risk
1
Medium risk
$5,853
Renewal revenue at risk
Renewing in 90 days, with billing problems — ranked by risk
CustomerRenewsOpen balanceSignalTier
cst_rk99034 Jul 2026$3,8005 due invoices, one in dunningHigh
cst_yu88404 Jul 2026$799Invoice in active dunningHigh
cst_sp11954 Jul 2026$420In dunning, on annual contractHigh
cst_bm228715 Jun 2026$310Overdue invoice, no dunning yetMedium
cst_rk9903 is the one to act on first. It renews July 4 with five unpaid invoices stacked up and a balance already in dunning — a renewal heading straight into a billing wall. The card on file is still valid, so this is recoverable with a call before the renewal date, not after. This replaces the manual Salesforce-plus-Chargebee reconciliation a CSM runs before every QBR.
Ask Chargebee MCP
Claude Desktop — Chargebee MCP
"Pull subscription_cancelled events from the last 6 months. For each customer, total their paid invoices to get LTV. Segment: LTV above $10K (high priority), $2K–$10K (medium), below $2K (low). Sort descending within each tier. Show customer ID, LTV, plan they were on, and cancellation date."
LTV calculated by Claude from invoice history per customer.
Chargebee MCP output

This is a two-step chain: pull cancellations, then sum each customer's paid invoices for real lifetime value. The output is a ranked call list, not a flat churn export. Here is the live result.

15
Churned in window
$8,640
Top account lifetime value
3
Worth a personal call
Churned customers ranked by lifetime value paid
CustomerLTV (paid)Last planChurnedPriority
cst_pk3376$8,640Performance4 Jun 2026High
cst_cb9920$5,210Performance4 Jun 2026High
cst_mr4457$2,180Growth3 Jun 2026Medium
cst_jl7713$843Performance4 Jun 2026Low
cst_wf2284$165Growth + add-on4 Jun 2026Low
The ranking is the whole point. A flat churn export treats a $8,640 lifetime customer the same as a $165 one. Sorting by paid LTV tells sales exactly who is worth a personal win-back call and who gets an automated email. The top two here paid real money over their lifetime — those are the calls to make this week.
Revenue & pricing
Ask Chargebee MCP
Claude Desktop — Chargebee MCP
"Pull all subscription_changed events where a customer downgraded in the last [TIME PERIOD]. For each customer, check whether a credit_note_created event followed in the same billing period. Flag any customers who downgraded but received no credit note — those are the missed prorated refunds."
Requires two queries per customer — subscription change events, then credit note events. The detection logic runs on Claude's side.
Chargebee MCP output

The connector cross-references subscription_changed events against credit_note_created events. Customers with a downgrade event and no subsequent credit note in the same billing period are the gap.

From live data: customer cst_pq4412 (Pulseboard) had invoice INV-8591 ($23,300.00) resolved with credit note CN-4955 ($23,300.00, reason: order_change) — the credit was issued. But the system also shows INV-8372 with $9,120.00 still outstanding after dunning exhausted, with a partial credit CN-4956 ($14,190.00) only partially covering the balance.

Credit notes confirmed on live site — May 2026
CustomerCredit noteAmountReasonStatus
cst_pq4412CN-4955$23,300.00Order changeAdjusted
cst_pq4412CN-4956$14,190.00Order changePartial — $9,120 still due
cst_vx8821CN-4821$436.00Overages waiverAdjusted
Ask Chargebee MCP
Claude Desktop — Chargebee MCP
"Pull all credit_note_created events from [START DATE] to [END DATE]. For each, retrieve the credit note amount and reason code. Group by reason code. Flag any above [THRESHOLD AMOUNT]. Flag any customer ID that appears more than once."
Reason code grouping and amount filtering are Claude-side. Credit note detail requires a second query per credit note ID.
Chargebee MCP output
20+
Credit notes in May alone
2 sources
Admin console & API
cst_pq4412
4 credits — same customer, same day
Customer receiving multiple credits — confirmed live
CustomerIssuedSourceNote
cst_pq4412 (Pulseboard)31 May, 22:38Admin console4th credit this session
cst_pq441231 May, 22:36Admin console
cst_pq441231 May, 22:32Admin console
cst_pq441231 May, 22:31Admin console
cst_sw993431 May, 14:20Admin console6 credits — same customer
cst_du881331 May, 13:52API
Ask Chargebee MCP
Claude Desktop — Chargebee MCP
"For customer [CUSTOMER_ID], pull their most recent invoice. Show all discounts in line_item_discounts: line item, full price, discount amount, discount %, and coupon ID. Then calculate what the total invoice would be without any discounts. What is the delta — how much would revenue increase if these coupons expired?"
Coupon filtering on subscriptions is not available. Invoice-level discount data including coupon IDs is complete.
Chargebee MCP output

Discount data is rich on invoice line items. From Pulseboard (cst_pq4412), invoice INV-8829:

Line itemFull priceDiscountDiscount %Coupon IDNet price
Enterprise Plan$25,920$7,04027.15%cpn_enterprise_27$16,250
Retention Perf. Addon$8,830$5,34460.53%cpn_addon_60$3,482
$12,384
Monthly discount on this one account
$22,400
Revenue at discounted rate
$34,750
Revenue at full price
The Analytics Addon is discounted 60.53%. If this coupon expires, the bill jumps $5,344/month. That is a churn-risk conversation Finance should be having before the renewal, not after.
Coupon and discount data is on invoices, not subscriptions. Pull the most recent invoice per customer and read line_item_discounts — you get the full picture: line item, discount amount, percentage, and coupon ID. This is confirmed from live data on Pulseboard above.
Ask Chargebee MCP
Claude Desktop — Chargebee MCP
"Pull active subscriptions. For each, check subscription_items for a trial_end date that falls in the next 60 days. Sort by subscription amount descending — highest revenue impact first. Show: customer ID, plan, trial end date, current billing amount."
Sort order is Claude-side. Works best on bounded cohorts under a few hundred.
Chargebee MCP output

Discount data lives on the subscription in a discounts array, each with a percentage, what it applies to, and a duration_type: forever, limited_period, or one_time. The duration_type is the whole game for revenue recovery.

Live example — a discounted active subscription
FieldValue
Customercst_sp1195
Plan list price$599.00 / mo
Discount29.88% off
Net price billed$420.02 / mo
Duration typeforever
Monthly revenue gap$178.98
This particular discount is forever, so it never lapses — there is no recovery moment, but it is worth knowing $179 a month is being given away permanently on this one account. The recovery opportunities are the limited_period discounts: those carry a period and unit, so you can calculate exactly when each one lapses and flag the customer for a pricing conversation before it does.
Filter the discounts array to duration_type = limited_period, calculate each one's end date from its start plus period, and surface the ones lapsing in your window. That is the list of accounts where full price is about to kick in — the moment to either hold the line or have the renewal conversation.
Ask Chargebee MCP
Claude Desktop — Chargebee MCP
"Pull all active subscriptions. For each, read billing_period_unit (how often they are billed) and check whether a contract_term object is present (whether they are committed for a fixed term). Split MRR into two buckets: revenue under an active contract_term (committed, not at near-term churn risk) versus revenue with no contract_term (genuinely month-to-month exposed). Give me the dollar total and percentage for each bucket, and for the committed bucket show the total remaining contract value. Do not treat billing frequency as commitment — use contract_term for that."
billing_period_unit and contract_term are separate fields — both returned natively by the connector.
Chargebee MCP output

Two different fields answer this, and confusing them is the classic mistake. billing_period_unit is how often you invoice. contract_term is how long the customer is committed. They are not the same, and the connector returns both.

Live example — bills monthly, committed annually
FieldValueWhat it tells you
billing_period_unitmonthInvoiced every month
contract_term12-cycle, activeLocked in for a full year
Total contract value$5,091Committed revenue, not at monthly risk
Cancellation cutoff30 daysCannot leave before term end
Cycles remaining10 of 1210 months of committed revenue left
This customer bills monthly but is not monthly churn risk. They are contractually committed for 10 more cycles. If you measured exposure by billing_period_unit alone, you would wrongly count this revenue as at-risk. The contract_term field is what separates committed revenue from genuinely exposed monthly revenue.
One caveat from the live data: on this site every subscription bills monthly, so the split is not monthly-billing versus annual-billing — it is monthly-billing-with-a-contract versus monthly-billing-month-to-month. The presence or absence of contract_term is the real stability signal, not the billing frequency.
Ask Chargebee MCP
Claude Desktop — Chargebee MCP
"Pull a broad set of recent invoices across customers. For each, keep only the line items where entity_type is addon_item_price — that isolates add-on revenue from the base plan. Sum add-on revenue per customer, rank them, and show each customer's add-on revenue and their share of the total add-on pool. Call out how concentrated it is: what share sits in the top 1 and top 5 accounts. Then overlay each top account's recent payment status so I know how stable that concentrated revenue actually is."
Concentration percentages are Claude-side calculations from returned subscription data.
Chargebee MCP output

Add-on revenue is identifiable on every invoice: line items are tagged entity_type = addon_item_price, separate from plan_item_price. Summing the add-on lines per customer and ranking them is what surfaces concentration. The live result here is striking.

1 in 50
Invoices carrying any add-on
$11,460
Top add-on account
~90%
Add-on revenue in top account
Add-on revenue by customer — ranked
CustomerAdd-onAdd-on revenueShare
cst_ox5591Seat Expansion (15 seats)$11,460~90%
cst_wf2284Dispute Automation$138 / mo~1%

Most other active customers carry no add-on at all.

In a live 50-invoice sample, only one carried any add-on revenue at all — a single enterprise seat-expansion add-on worth $11,460. That is concentration in its starkest form: lose that one account and almost all add-on revenue goes with it. The connector surfaces this because every line item is tagged by type, so the add-on slice can be isolated and ranked.
Run it across your full invoice set: keep the addon_item_price lines, sum per customer, rank, and compute each account's share of total add-on revenue. If one or two names hold most of it, that is a revenue-stability conversation for the board, and a retention priority for CS.
Customer health
Ask Chargebee MCP
Claude Desktop — Chargebee MCP
"Customer is disputing the tax on invoice [INVOICE_ID]. Pull the invoice, return the subtotal, tax amount, tax rate, tax name, and billing address that triggered the charge. Explain why the tax was applied."
Works for any invoice ID. Tax jurisdiction, rate, and registration number are all returned by the connector.
Chargebee MCP output

The connector pulls the full invoice record — subtotal, tax amount, tax rate, tax name, and the billing address that triggered the charge. From live Chargebee data:

FieldValue
InvoiceINV-8831 (Velostack)
Subtotal$35,175.00
Tax$3,480.00 (Sales Tax @ 8.25%)
Tax jurisdictionUnited States (US) — Sales Tax registration EU 528004897
Billing countryFR — tax-exclusive invoice
Total$42,180.00
The rep has everything they need to respond. The same applies to proration disputes, dunning retries, credit note queries. Your billing system already has the context your customer teams need.
Ask Chargebee MCP
Claude Desktop — Chargebee MCP
"Give me a full subscription health check for customer [CUSTOMER_ID]. I need: active plan and add-ons with prices and discounts, the last 6 invoices with amounts and status, outstanding balances, credit notes issued in the last 12 months, and a dunning history summary. Tell me what I need to know before a renewal call."
Customer lookup by company name works today. Use company[is] for exact match or company[starts_with] for prefix search. Full fuzzy/contains search is not available, but for any real CS workflow where you know the account name, this works.
Chargebee MCP output

Here is the complete picture for Pulseboard (cst_pq4412) — pulled live right now:

Enterprise
Plan
$22,400
Monthly invoice (paid)
$9,120
Outstanding — INV-8372
ItemPriceDiscount
Enterprise Plan (enterprise-plan-eur)$25,920.0027.15% off — coupon cpn_enterprise_27
Analytics Addon$8,830.0060.53% off — coupon cpn_addon_60
InvoiceAmountStatusDunning
INV-8829$22,400Paid 3 Jun2 failures first
INV-8644$22,400Paid 6 May3 failures first
INV-8591$23,300Paid (CN-4955 applied)6 failures, credit resolved
INV-8372$23,300Not paid — $9,120 due6 failures, exhausted
Every invoice this year went through 2–6 payment failures before clearing — or did not clear. One invoice from March is still partially unpaid. Do not open the renewal with a pitch. Resolve the open balance first.
Company name search works. Use company[is]="Pulseboard" for an exact match, or company[starts_with]="Pulseboard" if you only know part of the name. Email domain search is not supported, but company name lookup covers most CS workflows.
Ask Chargebee MCP
Claude Desktop — Chargebee MCP
"A support ticket from customer [CUSTOMER_ID] is asking for access to [FEATURE / ADD-ON]. Pull their active subscription and list every subscription_item with its item_price_id and item_type. Tell me whether the add-on that grants that feature is already on the subscription. Also check the customer's feature flags for an explicit entitlement. If they already have it, say so and I will close the ticket. If they do not, tell me which plan tier or add-on includes it so I can draft the upgrade reply."
Read-only lookup. The connector confirms entitlement status — it does not modify subscriptions.
Chargebee MCP output

Every active subscription returns a subscription_items array. Each item has an item_price_id and an item_type of plan or addon. Checking whether a customer is entitled to a feature is one read: is that add-on present on their subscription?

Live lookup for cst_ox5591, on the Enterprise tier (annual)
ItemTypeEntitled
Enterprise tier (annual)PlanYes
Quote Builder add-onAdd-onYes · 20 seats
Seat ExpansionAdd-onYes · 15 seats
Platform FeeAdd-onYes
Advanced ReportingAdd-onNo · not on plan
The answer is immediate and exact. The agent can also read the customer's feature flags, where an entitlement like the quote builder shows an unlimited grant. So a support rep gets a clean yes or no on the ticket without opening Chargebee, and when the answer is no, they see which tier or add-on would grant it.
Ask Chargebee MCP
Claude Desktop — Chargebee MCP
"Pull all invoices for [CUSTOMER_ID]. Sum amount_paid across all paid invoices for gross LTV. Pull credit notes and subtract for net LTV. Show: invoice history, gross LTV, net LTV, current outstanding. Flag anything overdue."
Run this before any renewal, upsell, or at-risk call.
Chargebee MCP output

Everything a rep needs before dialing, in one pull: full invoice history, what they have actually paid, and what is open right now.

$1,583
Lifetime paid (net LTV)
$3,788
Outstanding right now
8
Invoices on record
Billing history — cst_rk9903
InvoiceAmountOutcome
Nov 2025$433Paid
Dec 2025$860Paid
Jan 2026$290Paid
Feb 2026$1,418Unpaid
Mar–Jun 2026$2,370Unpaid, in dunning
Net LTV is $1,583 in money actually collected, but $3,788 is open right now and the last five invoices have all failed. Do not open with the renewal pitch. This is a billing conversation first — the relationship is worth saving, but the unpaid balance is the headline, not the upsell.
Ask Chargebee MCP
Claude Desktop — Chargebee MCP
"Pull the event history for [CUSTOMER_ID] for the last 30 days. Show: invoice_generated, payment_succeeded, payment_failed, dunning_updated, credit_note_created, subscription_changed. Summarize their current billing situation in one paragraph."
One query replaces asking your billing team what happened.
Chargebee MCP output
DateEventDetail
2 Jun, 23:03Payment failed ×4INV-8831 — $42,180
2 Jun, 23:03Payment source updatedCustomer updated card on file
2 Jun, 10:59Dunning updatedRetry scheduled for Jun 3
1 Jun, 11:31Payment initiated ×4Manual attempts from admin console
1 Jun, 03:59Invoice generatedINV-8831 — $42,180
Your billing team attempted 4 manual payments on June 1. The customer updated their card on June 2 — then 4 more failures. If you email them today without knowing this, you are the third team contacting them about the same invoice. Coordinate first.
Ask Chargebee MCP
Claude Desktop — Chargebee MCP
"Pull subscription_paused and subscription_resumed events from the last 12 months. For each customer, count complete pause/resume cycles. Flag customers with 3+ cycles. Show: customer ID, cycle count, total months paused, current status. Sort by cycle count descending."
Only returns data on Chargebee sites where the subscription pause feature is enabled.
Chargebee MCP output

Query ran correctly. This Chargebee site does not use the pause feature — zero subscription_paused events returned over 24 months. The query pattern is valid and confirmed against the event schema.

Growth & product
Ask Chargebee MCP
Claude Desktop — Chargebee MCP
"For each of our two new plans, filter active subscriptions by item_id = the plan code and status = active, then count them and sum their MRR. For the launch window, add created_at between the two dates to see how adoption ramped. For churn, run the same plan filter with status = cancelled and cancelled_at inside the window, then divide by the starting base. Give me, per plan: active customer count, total MRR, number cancelled, and churn rate. Flag any plan where MRR is low relative to its customer count, since that points to trials or heavy discounting."
Chargebee MCP output

This works directly. Subscriptions filter by plan (item_id), by status, and by creation date (created_at), and each row returns its MRR. So per-plan customer counts, revenue, and churn all come straight from the connector.

Two plans, 90 days in — live filtered query
PlanActive customersMRRCancelled in windowChurn rate
Scale tier34$20,36638.1%
Growth tier61$3,654912.9%
Each number is one filtered query. Active count and MRR: filter item_id = the plan and status = active, then sum mrr. Churn: same plan filter with status = cancelled and cancelled_at inside the window, over the starting base. Adoption curve: add created_at between dates. No export, no manual tagging.
Ask Chargebee MCP
Claude Desktop — Chargebee MCP
"Pull subscriptions created in April using created_at between the month start and end — that is the trial cohort. Split them by current status: status = active means converted (confirm with activated_at on or after trial_end), status = cancelled means dropped off, status = in_trial means still deciding. Give me the cohort size, count converted, count dropped, and the conversion rate. List the dropped-off customer IDs for win-back and the still-in-trial IDs for sales to chase before their trial_end."
Chargebee MCP output

The whole funnel is native now. Bound the cohort with created_at for the month, then split by status: still in_trial, converted to active, or cancelled. Each converted subscription carries an activated_at that lines up with its trial_end, so you can see the conversion moment directly.

88
Trials started in April
31
Converted to paid
52
Dropped off
35%
Conversion rate
How each trial is classified
Current statusSignalMeans
activeactivated_at on or after trial_endConverted to paid
cancelledcancelled_at in window, never activatedDropped off
in_trialtrial_end still in the futureStill deciding
No event-log workaround needed. created_at bounds the cohort, status splits the outcome, and activated_at versus trial_end confirms a real conversion rather than a guess. The dropped-off list is your win-back target; the still-in-trial list is who sales should call before the clock runs out.
Ask Chargebee MCP
Claude Desktop — Chargebee MCP
"Pull active subscriptions and read each one's subscription_items. Group by the line where item_type = plan (the base plan). Within each plan group, count how many subscriptions also have at least one line where item_type = addon. Show, per plan: subscriber count, count carrying an add-on, and the attach rate as a percentage. Sort by attach rate descending. Flag the plans with the highest attach as upsell vehicles and the near-zero ones as dead ends — but note how many add-ons exist for each segment so a low rate is not mistaken for a missed opportunity when there is simply nothing to attach."
Chargebee MCP output

Each subscription returns its components two ways: a subscription_items array where every line is tagged item_type as plan, addon, or charge, and a dedicated addons array. So for any plan you can count how many of its subscriptions also carry an add-on. That ratio is the attach rate.

Add-on attach rate by plan — live pattern
PlanSubscribersWith an add-onAttach rate
Enterprise tier181478%
Scale tier40615%
Growth tier11222%
Starter tier300+00%
The Enterprise tier is the upsell engine: most of its subscriptions carry add-ons like seat expansion or a platform fee, often several at once. The self-serve tiers are dead ends — add-ons almost never attach there. That tells product where packaging works and where an add-on is invisible to the buyer.
One caveat: a low attach rate is not automatically a missed opportunity. Check how many add-ons even exist for each segment — if there is nothing to attach at the self-serve tiers, a near-zero rate is the packaging working as designed, not unrealized upsell.
Ask Chargebee MCP
Claude Desktop — Chargebee MCP
"Pull subscription_changed events from the last 90 days. Group by source: ADMIN_CONSOLE vs SCHEDULED_JOB vs API. Flag any customer with 3+ changes — unusual and worth investigating. Show count per source and list events with customer ID and timestamp."
Source field on each event tells you exactly what caused the change.
Chargebee MCP output

Every subscription_changed event carries a source field, so you can see not just how many plan changes happened but what drove each one: an ops person in the admin console, the customer themselves through self-serve checkout, or an API call from your own systems.

300+
Changes in 90 days
Admin console
Most common source
Self-serve
Second source (hosted checkout)
What drove the changes
SourceMeansShare
admin_consoleOps or CS made the change manuallyMajority
hosted_pageCustomer changed plan themselves at checkoutMinority
apiDriven by your own integrationOccasional
The source split is the insight. A base where most changes are admin_console is ops-driven: every upgrade needs a human, which does not scale. A rising hosted_page share means customers are self-upgrading. Watching that ratio move over time tells you whether your expansion motion is becoming self-serve or staying manual.
Repeat-changers fall out of the same pull. One account in the live data logged five changes within minutes, another changed via self-serve and then had an ops touch soon after. Three or more changes in a short window is worth a look: it is usually a misconfiguration being corrected, or a customer who cannot find the plan they want.

Chargebee MCP recipes: 26 prompts your team can run today

Each recipe below is a natural-language prompt you can paste into Claude, Cursor, ChatGPT, Codex, Claude Code, or Notion AI with the Chargebee MCP server connected. Grouped by pain area, with the team that usually asks and the question in plain language.

Cash & collections

Unpaid invoice lookup

Usually asked by a CS rep mid-conversation.

How much does this customer still owe us? Do they have any open invoices?

Payment failure triage by type

Usually asked by whoever owns Collections.

Show me all payment failures in the last 60 days. Group by failure type and flag repeat offenders.

Dunning recovery intelligence

Usually asked by the team working dunning.

Which accounts are currently in dunning? Which are most likely to recover vs. likely lost?

Invoice-to-cash cycle analysis

Usually asked by Finance watching cash flow.

How long does this customer take to pay each invoice?

Grace period expiry monitoring

Usually asked by whoever is saving failed payments.

Which customers have a failed payment but are still technically active, so I can intervene before they auto-cancel?

Churn & retention

Churn attack list: non-renewing subscriptions

Usually asked by a RevOps lead building a save list.

Pull all subscriptions marked non-renewing in the last 30 days. Rank them by ARR at risk.

Involuntary vs. voluntary churn separation

Usually asked by a CFO digging into churn.

How much of our churn was preventable, triggered by payment failure, vs. customers who chose to leave?

Contract renewal risk report

Usually asked by RevOps before QBRs.

Which enterprise customers renewing in the next 90 days have billing problems?

Failed payment to churn correlation

Usually asked by a CFO testing a hunch.

Do 2+ payment failures predict churn? Show me the chain.

Reactivation campaign intelligence

Usually asked by Sales planning win-backs.

Which churned customers in the last 6 months had the highest LTV?

Revenue & pricing

Credit note detection: missed prorated refunds

Usually asked by Finance chasing missed credits.

Which annual-plan customers downgraded mid-cycle but never received a prorated credit note?

Credit note audit by reason, period, and amount

Usually asked by Finance closing the books.

Show me all credit notes issued in Q1 and Q2. Group by reason. Flag anything above $5,000 and flag customers who received more than one.

Coupon and discount dependency health check

Usually asked by Finance sizing discount exposure.

Which customers are on heavy discounts? What does revenue look like if those coupons expire?

Discount expiry revenue recovery

Usually asked by CS spotting upsell moments.

Which customers' promotional pricing ends in the next 60 days?

Annual vs. monthly revenue stability

Usually asked by a CFO sizing risk.

What percentage of our MRR is in annual contracts vs. exposed to monthly churn?

Add-on revenue concentration risk

Usually asked by Finance prepping the board.

Is our add-on revenue dangerously concentrated in a small number of customers?

Customer health

Invoice dispute resolution

Usually asked by a Support rep on a ticket.

A customer is disputing the tax on their invoice. Can you pull the details so I can respond?

Full subscription health check before a renewal call

Usually asked by a CS rep prepping a renewal.

Give me the full picture on Pulseboard: plan, add-ons, last payment, any failures, credits outstanding.

Entitlement lookup for support tickets

Usually asked by Support on a feature access request.

A support ticket is asking for access to a feature. Is the customer already entitled to it on their subscription?

Customer lifetime value before a renewal call

Usually asked by a CS rep before a call.

I'm about to call this customer. What is their full billing history and net LTV?

Customer communication trigger mapping

Usually asked by a CS rep before emailing.

Before I email this customer, what has already happened on their account this week?

Subscription pause abuse detection

Usually asked by CS watching for abuse.

Which customers keep pausing during low-usage months to effectively get free time?

Growth & product

Plan performance reporting

Usually asked by Finance and Product reviewing a launch.

We launched two new plans 90 days ago. How many customers are on each? What's the revenue and churn rate per plan?

Trial-to-paid conversion tracking

Usually asked by a Growth PM watching trials.

Show me all trials that started in April. How many converted? How many dropped off?

Add-on attach rate by plan

Usually asked by Product and RevOps.

Which plans are natural upsell vehicles? Which are dead ends for add-on revenue?

Plan migration momentum

Usually asked by a Product manager.

How many subscription changes happened in the last 90 days and what drove them?

Artifacts built on the Chargebee MCP server

The Nine-Quarter ARR Cube

Revenue Analytics. One prompt. One table. Every customer’s ARR over time.

Churn Risk, Fitted to You

Customer Health. A health score learned from your own churn, not a generic rule.

Unpaid Invoices, Risk-Ranked

Collections Intelligence. One question. A collections call list ordered by risk, not size.

CFO Intelligence Dashboard

Finance Intelligence. One question. A complete board packet (ARR, NRR, churn, and cohorts) pulled from live data.

Beyond data lookup

Onboard, look up, and answer, across Chargebee.

Data Lookup Agent

Reads every object in your Chargebee account live (subscriptions, invoices, payments, usage, and events) in response to a plain-English question.

Knowledge Base Agent

Answer from your docs, API specs, and how-tos, grounded in Chargebee's own product knowledge.

Onboarding Agent

Stand up the product catalog and billing setup conversationally, guided, not manual.

Chargebee Copilot

Lives inside your Chargebee dashboard. Ask billing questions, surface churn signals, and run revenue lookups without opening another tool.

Chargebee MCP · Setup

Get started with Chargebee MCP.

1
Enable in Chargebee

Log in to Chargebee Billing. Go to Settings → Agentic AI → MCP Servers. Select the server you need and open its configuration page.

2
Copy your server URL

Under Access & Authentication → MCP Access, find your server URL. The format depends on your data center:

US https://YOUR-CHARGEBEE-SUBDOMAIN.mcp.chargebee.com/data_lookup_agent
EU https://YOUR-CHARGEBEE-SUBDOMAIN.mcp.eu.chargebee.com/data_lookup_agent
AU https://YOUR-CHARGEBEE-SUBDOMAIN.mcp.au.chargebee.com/data_lookup_agent

Replace data_lookup_agent with knowledge_base_agent or onboarding_agent depending on which server you connect.

3
Choose authentication

For the Data Access and Onboarding servers, choose how your AI client authenticates:

API KeyFull access to all enabled tools. Use for server-to-server integrations, internal automations, and trusted developer environments.
OAuthAccess limited by the signed-in user's Chargebee role. Use for user-facing AI clients and shared team tools.

The Knowledge Base server needs no authentication. It accesses public information only.

4
Add to your AI client

Use the configuration snippets from your server's Access & Authentication tab. Examples:

Claude Code
claude mcp add --transport http "data_lookup_agent" \
"https://YOUR-CHARGEBEE-SUBDOMAIN.mcp.chargebee.com/data_lookup_agent"
Claude Desktop / Cursor
{ "mcpServers": { "data_lookup_agent": {
"url": "https://YOUR-CHARGEBEE-SUBDOMAIN.mcp.chargebee.com/data_lookup_agent"
} } }

For API Key auth, add your key to the env block or Authorization header as shown in the Chargebee dashboard.

The AI-native companies billing on Chargebee
Ready to connect?

Put your billing data one prompt away.

Connect the Chargebee MCP server to Claude, Cursor, ChatGPT, or Codex, and run your revenue operations.

200K+
Usage events ingested
per second
6,500+
Businesses billing on Chargebee
4
AI agents & Copilot,
built in
#1
Furthest for Completeness of Vision, 2025 Gartner® MQ™