ChurnLens MCP
A buyer-side SaaS due-diligence MCP server that computes NRR, GRR, revenue concentration, zombie MRR, LTV:CAC, and a composite health score from supplied figures. It provides structured data for AI agents to assess revenue quality and churn risk before acquisitions, with no authentication or data retention.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://churnlens.site/api/mcpWhat its tools do
6 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Warning Advertises resources/templates/list but does not implement it
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Calculate Net and Gross Revenue Retention (NRR/GRR)
- Analyze revenue concentration using HHI
- Detect dormant or zombie MRR accounts
- Score overall SaaS health composite
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- churnlens-mcp 2.0.0
- MCP protocol negotiated in check
- 2024-11-05
- Tools
- 6 advertised
- Resources
- 0 advertised
- Resource templates
- Not advertised
- Prompts
- 0 advertised
{
"tools": {
"listChanged": false
},
"prompts": {},
"resources": {}
}Tools
6 advertised
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.
{
"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)."
}
}
}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?
{
"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."
}
}
}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.
{
"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."
}
}
}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.
{
"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."
}
}
}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.
{
"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."
}
}
}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.
{
"type": "object",
"properties": {
"metric": {
"enum": [
"nrr",
"concentration",
"health"
],
"type": "string",
"description": "Which band set to return: 'nrr', 'concentration', 'health', or omit for all."
}
}
}Prompts
0 advertised
Resources
0 advertised
90-day uptime
A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.
- 2026-11-06: 1 of 1 checks answered
- 2026-11-07: 1 of 1 checks answered
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 1412 ms
- 95th percentile latency
- 1412 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 1412 ms · metadata changed · 6 tool(s), 0 resource(s), 0 prompt(s); warnings: Advertises resources/templates/list but does not implement it
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http churnlens-mcp https://churnlens.site/api/mcpCodex
codex mcp add churnlens-mcp --url https://churnlens.site/api/mcpCursor
{
"mcpServers": {
"churnlens-mcp": {
"url": "https://churnlens.site/api/mcp"
}
}
}Cline
{
"mcpServers": {
"churnlens-mcp": {
"type": "streamableHttp",
"url": "https://churnlens.site/api/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"churnlens-mcp": {
"type": "http",
"url": "https://churnlens.site/api/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http churnlens-mcp https://churnlens.site/api/mcpClaude Desktop
https://churnlens.site/api/mcpWindsurf
{
"mcpServers": {
"churnlens-mcp": {
"serverUrl": "https://churnlens.site/api/mcp"
}
}
}Let your agent find its tools
Find servers like ChurnLens MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.