mcpField
R
RevenueDot

RevenueDot

远程服务
revenuedot.app金融数据03 周前更新

关于 RevenueDot

RevenueDot MCP server 将 RevenueDot 的订阅管理功能提供给 AI 助手及其客户端,作为 RevenueCat 的开源替代方案。它涵盖应用与商品配置、客户和订阅操作、Webhook 及收入指标,并支持托管或本地运行。

主要功能

  1. 01管理应用、商品、权益和套餐
  2. 02查找客户并查看订阅及交易记录
  3. 03授予、延长、取消或退款订阅
  4. 04创建和排查 Webhook
  5. 05查看收入指标及商店凭证状态

适用场景

  1. 01配置应用的订阅商品和权益
  2. 02查询客户订阅并处理访问权限
  3. 03检查 Webhook 投递和商店凭证
  4. 04让 AI 助手读取收入指标

MCP 相关

提供托管和本地 MCP 服务,向客户端暴露 RevenueDot 项目、订阅、客户、Webhook 和指标操作工具。另有无需登录的只读知识服务。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://mcp.revenuedot.app/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

详细介绍

RevenueDot

RevenueDot MCP 服务

将 Claude、ChatGPT、Cursor 和其他 AI 助手连接到 RevenueDot——这款开源产品是 RevenueCat 的替代方案。 提供 38 个工具,可用于设置应用、产品、权益和套餐,查找客户、授予访问权限并检查 Webhook;托管于 mcp.revenuedot.app,也可在本地运行。

主仓库 · 文档 · Agent 技能 · 在 RevenueDot Cloud 免费开始使用

npm License: MIT Hosted

了解更多:RevenueCat 官方开源 MCP 服务:包含 Claude Code、Claude、Codex、Cursor、ChatGPT 和 Windsurf 的配置、工具表、审批模型,以及 RevenueCat 自家的 MCP 服务所提供的功能。

观看 87 秒的 RevenueDot ChatGPT 演示

此服务提供 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 也可用于你自己的服务:该服务就是授权服务器。

身份验证

  1. 密钥(Bearer)。 Authorization: Bearer sk_... 会传递给 RevenueDot REST API v2,由其检查密钥所属的项目及其权限范围。
  2. 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添加权益,例如 proPOST /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-integrationsWebhookGET /integrations/webhooks
create-webhook-integration添加 WebhookPOST /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-settingsApp 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:

开发

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. 无关联。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。