Churnkey

co.churnkey由 churnkey.co 發布官方發布者v2.4.1更新於 Nov 3, 2026

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

已驗證Streamable HTTP可網頁執行資料與分析商業與電商

概覽

AI 產生的概覽

Churnkey 託管的 MCP 伺服器,讓 AI 助理讀取與管理取消流程、留存指標及付款挽回資料。

可以做什麼
  • 查詢 Churnkey 資料,例如取消工作階段、分析指標與資料主體請求
  • 讀取與管理取消流程及留存指標
  • 處理帳戶中的付款挽回相關資訊
  • 供 Claude、Cursor 等支援 MCP 的代理連接使用
適用情境
適合已使用 Churnkey 管理訂閱取消流程、希望助理直接查詢留存數據、工作階段或挽回情況,或調整取消流程而不必開啟後台的情境。
執行需求
遠端 streamable HTTP 端點 mcp.churnkey.co,需以 OAuth 登入 Churnkey 帳戶。README 另提到 npm 套件版本使用 Data API key;清單未宣告環境變數或請求標頭。
安裝前請注意
此伺服器可管理取消流程與付款挽回,助理操作可能變更線上留存設定或與帳務相關的設定。存取權限綁定 Churnkey 帳戶的 OAuth 授權,授權前請確認該帳戶的權限範圍。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Churnkey,將其新增到工作區。
  2. 連接 所需的 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
  3. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/co.churnkey%2Fchurnkey/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。 客戶端會在首次連接時完成 OAuth 登入。

{
  "mcpServers": {
    "churnkey": {
      "type": "http",
      "url": "https://mcp.churnkey.co/mcp"
    }
  }
}

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

bash
npm install @churnkey/react
tsx
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.result?.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

bash
pnpm installpnpm --filter @churnkey/react buildpnpm --filter @churnkey/react test

To work against the playground:

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

Releasing

A merge to main that raises a package's package.json version publishes it. In the PR:

  1. Bump version in the package's package.json.
  2. Move the Unreleased entries in its CHANGELOG.md under a ## <version> - <date> heading. That section becomes the GitHub release notes.
  3. Move the copies of the version kept in code: server.json and src/server.ts for @churnkey/mcp, src/index.ts for @churnkey/node. The release plan refuses to run while they disagree with package.json.

On merge, the Release workflow checks out the commit that set the version (the merge or squash commit on main; rebase merging is off for this reason), runs the CI gate, publishes that build to npm with provenance, tags it <name>@<version> and creates the GitHub release. For @churnkey/mcp it then runs the registry publish. A merge that does not change a version publishes nothing. Prereleases and versions below the current latest are left alone; publish those by hand with --tag.

A release that stops partway is finished by running the Release workflow again from main: the plan picks up any package whose npm version, tag or release is missing and skips the parts that already landed. Manual runs from other branches do nothing.

Publishing authenticates with npm trusted publishing, so there is no npm token in this repo. Each package lists this repo's release.yml with the release environment as its trusted publisher in its settings on npmjs.com. That environment only deploys from main.

License

MIT

來源:README.md,提交 5f3a785

工具

0
該伺服器需要登入,因此 SourceWeft 無法在沒有帳號的情況下讀取其工具,也未收錄。已連接帳號所能看到的內容可能因帳號及其權限而異。

版本歷史

3
  1. v2.4.1最新Nov 3, 2026
  2. v2.4.0Oct 29, 2026
  3. v2.3.0Sep 16, 2026

評分

已滿足適用檢查項的 85%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分