Back to Browse

Sdk MCP Server

Developer ToolsLow Risk9.3MCP RegistryRemote
Free

Server data from the Official MCP Registry

Read and manage Churnkey cancel flows, retention metrics, and payment recovery

About

Read and manage Churnkey cancel flows, retention metrics, and payment recovery

Remote endpoints: streamable-http: https://mcp.churnkey.co/mcp

Security Report

9.3
Low Risk9.3Low Risk

Valid MCP server (2 strong, 2 medium validity signals). 2 known CVEs in dependencies Imported from the Official MCP Registry.

Endpoint verified · Requires authentication · 3 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

HTTP Network Access

Connects to external APIs or services over the internet.

How to Connect

Remote Plugin

No local installation needed. Your AI client connects to the remote endpoint directly.

Add this to your MCP configuration to connect:

{
  "mcpServers": {
    "co-churnkey-churnkey": {
      "url": "https://mcp.churnkey.co/mcp"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

Churnkey SDK

A production-ready cancel flow for React. Open source. Optionally connects to Churnkey for analytics and AI-powered retention.

Packages

PackageDescription
@churnkey/reactThe cancel flow. Drop-in component, headless hook, or core state machine. React 18 and 19.
@churnkey/nodeServer-side token generation. Only needed if Churnkey is handling billing actions for you, or if you're using the hosted embed.
@churnkey/mcpModel Context Protocol server. Lets Claude, Cursor, and other AI agents query your Churnkey data (sessions, analytics, DSR) using a Data API key.

Quick start

npm install @churnkey/react
import { CancelFlow } from '@churnkey/react'
import '@churnkey/react/styles.css'

<CancelFlow
  steps={[
    {
      type: 'survey',
      title: 'Why are you leaving?',
      reasons: [
        {
          id: 'expensive',
          label: 'Too expensive',
          offer: { type: 'discount', couponId: 'STRIPE_SAVE20', percentOff: 20, durationInMonths: 3 },
        },
        { id: 'not-using', label: 'Not using it enough', offer: { type: 'pause', months: 2 } },
        { id: 'missing', label: 'Missing features' },
      ],
    },
    { type: 'feedback', title: 'Anything else?' },
    { type: 'confirm' },
  ]}
  handleDiscount={async (offer) => myBilling.applyCoupon(offer.couponId)}
  handlePause={async (offer) => myBilling.pause({ months: offer.months })}
  handleCancel={async () => myBilling.cancel()}
  onClose={() => setOpen(false)}
/>

Documentation and resources

Repo layout

sdk/
├── packages/
│   ├── react/      @churnkey/react
│   ├── node/       @churnkey/node
│   └── mcp/        @churnkey/mcp
├── apps/
│   └── playground/ internal dev playground
└── scripts/        release + tooling helpers

Local development

pnpm install
pnpm --filter @churnkey/react build
pnpm --filter @churnkey/react test

To work against the playground:

pnpm --filter @churnkey/react dev    # rebuilds on change
pnpm --filter @churnkey/playground dev   # runs the playground app

License

MIT

Reviews

No reviews yet

Be the first to review this server!