mcpField
B
billing-setup

billing-setup

github.com/credyt其他52370 次安装24 周前更新
代码仓库

关于 billing-setup

引导用户梳理计费需求,通过 MCP 工具在 Credyt 中配置产品及相关计费数据,并验证计费流程。所有数据变更前都需确认;此技能用于设置或调整计费,不负责编写应用集成代码。

主要功能

  1. 01梳理计费模式
  2. 02配置 Credyt 资产与产品
  3. 03设置自定义货币和权益额度
  4. 04模拟用量并验证计费
  5. 05数据变更前请求确认

适用场景

  1. 01设置按量计费产品
  2. 02配置订阅积分和额度
  3. 03保留历史记录并调整产品定价
  4. 04将供应商成本与收入一并追踪

MCP 相关

通过 Credyt MCP 工具查看资产和产品、创建或更新计费配置、模拟用量并验证计费。创建或修改数据前会请求明确确认。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/credyt/ai-tools --skill billing-setup

安装后在 Claude Code 中输入/billing-setup确认已加载。

详细介绍

Credyt 设置

引导用户了解其计费模式,然后通过 MCP 工具在 Credyt 中完成所有配置,最后自动端到端验证完整计费周期。此技能可多次运行——用于添加新产品、更改定价或设置其他资产。

首先:检查现有内容

在开始了解需求之前,先调用 credyt:list_assets 和 credyt:list_products 检查当前状态。

如果他们已经配置了产品,请确认现有内容:

“我看到你已经设置了 [X]。你是想添加新内容、更改现有定价,还是从头开始?”

如果他们想从头开始,不要归档或删除现有产品。保留现状。用户随时可以通过对话管理现有产品(例如“归档 Pro 产品”“删除这个产品”)——绝不要自动执行这些操作。

如果这是他们首次设置,请开始完整的需求了解流程。

需求了解:了解他们的业务

每次只问一个问题。听完每个回答后再问下一个。根据他们的回答调整后续问题。这是一场对话,不是表格。

你的应用是做什么的?

“介绍一下你的应用——它能做什么?用户主要会用它来做什么?”

后续问题都要结合他们的具体应用和活动提出。

哪些事情会让你产生费用?

“这些活动中,哪些会产生提供服务的费用?例如,如果你调用 AI 模型,每次调用都会产生费用。哪些部分成本较高?”

这有助于确定可计费事件——也就是他们要跟踪并最终收费的活动。

你想如何收费?

帮助他们在三种方式中做出选择。用他们自己的应用举例说明每种方式,而不是使用抽象的概念:

  • 按用量付费(预付钱包):用户充值,每次活动都会从余额中扣款。余额用完后,用户需要充值,否则服务会暂停。OpenAI 和 Replicate 就采用这种方式。

  • 月度订阅:无论用量多少,都按月收取固定费用。这是经典的 SaaS 模式,例如 Netflix。如果他们还在摸索定价,或者希望收入可预测,这种方式很合适。

  • 混合模式(订阅 + 积分):月费中包含一定额度的积分,超出部分需要额外付费。Cursor 和 Clay 就采用这种方式。

目前还不确定也没关系

如果他们还不确定如何定价,引导他们先跟踪用量,之后再定价:

“没关系——你现在不必决定定价。我们可以先跟踪应用中的所有重要活动及其成本。Credyt 会展示你的单位经济效益,你可以根据实际数据制定价格。”

对于这种情况:将产品价格设为零或占位价格,并强调要为事件添加成本。

使用美元还是积分?

“你希望用户看到的价格以美元表示(例如‘每个视频 2.50 美元’),还是使用自己的货币单位,例如积分或代币(例如‘每个视频 10 积分’)?”

适合使用积分的情况:后台成本会变化、用户不懂技术、你希望用户能够赚取积分,或者以后可能调整价格。

适合使用美元的情况:每项活动的成本固定、用户是开发者、你希望完全透明。

如果他们不确定,建议使用积分——这样以后调整会更加灵活。

定价是否会变化?

