About ChurnLens
ChurnLens is an MCP server for acquirers, private-equity firms, and M&A analysts screening SaaS businesses. It calculates retention, revenue concentration, dormant MRR, LTV:CAC, and health scores from supplied figures, returning structured results.
Key features
- 01Calculate NRR, GRR, and churn
- 02Analyze revenue concentration risk
- 03Detect dormant MRR and ARR at risk
- 04Score SaaS health across five dimensions
- 05Calculate LTV:CAC and CAC payback
- 06Return scoring thresholds with sources
Use cases
- 01Screen a SaaS business during acquisition diligence
- 02Check whether expansion masks customer churn
- 03Assess exposure to dormant recurring revenue
- 04Compare supplied metrics with scoring thresholds
MCP support
Exposes financial calculation and scoring tools to MCP clients over streamable HTTP. Results include structuredContent with typed values.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://churnlens.site/api/mcpclaude mcp add --transport http kindrat86-churnlens https://churnlens.site/api/mcp{"mcpServers":{"kindrat86-churnlens":{"type":"http","url":"https://churnlens.site/api/mcp"}}}Open in Cursor{"servers":{"kindrat86-churnlens":{"type":"http","url":"https://churnlens.site/api/mcp"}}}Open in VS Code{"mcpServers":{"kindrat86-churnlens":{"type":"http","url":"https://churnlens.site/api/mcp"}}}{"mcpServers":{"kindrat86-churnlens":{"serverUrl":"https://churnlens.site/api/mcp"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
Tools
6| Parameter | Type | Required | Description |
|---|---|---|---|
| churned_mrr | number | No | MRR lost to full cancellations. |
| starting_mrr | number | Yes | MRR at the start of the period, in any single currency unit. |
| expansion_mrr | number | No | MRR gained from upgrades and expansion within the existing base. Excludes new customers. |
| contraction_mrr | number | No | MRR lost to downgrades (customer retained). |
Details
From the project READMEChurnLens MCP server
Buyer-side SaaS due-diligence maths for AI agents. Net and gross revenue retention, revenue concentration risk, dormant ("zombie") MRR, LTV:CAC and a composite health score — computed from figures you supply.
Live endpoint: https://churnlens.site/api/mcp — streamable HTTP, MCP
protocol 2024-11-05. No authentication, no account, no rate limit, and
nothing you send is stored.
Install
Claude Desktop, Claude Code, or any client that speaks stdio:
npx mcp-remote https://churnlens.site/api/mcp
By config:
{
"mcpServers": {
"churnlens": {
"command": "npx",
"args": ["mcp-remote", "https://churnlens.site/api/mcp"]
}
}
}
A GET on the endpoint returns the manifest. The machine-readable descriptor
is at /.well-known/mcp.json.
Tools
| Tool | What it returns |
|---|---|
calculate_churn_rate | NRR, GRR, revenue churn, correctly compounded annualised churn, and the NRR−GRR spread that exposes churn masked by expansion |
analyze_revenue_concentration | Herfindahl-Hirschman Index, top-N revenue share, and which customers are large enough that losing one is a balance-sheet event |
detect_zombie_mrr | Accounts still paying but dormant past a threshold, and the ARR at risk behind them |
score_saas_health | Composite 0–100 across retention, growth, concentration, efficiency and durability, plus the weakest dimension |
calculate_ltv | Gross-margin-adjusted lifetime value, LTV:CAC and CAC payback in months |
get_scoring_bands | Every threshold the tools apply, with its provenance |
Every tool returns structuredContent alongside the text block, so an agent
gets typed numbers rather than prose it has to parse back out.
Example
calculate_churn_rate({
starting_mrr: 100000,
expansion_mrr: 37000,
contraction_mrr: 5000,
churned_mrr: 17000
})
// nrr_pct: 115, grr_pct: 78, expansion_masking_spread_pts: 37
// "A wide NRR-GRR spread: expansion revenue is masking substantial
// churn underneath. Diligence should look at the retained base
// separately from upsell."
A business reporting 115% net revenue retention sounds excellent. The same business at 78% gross revenue retention is losing nearly a quarter of its revenue base a year and covering the hole with upsell. Most dashboards show the first number and not the second.
On the scoring bands
get_scoring_bands returns thresholds, not measured data. They are
informed by published industry benchmarks — SaaS Capital, Benchmarkit, Recurly
and FE International — cited with sources at
churnlens.site/benchmarks. Segment matters
enormously: median retention for enterprise infrastructure and for SMB
self-serve are not the same number. Do not present a band as though it were a
survey result.
What it does not do
These tools compute from summary figures you supply. They cannot see what only emerges from customer-level data — cohort decay curves, renewal-cliff timing, concentration in specific logos. Treat them as a first-pass screen.
Verify the maths yourself
The same calculations are open source under MIT at kindrat86/saas-metrics — zero dependencies, every scoring band documented, 27 tests. A result from this server can be reproduced independently.
Interactive versions for humans, no signup: churnlens.site/free.
About
ChurnLens is a buyer-side SaaS due-diligence tool for acquirers, private-equity firms and M&A analysts.
Unaffiliated with the similarly named churnlens.io (retention automation) or churnlens.tech (churn prediction).
MIT licensed. Free.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.