关于 RevenueDot
RevenueDot MCP server 将 RevenueDot 的订阅管理功能提供给 AI 助手及其客户端,作为 RevenueCat 的开源替代方案。它涵盖应用与商品配置、客户和订阅操作、Webhook 及收入指标,并支持托管或本地运行。
主要功能
- 01管理应用、商品、权益和套餐
- 02查找客户并查看订阅及交易记录
- 03授予、延长、取消或退款订阅
- 04创建和排查 Webhook
- 05查看收入指标及商店凭证状态
适用场景
- 01配置应用的订阅商品和权益
- 02查询客户订阅并处理访问权限
- 03检查 Webhook 投递和商店凭证
- 04让 AI 助手读取收入指标
MCP 相关
提供托管和本地 MCP 服务,向客户端暴露 RevenueDot 项目、订阅、客户、Webhook 和指标操作工具。另有无需登录的只读知识服务。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://mcp.revenuedot.app/mcpclaude mcp add --transport http revenuedot https://mcp.revenuedot.app/mcp{"mcpServers":{"revenuedot":{"type":"http","url":"https://mcp.revenuedot.app/mcp"}}}在 Cursor 中打开{"servers":{"revenuedot":{"type":"http","url":"https://mcp.revenuedot.app/mcp"}}}在 VS Code 中打开{"mcpServers":{"revenuedot":{"type":"http","url":"https://mcp.revenuedot.app/mcp"}}}{"mcpServers":{"revenuedot":{"serverUrl":"https://mcp.revenuedot.app/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
RevenueDot MCP 服务
将 Claude、ChatGPT、Cursor 和其他 AI 助手连接到 RevenueDot——这款开源产品是 RevenueCat 的替代方案。 提供 38 个工具,可用于设置应用、产品、权益和套餐,查找客户、授予访问权限并检查 Webhook;托管于 mcp.revenuedot.app,也可在本地运行。
主仓库 · 文档 · Agent 技能 · 在 RevenueDot Cloud 免费开始使用
了解更多:RevenueCat 官方开源 MCP 服务:包含 Claude Code、Claude、Codex、Cursor、ChatGPT 和 Windsurf 的配置、工具表、审批模型,以及 RevenueCat 自家的 MCP 服务所提供的功能。
此服务提供 38 个工具,可用于创建应用并读取其 SDK 密钥和商店通知设置,设置产品、权益、套餐和项目,查找客户并读取其历史记录,授予、延长、取消或退款,添加和调试 Webhook,检查商店凭据,读取收入指标,以及跟踪从 RevenueCat 导入数据的进度。它也是 RevenueDot ChatGPT 插件和 Claude 连接器背后的服务(安装:revenuedot/agent-skills)。如果工具执行的操作相同,其名称就会与 RevenueCat 的 MCP 工具一致,因此为 RevenueCat 编写的提示词也适用于此处。
状态(2026-09-30):托管服务已在
https://mcp.revenuedot.app/mcp上线,前端连接 RevenueDot Cloud(https://api.revenuedot.app)。本地服务已发布到 npm,包名为@revenuedot/mcp,因此运行npx -y @revenuedot/mcp即可启动最新版本。
连接
托管版(Streamable HTTP): https://mcp.revenuedot.app/mcp。客户端会通过 OAuth 为你登录,或者你可以发送 Authorization: Bearer sk_...。https://mcp.revenuedot.app/claude/mcp(Claude 连接器)提供相同的 38 个工具。https://mcp.revenuedot.app/chatgpt/mcp(ChatGPT 插件)提供 37 个工具:它不包含 refund-subscription,因为 OpenAI 不会列出涉及资金转移的插件。
免费知识服务,无需登录: https://mcp.revenuedot.app/kit/mcp 提供六个只读工具(search-monetization-knowledge、list-paywall-patterns、get-paywall-pattern、get-store-guideline、get-code-snippet、list-skills),包含附有来源的付费墙模式、App Store 和 Google Play 规则以及代码片段。它不需要账号或密钥,不会调用任何 RevenueDot 项目,并且每条结果的末尾都会注明由 RevenueDot 维护。它是 revenuedot/agent-skills 中 RevenueDot App Monetization 插件的免费部分。数据位于 src/kit/data/。
本地(stdio),用于 RevenueDot Cloud 或你自己的服务(REVENUEDOT_URL 默认为 https://api.revenuedot.app):
# Claude Code
claude mcp add revenuedot -e REVENUEDOT_API_KEY=sk_... -e REVENUEDOT_URL=https://your-server -- npx -y @revenuedot/mcp
{
"mcpServers": {
"revenuedot": {
"command": "npx",
"args": ["-y", "@revenuedot/mcp"],
"env": { "REVENUEDOT_API_KEY": "sk_...", "REVENUEDOT_URL": "https://your-server" }
}
}
}
在 RevenueDot 控制面板的 API keys 下创建密钥。只授予你希望助手拥有的权限:仅具有读取范围的密钥无法更改任何内容,而需要更多权限的工具调用会报错并指出缺少的权限。
自托管 HTTP: npx -y @revenuedot/mcp --http --port 8788 --url https://your-server 会提供 http://127.0.0.1:8788/mcp。使用 --host 0.0.0.0 --public-url https://mcp.your-domain 将其置于反向代理之后。OAuth 也可用于你自己的服务:该服务就是授权服务器。
身份验证
- 密钥(Bearer)。
Authorization: Bearer sk_...会传递给 RevenueDot REST API v2,由其检查密钥所属的项目及其权限范围。 - OAuth 2.1。 RevenueDot 服务是授权服务器(
/.well-known/oauth-authorization-server、动态客户端注册、使用 PKCE S256 的授权码)。授权同意页面使用你的控制面板会话:你可以选择一个项目,以及只读或读写权限。访问令牌是一个仅限该项目和所选权限范围的密钥。它会以OAuth: <client name>的名称列在 API keys 下,你可以在那里撤销它。此服务会发布/.well-known/oauth-protected-resource,并使用WWW-Authenticate响应401,让客户端自行找到登录入口。
工具
每个工具都接受可选的 project_id。如果密钥或连接只关联一个项目,可以不填。
| 工具 | 功能 | API v2 调用 |
|---|---|---|
list-projects | 此密钥或连接可使用的项目 | GET /v2/projects |
list-apps | 应用,每个商店一个 | GET /apps |
create-app | 添加 Test Store、App Store(bundle id)或 Google Play(package name)应用;不含凭据 | POST /apps |
list-public-api-keys | 应用的公开 SDK 密钥(appl_、goog_、test_),会随应用一同发布 | GET /apps/{id}/public_api_keys |
list-products | 商品,可选仅列出一个应用的商品 | GET /products |
create-product | 向应用添加商店商品 | POST /products |
list-entitlements | 权益及其商品 | GET /entitlements |
create-entitlement | 添加权益,例如 pro | POST /entitlements |
attach-products-to-entitlement | 将商品关联到某项权益,使其解锁该权益 | POST /entitlements/{id}/actions/attach_products |
list-offerings | 方案及其套餐和商品 | GET /offerings |
create-offering | 添加方案,可选设为当前方案 | POST /offerings |
create-packages | 向方案添加套餐 | POST /offerings/{id}/packages |
attach-products-to-package | 将商品添加到套餐 | POST /packages/{id}/actions/attach_products |
get-customer | 客户、有效权益、属性、订阅和购买记录 | GET /customers/{id} 及其子资源 |
grant-customer-entitlement | 授予促销访问权限,直到指定日期(如果客户不存在,则创建客户) | POST /customers/{id}/actions/grant_entitlement |
revoke-customer-entitlement | 结束已授予的访问权限 | POST /customers/{id}/actions/revoke_granted_entitlement |
list-webhook-integrations | Webhook | GET /integrations/webhooks |
create-webhook-integration | 添加 Webhook | POST /integrations/webhooks |
get-import-status | 运行 npx revenuedot import 后的客户、订阅和待处理 Google 令牌 | GET /import/status |
get-project-health | 按应用查看:商店凭据是否有效、通知是否送达、Webhook 是否已投递 | GET /setup_health |
get-metrics | 概览卡片,或某项指标的每日历史记录 | GET /metrics/overview、/metrics/history |
list-customers | 按最新优先列出,或按应用用户 ID、电子邮件或交易 ID 搜索 | GET /customers |
list-transactions | 购买、续订、试用和退款 | GET /transactions |
list-events | 事件日志(Webhook 发送的事件),可按客户、类型或环境筛选 | GET /events |
set-customer-attributes | 设置或删除属性(破坏性操作:会覆盖原有内容) | POST /customers/{id}/attributes |
delete-customer | 删除客户数据(破坏性操作) | DELETE /customers/{id} |
extend-subscription | 延长免费天数,或延长至指定日期 | POST /subscriptions/{id}/actions/extend |
cancel-subscription | 在当前周期结束时取消(破坏性操作) | POST /subscriptions/{id}/actions/cancel |
refund-subscription | 退款并结束访问权限(破坏性操作) | POST /subscriptions/{id}/actions/refund |
create-test-purchase | 模拟 Test Store 购买生命周期 | POST /test_purchases |
archive-offering | 隐藏方案(破坏性操作) | POST /offerings/{id}/actions/archive |
list-webhook-deliveries | 按状态列出投递尝试 | GET /webhooks/{id}/deliveries |
retry-webhook-delivery | 重新发送一次投递 | POST /webhooks/{id}/deliveries/{id}/retry |
send-test-webhook | 发送 TEST 事件 | POST /integrations/webhooks/{id}/test |
delete-webhook-integration | 删除 Webhook(破坏性操作) | DELETE /integrations/webhooks/{id} |
verify-store-credentials | 使用已保存的密钥调用 Apple 或 Google,并报告密钥是否有效 | POST /apps/{id}/actions/verify_credentials |
get-app-store-settings | App Store Connect 或 Pub/Sub 的通知 URL、转发 URL、最近一次通知及转发记录;仅显示凭据是否已配置 | GET /apps/{id}/store_settings |
update-app | 重命名应用、设置或清除 notification_forward_url、设置 track_new_purchases;不含凭据(破坏性操作:会更改商店通知的发送位置) | POST /apps/{id} |
| 没有任何工具会接收密钥、密码或凭据:密钥和 Webhook 请求头都在仪表板中填写。创建 Webhook 时,签名密钥只会返回一次。 |
OAuth 作用域
| 作用域 | 助手可执行的操作 | 工具 |
|---|---|---|
project:read | 读取所有内容 | 17 个只读工具 |
project:write | 创建和更新应用、更改目录、授予和撤销访问权限、管理 Webhook、删除客户 | 17 个工具(12 个写入工具,5 个破坏性工具) |
project:support | 取消、退款和延长订阅,进行 Test Store 购买。仅在工具需要时单独请求 | extend-subscription、cancel-subscription、refund-subscription、create-test-purchase |
如果工具需要的权限超出连接所具备的权限,就会返回包含 _meta["mcp/www_authenticate"] 的错误,ChatGPT 和 Claude 会用它来请求你授予缺少的权限。每个工具描述符还包含 _meta.securitySchemes。
scripts/verify-live.mjs 会根据目录规则检查已部署的服务(REVENUEDOT_MCP_TOKEN=sk_... node scripts/verify-live.mjs)。
Entitlement 可以通过 id 或 lookup key 指定。expires_at 接受毫秒、ISO 日期或类似 30d 的时长。
不通过 MCP 使用工具
工具定义和执行器只依赖 zod 和一个小型 API 客户端,因此应用内的 Agent 可以复用它们:
import { createClient } from "@revenuedot/mcp";
import { tools, runTool } from "@revenuedot/mcp/tools";
const client = createClient({ baseUrl: "https://api.revenuedot.app", apiKey: process.env.REVENUEDOT_API_KEY! });
await runTool(client, "grant-customer-entitlement", { customer_id: "user_42", entitlement_id: "pro", expires_at: "30d" });
与编码 Agent 配合使用
编码 Agent 可以按需读取此代码库,因此能使用正确的软件包、导入和 API:
- Context7: https://context7.com/revenuedot/mcp
- DeepWiki: https://deepwiki.com/revenuedot/mcp
- GitMCP: https://gitmcp.io/revenuedot/mcp
开发
pnpm install
pnpm test # starts a real RevenueDot server from ../revenuedot (or REVENUEDOT_REPO) on in-memory Postgres
pnpm typecheck
pnpm dev # HTTP on :8788 against REVENUEDOT_URL
pnpm run deploy # Cloudflare Worker with the cf CLI (cloudflare.config.ts, Circo account); needs Node 22.18+
使用 Node 24。CI(.github/workflows/ci.yml)会在每次推送和拉取请求时运行类型检查、构建和测试。在 main 分支上,随后会使用 production 环境的机密部署 mcp.revenuedot.app,并通过 scripts/verify-live.mjs 检查线上服务:受保护资源的元数据会正常响应,且不带令牌的 POST /mcp 会返回 401。向 main 推送即为生产环境部署。
RevenueDot 与 RevenueCat, Inc. 无关联。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。