“成本会因某些因素而变化吗?比如更高质量的输出成本更高,或者不同的 AI 模型价格不同?”

如果会变化,请了解具体情况。这些因素会成为 Credyt 中的定价维度。

需求确认

开始配置前,确认你了解以下内容:

  • 应用的功能以及哪些活动很重要
  • 哪些活动会产生费用
  • 计费方式(按用量付费、订阅、混合模式,或先跟踪用量)
  • 使用美元还是自定义货币
  • 定价是否会因任何维度而变化

如果有任何不清楚的地方,请提问。需求了解完成前不要继续。

通过 MCP 配置

逐步引导用户完成每个步骤。在执行任何会创建或修改数据的 MCP 调用之前,先向用户展示包含预期参数的表格,并取得明确确认:

“我将使用以下设置创建 [X]——这些设置都正确吗?”

字段值
......

“如果你想更改任何内容,请在我继续之前告诉我。”

这适用于所有变更操作:创建资产、产品、供应商、版本和调整项。绝不要假设用户尚未确认的值,尤其是精度、定价和事件类型。

创建自定义货币(如果使用额度/令牌/金币)

仅当用户选择了自定义货币时才创建。必须在创建任何使用该货币的产品之前创建。

使用 credyt:create_asset。务必明确确认精度——额度通常为整数(精度为 0),但必须得到确认。例如:

字段值
名称Credits
代码credits
精度0(整数额度,不含小数)
汇率1 credit = $0.05 → $1 可购买 20 credits

用具体的金额说明兑换比例,方便用户确认是否合理:

创建后,使用 credyt:quote_asset 验证兑换比例。报价说明 $1、$10 和 $50 各可购买多少单位:

“我来验证一下……✓ $1 可购买 20 credits,$10 可购买 200 credits,$50 可购买 1,000 credits。这样看起来正确吗?”

如果兑换比例不正确,使用 credyt:add_asset_rate 更正后重新报价。

创建带定价的产品

对每项计费活动使用 credyt:create_product。例如:

字段值
名称Image Generation
代码image_gen
事件类型image_generated
用量类型unit
价格每次事件 10 credits

需要向用户确认的关键字段:

  • 产品名称和代码:此计费项目的名称及其标识符
  • 事件类型:触发计费的活动名称(例如,“image_generated”)——必须与应用将发送的值完全一致
  • 用量类型:按发生次数计费(“unit”),或按令牌等数量计费(“volume”)
  • 定价:每次事件的费用

如果用户希望“先追踪”,将价格设为零,并在表格中明确说明。

**一个产品可以同时包含固定周期性价格和基于用量的实时价格。**例如,每月 $20 的订阅,同时按每项 AI 作业收取 1 credit,这是一个包含两种价格的产品——周期性 USD 价格和按事件计费的 credit 价格。默认使用一个包含多个价格的产品;只有用户明确提出需求时,才创建独立产品。

要更新现有产品的定价,始终使用 credyt:create_product_version 创建新版本——绝不要创建新产品。这样可以保留计费历史,并让客户继续使用现有订阅。创建版本前,同样要展示确认表格。

每次创建或更新产品后,都使用 credyt:simulate_usage 进行验证。在模拟中始终明确指定产品版本(例如,version: 1),不要依赖默认版本——这样可以确保测试的是刚刚配置的内容:

“我来测试一下——生成一张图像应花费 10 credits……✓ 已确认:扣除了 10 credits,相当于 $0.50。这符合你的预期吗?”

如果模拟结果不符,使用 credyt:create_product_version 创建包含修正后定价的新产品版本,并重新模拟,直至结果正确。创建新版本前,先用表格确认版本参数。

版本变更说明:创建新产品版本后,现有测试客户仍会订阅旧版本。运行验证前,要么创建一个订阅新版本的新测试客户,要么更新现有客户的订阅。

随附额度(权益)

如果计费模式包含订阅中附带的额度(例如,“$20/月包含 1,000 个额度”),应在产品级别将其配置为权益,而不是负价格或单独的产品。

