Servidor MCP

ChurnLens

io.github.kindrat86/churnlens
Negocio y operaciones Finanzas e inversión Público y accesible MCP 2026-07-28

Qué hace este MCP

Calculates SaaS retention, churn, LTV, CAC payback, revenue concentration, zombie MRR, and an overall business-health score.

analyze_revenue_concentration
Assess customer concentration risk across a book of revenue using the Herfindahl-Hirschman Index (HHI), top-N share and whale detection. Answers the question every acquirer asks first: how much revenue walks out with one logo?
Esquema de entrada
{'type': 'object', 'required': ['customer_mrrs'], 'properties': {'top_n': {'type': 'number', 'description': 'How many top customers to aggregate for the top-N share. Default 5.'}, 'customer_mrrs': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Per-customer MRR values. Order does not matter.'}, 'whale_threshold_pct': {'type': 'number', 'description': 'Revenue share above which a customer counts as a whale. Default 25.'}}}
calculate_churn_rate
Calculate net revenue retention (NRR), gross revenue retention (GRR), revenue churn and implied customer lifetime from one period's MRR movements. Also reports the NRR-minus-GRR spread, which reveals how much churn is being masked by expansion revenue.
Esquema de entrada
{'type': 'object', 'required': ['starting_mrr'], 'properties': {'churned_mrr': {'type': 'number', 'description': 'MRR lost to full cancellations.'}, 'starting_mrr': {'type': 'number', 'description': 'MRR at the start of the period, in any single currency unit.'}, 'expansion_mrr': {'type': 'number', 'description': 'MRR gained from upgrades and expansion within the existing base. Excludes new customers.'}, 'contraction_mrr': {'type': 'number', 'description': 'MRR lost to downgrades (customer retained).'}}}
calculate_ltv
Calculate gross-margin-adjusted customer lifetime value, the LTV:CAC ratio and CAC payback in months. Omitting gross margin yields lifetime revenue rather than lifetime value — usually a third of the number.
Esquema de entrada
{'type': 'object', 'required': ['arpa', 'monthly_churn_rate_pct'], 'properties': {'cac': {'type': 'number', 'description': 'Customer acquisition cost. Optional — supply it to get the ratio and payback.'}, 'arpa': {'type': 'number', 'description': 'Average revenue per account, per month.'}, 'gross_margin_pct': {'type': 'number', 'description': 'Gross margin percentage. Defaults to 100, which gives lifetime revenue.'}, 'monthly_churn_rate_pct': {'type': 'number', 'description': 'Monthly churn, as a percentage.'}}}
detect_zombie_mrr
Identify dormant-but-paying accounts — revenue that still counts in MRR but whose customers have stopped showing up. Zombie revenue is one renewal notice from cancelling and is invisible to standard revenue dashboards.
Esquema de entrada
{'type': 'object', 'required': ['accounts'], 'properties': {'accounts': {'type': 'array', 'items': {'type': 'object', 'required': ['mrr', 'days_since_last_activity'], 'properties': {'mrr': {'type': 'number'}, 'customer': {'type': 'string'}, 'days_since_last_activity': {'type': 'number'}}}, 'description': 'One entry per paying account.'}, 'threshold_days': {'type': 'number', 'description': 'Days of inactivity before an account counts as dormant. Default 90.'}}}
get_scoring_bands
Return the scoring thresholds ChurnLens applies to NRR, revenue concentration and the composite health score. These are bands, not measured benchmark data — the sourced benchmark figures are cited at https://churnlens.site/benchmarks.
Esquema de entrada
{'type': 'object', 'properties': {'metric': {'enum': ['nrr', 'concentration', 'health'], 'type': 'string', 'description': "Which band set to return: 'nrr', 'concentration', 'health', or omit for all."}}}
score_saas_health
Score a SaaS business 0-100 across five dimensions — retention, growth, concentration, efficiency and durability — and return the composite. Every mapping is published, so the score can be reconstructed by hand.
Esquema de entrada
{'type': 'object', 'required': ['monthly_churn_rate_pct', 'nrr_pct', 'top_customer_share_pct', 'ltv_to_cac_ratio', 'annual_plan_share_pct'], 'properties': {'nrr_pct': {'type': 'number', 'description': 'Net revenue retention, as a percentage.'}, 'ltv_to_cac_ratio': {'type': 'number', 'description': 'Lifetime value divided by customer acquisition cost.'}, 'annual_plan_share_pct': {'type': 'number', 'description': 'Share of revenue on annual contracts, as a percentage.'}, 'monthly_churn_rate_pct': {'type': 'number', 'description': 'Monthly revenue churn, as a percentage (5 means 5%).'}, 'top_customer_share_pct': {'type': 'number', 'description': "Largest single customer's share of revenue, as a percentage."}}}
Añadido
get_scoring_bands
17 de September de 2026 a las 12:42
Añadido
calculate_ltv
17 de September de 2026 a las 12:42
Añadido
score_saas_health
17 de September de 2026 a las 12:42
Añadido
detect_zombie_mrr
17 de September de 2026 a las 12:42
Añadido
analyze_revenue_concentration
17 de September de 2026 a las 12:42
Añadido
calculate_churn_rate
17 de September de 2026 a las 12:42