RevenueDot について
RevenueDot MCP server は、RevenueCat のオープンソース代替である RevenueDot のサブスクリプション管理機能を AI アシスタントのクライアントに提供します。アプリや商品設定、顧客・購読の操作、Webhook、収益指標を扱い、ホスト型またはローカルで実行できます。
主な機能
- 01アプリ、商品、権利、オファリングを管理
- 02顧客を検索し、購読や取引履歴を確認
- 03購読の権利付与、延長、解約、返金
- 04Webhook の作成とトラブルシューティング
- 05収益指標とストア認証情報の状態を確認
活用シーン
- 01アプリの購読商品と権利を設定
- 02顧客を検索し、アクセス権を管理
- 03Webhook の配信とストア認証情報を確認
- 04AI アシスタントから収益指標を参照
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 アシスタントを、オープンソースのRevenueCat代替サービスであるRevenueDotに接続できます。 アプリ、製品、エンタイトルメント、オファリングの設定、顧客の検索、アクセス権の付与、Webhookの確認を行う38個のツールを、mcp.revenuedot.appでホスト、またはローカルで実行できます。
メインリポジトリ · ドキュメント · エージェントスキル · 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):ホスト型サーバーは、RevenueDot Cloud(
https://api.revenuedot.app)の前段でhttps://mcp.revenuedot.app/mcpにて稼働しています。ローカルサーバーは@revenuedot/mcpとしてnpmで公開されているため、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 個を利用できます。OpenAI は金銭を移動するプラグインを掲載しないため、refund-subscription は含まれません。
無料のナレッジサーバー、サインイン不要: https://mcp.revenuedot.app/kit/mcp では、出典付きのペイウォールパターン、App Store と Google Play のルール、コードスニペットを提供する、6 個の読み取り専用ツール(search-monetization-knowledge、list-paywall-patterns、get-paywall-pattern、get-store-guideline、get-code-snippet、list-skills)を利用できます。アカウントやキーは不要で、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 が機能します。独自のサーバーが認可サーバーになります。
認証
- シークレットキー(ベアラー)。
Authorization: Bearer sk_...は RevenueDot REST API v2 に渡され、キーのプロジェクトとスコープが確認されます。 - OAuth 2.1。 RevenueDot サーバーが認可サーバーです(
/.well-known/oauth-authorization-server、動的クライアント登録、PKCE S256 を使用した認可コード)。同意画面では、ダッシュボードのセッションを使用します。プロジェクトを 1 つ選び、読み取り専用アクセスまたは読み書きアクセスを選択します。アクセストークンは、そのプロジェクトとスコープに限定されたシークレットキーです。これは API keys にOAuth: <client name>として表示され、そこで取り消すことができます。このサーバーは/.well-known/oauth-protected-resourceを公開し、WWW-Authenticateを含む401を返すため、クライアントはサインイン先を自動的に検出できます。
ツール
すべてのツールには、任意の project_id を指定できます。キーまたは接続先にプロジェクトが 1 つ設定されている場合は、省略してください。
| ツール | 機能 | API v2 呼び出し |
|---|---|---|
list-projects | このキーまたは接続で利用できるプロジェクト | GET /v2/projects |
list-apps | ストアごとに 1 つのアプリ | GET /apps |
create-app | Test Store、App Store(バンドル ID)、または Google Play(パッケージ名)のアプリを追加します。認証情報は不要です | POST /apps |
list-public-api-keys | アプリの公開 SDK キー(appl_、goog_、test_)。アプリ内に組み込まれます | GET /apps/{id}/public_api_keys |
list-products | 商品。必要に応じて 1 つのアプリに絞り込めます | 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 | 概要カード、または 1 つの指標の日別履歴 | 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)。
エンタイトルメントは ID またはルックアップキーで指定できます。expires_at にはミリ秒、ISO 日付、または 30d などの期間を指定します。
MCP を使わずにツールを使用する
ツールの定義と実行処理は zod と小規模な API クライアントのみに依存するため、アプリ内のエージェントで再利用できます。
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" });
コーディングエージェントで使用する
コーディングエージェントは必要に応じてこのリポジトリを参照できるため、適切なパッケージ、インポート、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 サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