在 create_product(或 create_product_version)调用中加入 entitlements 数组。权益有两种模式:

周期性 — 额度按计划刷新(例如,每月刷新 1,000 个额度):

"entitlements": [
  {
    "name": "Monthly Credit Allowance",
    "asset": "{assetCode}",
    "amount": 1000,
    "purpose": "bundled",
    "lifecycle": {
      "duration": "month",
      "duration_count": 1,
      "refresh": {
        "strategy": "expire_and_replace"
      }
    },
    "accounting": {
      "revenue_basis": 0.00,
      "cost_basis": "auto"
    }
  }
]

一次性 — 额度仅发放一次,之后永不刷新(例如,注册奖励或促销赠送)。省略 lifecycle.refresh:

"entitlements": [
  {
    "name": "Welcome Bonus",
    "asset": "{assetCode}",
    "amount": 500,
    "purpose": "promotion",
    "lifecycle": {
      "duration": "month",
      "duration_count": 1
    },
    "accounting": {
      "revenue_basis": 0.00,
      "cost_basis": "auto"
    }
  }
]

lifecycle.duration 设置过期时限;duration_count 用于指定时长倍数(例如,duration: "month", duration_count: 3 表示 3 个月后过期)。对于订阅附带的额度,purpose 为 "bundled";对于一次性赠送,purpose 为 "promotion"。

创建前,使用标准参数表向用户确认权益字段(名称、资产、数量、生命周期时长以及是否刷新)。

不要尝试将附带额度建模为负的固定价格——这会导致验证失败,也不是正确做法。

设置成本跟踪(对此进行询问)

验证之前,询问用户是否想要跟踪各项活动的成本:

“您想跟踪每项活动的实际成本吗?例如,如果生成一张图片的 API 费用是 $0.03,Credyt 可以将其与收入一并记录,这样您就能实时查看利润率。”

如果想要,为每个服务提供商(OpenAI、Anthropic、AWS 等)使用 credyt:create_vendor 创建供应商:

“您提到使用 OpenAI 生成图片——我会将其注册为成本提供商,以便我们跟踪这些成本。”

说明:当他们从应用发送用量事件时,需要在其中包含一个 costs 数组,列出供应商和金额。然后,Credyt 会自动计算利润。

如果不想要,也没关系——他们以后可以添加成本跟踪。

验证配置

配置完所有产品后,自动运行完整的计费周期测试。不要询问,直接执行。

“现在我来运行一次测试计费周期,验证所有环节是否正常……”

针对本次会话中创建或修改的每个产品运行验证。对每个产品,按照 skills/billing-verification/references/procedure.md 中的六步流程操作。

如果任何步骤失败,请说明问题所在并协助修复,然后重新运行该产品的验证。

“测试客户会保留在您的账户中——由于您处于测试模式,这不会造成任何影响。”

收尾

总结创建和验证的内容,然后建议后续步骤:

“以下是在 Credyt 中已设置并验证的内容:

  • [列出已创建的资产]
  • [列出产品、定价摘要和验证状态]
  • [列出已创建的供应商]

准备好将其接入应用时,请运行 /credyt:billing-integration;如需添加更多产品,请再次运行 /credyt:billing-setup。”

下一步

此技能仅配置产品和定价。不要自行编写集成代码——SDK 结构、端点和身份验证标头很容易猜错。

接下来运行 billing-integration 技能。如果未安装,请让用户安装:

“运行 npx skills add credyt/ai-tools,然后让我运行 billing-integration 技能。”

如果该技能不可用,且用户没有明确要求你编写集成代码,请在此处停止并等待他们安装。不要手动编写 fetch 调用,也不要臆造 API 端点。

在应用程序代码中调用 Credyt API,首选方式是使用官方 SDK 之一:@credyt/api-client(TypeScript/Node.js)或 credyt-api(Python)。如果这两个 SDK 都不适合其技术栈,billing-integration 技能也涵盖直接通过 HTTP 调用。

评论

支持 Markdown