ChurnLens

Buyer-side SaaS due-diligence maths: NRR, GRR, revenue concentration, zombie MRR, LTV:CAC.

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
100%
Integridad del esquema
98%
Calidad de los nombres
93%
Riesgo de envenenamiento
80%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Hallazgos (2)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool description contains URL to non-standard domainen get_scoring_bands

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~992Tokens (definiciones de herramientas)
~1.3 KBTamaño de respuesta típico
Impacto moderado en la atención (0.78% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "churnlens": {
      "url": "https://churnlens.site/api/mcp"
    }
  }
}

Puntos de conexión remotos

https://churnlens.site/api/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (6)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢calculate_churn_rate(starting_mrr, expansion_mrr, contraction_mrr, churned_mrr)

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",
  "properties": {
    "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)."
    },
    "churned_mrr": {
      "type": "number",
      "description": "MRR lost to full cancellations."
    }
  },
  "required": [
    "starting_mrr"
  ]
}
🟢analyze_revenue_concentration(customer_mrrs, top_n, whale_threshold_pct)

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",
  "properties": {
    "customer_mrrs": {
      "type": "array",
      "items": {
        "type": "number"
      },
      "description": "Per-customer MRR values. Order does not matter."
    },
    "top_n": {
      "type": "number",
      "description": "How many top customers to aggregate for the top-N share. Default 5."
    },
    "whale_threshold_pct": {
      "type": "number",
      "description": "Revenue share above which a customer counts as a whale. Default 25."
    }
  },
  "required": [
    "customer_mrrs"
  ]
}
⚪detect_zombie_mrr(accounts, threshold_days)

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",
  "properties": {
    "accounts": {
      "type": "array",
      "description": "One entry per paying account.",
      "items": {
        "type": "object",
        "properties": {
          "customer": {
            "type": "string"
          },
          "mrr": {
            "type": "number"
          },
          "days_since_last_activity": {
            "type": "number"
          }
        },
        "required": [
          "mrr",
          "days_since_last_activity"
        ]
      }
    },
    "threshold_days": {
      "type": "number",
      "description": "Days of inactivity before an account counts as dormant. Default 90."
    }
  },
  "required": [
    "accounts"
  ]
}
⚪score_saas_health(monthly_churn_rate_pct, nrr_pct, top_customer_share_pct, ltv_to_cac_ratio, annual_plan_share_pct)

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",
  "properties": {
    "monthly_churn_rate_pct": {
      "type": "number",
      "description": "Monthly revenue churn, as a percentage (5 means 5%)."
    },
    "nrr_pct": {
      "type": "number",
      "description": "Net revenue retention, as a percentage."
    },
    "top_customer_share_pct": {
      "type": "number",
      "description": "Largest single customer's share of revenue, 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."
    }
  },
  "required": [
    "monthly_churn_rate_pct",
    "nrr_pct",
    "top_customer_share_pct",
    "ltv_to_cac_ratio",
    "annual_plan_share_pct"
  ]
}
🟢calculate_ltv(arpa, monthly_churn_rate_pct, gross_margin_pct, cac)

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",
  "properties": {
    "arpa": {
      "type": "number",
      "description": "Average revenue per account, per month."
    },
    "monthly_churn_rate_pct": {
      "type": "number",
      "description": "Monthly churn, as a percentage."
    },
    "gross_margin_pct": {
      "type": "number",
      "description": "Gross margin percentage. Defaults to 100, which gives lifetime revenue."
    },
    "cac": {
      "type": "number",
      "description": "Customer acquisition cost. Optional — supply it to get the ratio and payback."
    }
  },
  "required": [
    "arpa",
    "monthly_churn_rate_pct"
  ]
}
🟢get_scoring_bands(metric)

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": {
      "type": "string",
      "description": "Which band set to return: 'nrr', 'concentration', 'health', or omit for all.",
      "enum": [
        "nrr",
        "concentration",
        "health"
      ]
    }
  }
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada6 herramientas
verificadoversión no registrada6 herramientas
verificadoversión no registrada6 herramientas