BillDog

io.github.billdogai由 GitHub 帳號 billdogai 發布v1.1.0更新於 Oct 30, 2026

Set up and inspect app paywalls, subscriptions, offerings and analytics from your AI agent.

已驗證Streamable HTTP可網頁執行開發者工具資料與分析商業與電商

概覽

AI 產生的概覽

託管的 BillDog MCP 伺服器,讓 AI 助理設定與檢視應用程式付費牆、訂閱、商品目錄、實驗與分析資料。

可以做什麼
  • 檢視整合狀態、專案中繼資料、近期 SDK 活動與 placement 解析結果
  • 執行分析報表、查詢分析 schema、列出事件名稱、cohort 與已儲存檢視
  • 讀寫商品目錄:產品、權益、offering、方案與 placement
  • 從範本建立付費牆、編輯草稿、預覽並發布或取消發布
  • 管理 A/B 實驗與功能旗標,包括結果與放量調整
  • 列出與建立專案、公開 SDK 金鑰、問卷、活動、旅程與訊息範本
適用情境
適用於應用程式已使用或正在導入 BillDog 處理內購與付費牆的情境,例如請助理排查付費牆為何沒顯示、建立商品目錄、草擬並發布付費牆,或查詢營收與留存資料。
執行需求
遠端 Streamable HTTP 端點,本機不需執行任何程式。需要免費 BillDog 帳號且至少有一個專案。首次呼叫工具時在瀏覽器以 OAuth 登入,或不支援 OAuth 的用戶端在 Authorization 標頭提供 bd_mcp_ 金鑰。僅支援本機伺服器的用戶端需透過 mcp-remote 之類的橋接。
安裝前請注意
寫入與發布類工具會改動線上設定:發布付費牆、設定目前 offering、連結 placement 與啟動實驗都會影響真實使用者看到的內容。授權時需選擇權限範圍(唯讀、可編輯或可發布);bd_mcp_ 金鑰一律唯讀。Authorization 標頭中攜帶的是金鑰。所有寫入都會記入稽核日誌,並歸屬於對應助理與使用者。

安裝

在 SourceWeft 中

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

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

交給代理程式安裝

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

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

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

其他 MCP 客戶端

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

{
  "mcpServers": {
    "billdog": {
      "type": "http",
      "url": "https://api.billdog.io/mcp"
    }
  }
}

README

🐶 BillDog MCP Server

Set up and inspect paywalls, subscriptions and analytics for your app — from your AI coding agent.

[MCP] [Tools] [Auth] [Docs]

https://api.billdog.io/mcp

Install · What you can ask · Tools · Permissions · Troubleshooting


BillDog is paywalls, in-app purchases, subscriptions, analytics, messaging, surveys and journeys behind one SDK for iOS, Android, React Native, Flutter, Expo and the web. This repository is how AI agents connect to it:

  • A hosted MCP server. 55 tools: diagnose an integration, build the product catalog, design and publish paywalls, and query revenue and retention.
  • A Claude Code plugin. The server plus two skills: wiring the SDK into an app, and migrating from RevenueCat, Superwall, Adapty and others.

Nothing runs on your machine. The server is hosted by BillDog and every client connects to the same URL.

Install

You need a free BillDog account at billdog.io with at least one project.

ClientHow
Claude Code (plugin, recommended)/plugin marketplace add billdogai/billdog-mcp, then /plugin install billdog@billdog
Claude Code (server only)claude mcp add --transport http billdog https://api.billdog.io/mcp
Claude.ai / Claude DesktopSettings → Connectors → Add custom connector → paste https://api.billdog.io/mcp
CursorSettings → MCP → Add server, or the config below
VS Code (Copilot)Command palette → MCP: Add Server → HTTP → paste the URL
AntigravityAdd the server to mcp_config.json using the config below
Windsurf / othersAny client that supports remote Streamable HTTP servers

The first time a tool runs, your browser opens Sign in with BillDog. That's the whole setup.

Config file snippets

Cursor (~/.cursor/mcp.json) and most clients:

json
{  "mcpServers": {    "billdog": { "url": "https://api.billdog.io/mcp" }  }}

VS Code (.vscode/mcp.json):

json
{  "servers": {    "billdog": { "type": "http", "url": "https://api.billdog.io/mcp" }  }}

Antigravity (mcp_config.json, which uses serverUrl rather than url):

json
{  "mcpServers": {    "billdog": { "serverUrl": "https://api.billdog.io/mcp" }  }}

Clients that only launch local (stdio) servers, bridged with mcp-remote:

json
{  "mcpServers": {    "billdog": {      "command": "npx",      "args": ["-y", "mcp-remote", "https://api.billdog.io/mcp"]    }  }}

Sign in with BillDog

The server uses OAuth 2.1 with PKCE and dynamic client registration, so your client registers and authenticates itself:

  1. Your client discovers the authorization server from the server's 401 (RFC 9728).
  2. It registers itself and opens BillDog in your browser.
  3. You sign in, pick one project, and choose what the agent may do.
  4. The agent gets a short-lived token for that project only. It refreshes on its own, and you can disconnect it at any time.

Using a key instead

For scripts, CI, or clients without OAuth, create a key at Dashboard → AI Assistant (MCP) Keys. MCP keys start with bd_mcp_ and are read-only.

bash
claude mcp add --transport http billdog https://api.billdog.io/mcp \  --header "Authorization: Bearer bd_mcp_YOUR_KEY"

[!IMPORTANT] bd_public_… and bd_secret_… keys are SDK keys for your app and won't work here. The server tells you so if you paste one.

What you can ask

"Why isn't my paywall showing on iOS?" → get_setup_status and resolve_placement_preview show exactly what's missing, with dashboard links.

"Set up monthly and annual Pro plans with a 7-day trial and an onboarding placement." → apply_setup_plan creates the products, entitlement, offering and placement in one step. Everything starts inactive.

"Design a dark paywall for the annual plan from a template, show me a preview, then publish it." → list_templates → create_paywall_from_template → update_paywall → preview_paywall → publish_paywall

"What was MRR last month and which paywall converts best?" → run_analytics_query

"Migrate this app from RevenueCat." → the billdog-migration skill (Claude Code plugin) rewrites the call sites and recreates the catalog.

Tools

27 read · 28 write · publish means it changes what live users see and needs the publish permission. Machine-readable list: tools.json.

Setup & diagnostics

ToolAccessWhat it does
get_setup_statusreadInspect the setup status of BillDog for this project.
get_projectreadGet project metadata including bundle ID, package name, and registered domains.
get_recent_sdk_activityreadIs the app sending data? For the last window_hours (default 24): events by name, purchases and session replays, split into sandbox and production, with has_traffic for each.
resolve_placement_previewreadDry-run preview of what a client SDK receives when resolving a placement.

Analytics

ToolAccessWhat it does
run_analytics_queryreadRun a single analytics report.
discover_schemareadReturn the full BillDog analytics schema — every (source, metric) pairing the project supports, with a 1-line description of what each returns.
list_event_namesreadList the event names this project received in the last days days (default 30), most frequent first, with each one's count and unique users.
list_cohortsreadList saved cohorts for this project.
list_saved_viewsreadList saved analytics views for this project, each with what it asks (source, metric, dims, filters, date range, segment).
get_saved_view_resultsreadRe-run a saved view and return its results.

Catalog: products, entitlements, offerings, placements

ToolAccessWhat it does
list_productsreadList all products configured in this project's catalog, including their identifiers, product types, subscription durations, and store mapping IDs.
list_entitlementsreadList all entitlements in this project and the product IDs associated with each entitlement.
list_offeringsreadList all offerings in this project, showing their packages, attached products, and default/current status.
list_placementsreadList all placements in this project, including access gating settings and linked offerings.
apply_setup_planwrite · publishDeclaratively evaluate and execute a complete monetization catalog setup (products, entitlements, offerings, packages, placements).
create_productwriteCreate a store product (subscription or in-app purchase) in the project catalog.
update_productwriteUpdate metadata, store IDs, or display pricing for an existing product in this project.
create_entitlementwriteCreate a new entitlement in the catalog and optionally link it to products.
update_entitlementwriteUpdate display name, description, or linked products for an existing entitlement (product_ids replaces the list).
set_entitlement_productswriteSet the explicit list of product IDs granting an entitlement (replaces the list; only the links that change are touched).
create_offeringwriteCreate a new offering with packages.
manage_offering_packageswriteAdd or remove packages within an existing offering.
set_current_offeringwrite · publishMake an offering the project current offering (the others stop being current, atomically).
create_placementwriteCreate a new placement in the project.
link_placementwrite · publishLink one or more offerings to a placement with priority order (replaces its links).

Paywalls

ToolAccessWhat it does
list_paywallsreadList all paywalls in this project, including active state, wall type, and publication timestamps.
get_paywallreadGet a paywall by UUID or identifier: status, layouts, offering, colours and copy_outline — every text and button with its component id, for update_paywall patch.copy. include_config returns the full draft and published configs (large).
list_templatesreadList available paywall and onboarding templates from the BillDog template catalog.
create_paywall_from_templatewriteCreate a new paywall in the project from an existing template.
design_paywallwriteDesign a paywall and save it as an inactive draft.
update_paywallwriteApply constrained patch updates to a paywall's draft (copy, title, subtitle, CTA text, brand colors, offering binding).
preview_paywallreadEvaluate paywall publish gate (validating components, bindings, offerings) and generate a secure short-lived preview link and token.
publish_paywallwrite · publishPublish a draft paywall to make it active for SDK delivery.
unpublish_paywallwrite · publishDeactivate an active paywall.

Experiments & feature flags

ToolAccessWhat it does
list_experimentsreadList the project's experiments with their status, what devices are served now (variants, the shipped winner, or the control only), and each variant's paywall and traffic share.
create_experimentwriteCreate a paywall A/B experiment as a DRAFT: each variant shows a different paywall at the same place in the app.
start_experimentwrite · publishStart (or resume) an experiment: users who reach its paywall are split between the variants.
stop_experimentwrite · publishStop an experiment: pause or end it (everyone sees the control paywall), or end it and ship the winning variant to everyone.
get_experiment_resultsreadPer-variant results of an experiment for its whole run: users, conversions, conversion rate, revenue per user, lift vs control, p-value and significance (p < 0.05 with 100+ users per arm), plus a verdict: winner, loser, keep_running or no_data.
list_feature_flagsreadList the project's feature flags: key, on/off, rollout percentage, variants, and whether it has release conditions (audience rules, edited in the dashboard).
create_feature_flagwriteCreate a feature flag, OFF: every user gets false until update_feature_flag turns it on.
update_feature_flagwrite · publishTurn a feature flag on (start) or off (stop), change its rollout percentage or variants, or rename it.
get_feature_flag_resultsreadHow many users and evaluations got each value of a flag over the last N days (default 30, max 90), from the $feature_flag_called events the SDKs send.

Projects & SDK keys

ToolAccessWhat it does
list_projectsreadList all BillDog projects accessible to the authenticated user, identifying the current active project, bundle ID, and platform.
create_projectwriteCreate a new BillDog project for the authenticated user with a specified name, bundle ID, and platform.
create_public_sdk_keywriteGenerate a client-safe public SDK key (bd_public_live_... or bd_public_test_...) for mobile and web apps.
use_projectwriteSwitch this connection to another project it may use: the project chosen when it was connected, or one it created with create_project.

Engagement: surveys, campaigns, journeys, messages

ToolAccessWhat it does
list_surveysreadList all multi-page surveys and micro-survey walls configured for this project.
create_surveywriteSave a survey as a DRAFT with its questions (activate it in the dashboard).
list_campaignsreadList all marketing and engagement campaigns configured for this project.
create_campaignwriteSave a campaign as a DRAFT.
list_journeysreadList all customer onboarding and engagement journeys with their sequence of steps.
create_journeywriteSave a linear journey as a DRAFT (activate it in the dashboard; branches are built on its canvas).
list_message_templatesreadList the project's message templates (push, in-app, email, SMS) with their title and body, as the dashboard Templates library shows them.
create_message_templatewriteSave a reusable push or in-app message template (the same kind the dashboard Templates library shows).

Permissions & safety

GuaranteeHow
One project per connectionThe project is fixed by your sign-in or key. Project ids in tool arguments are ignored, so the agent can't read another project.
You choose the accessOn the consent screen: read only, read + create/edit, or read + create/edit + publish. Keys are always read-only.
Nothing goes live by accidentNew products, offerings, placements and paywalls start inactive or as drafts. Publishing, setting the current offering and linking a placement with live traffic need the publish permission.
No customer contact dataEmail, phone, display name and custom attributes are withheld from every response, and the response says so.
AuditedEvery write is recorded in the project's audit log, attributed to the agent and the user who connected it.
RevocableDisconnect an agent, or revoke a key, from the dashboard at any time.

Claude Code plugin

/plugin install billdog@billdog gives you the server plus two skills:

  • billdog-integration: adds the SDK to an app (Web, React Native, Expo, iOS, Android) or diagnoses one that's already wired. It covers the identifier traps (@billdog.io, not @billdog; io.billdog, not com.billdog), configuration, placements and a verification checklist.
  • billdog-migration: moves an app off RevenueCat, Superwall, Adapty, Mixpanel, Amplitude, OneSignal, Braze, Typeform or SurveyMonkey. It covers both the code and the data.

Troubleshooting

MessageFix
"This is a BillDog SDK key…"You pasted a bd_public_/bd_secret_ key. Use Sign in with BillDog, or create a bd_mcp_ key.
"This key has MCP access turned off"Turn MCP access on for the key on the MCP keys page.
…lacks the mcp:write scopeKeys are read-only. Connect with Sign in with BillDog and allow Create and edit configuration (or Publish and go live for mcp:publish).
Browser didn't openRun /mcp in Claude Code and choose Authenticate, or reconnect the connector.
"Unknown or revoked client_id"Remove the BillDog server from your client and add it again.

Repository layout

One plugin at the repository root, in two formats so every client can read it:

plugin.json                       Agent Plugins / Open Plugins manifest (Cursor, cursor.directory, other clients)mcp.json                          Agent Plugins MCP config (streamable-http)skills/                           billdog-integration, billdog-migration (shared by both formats).claude-plugin/marketplace.json   Claude Code marketplace (this repo).claude-plugin/plugin.json        Claude Code plugin manifest.mcp.json                         Claude Code MCP configserver.json                       official MCP Registry entrysmithery.yaml                     Smithery (stdio bridge via mcp-remote)glama.json                        Glama ownership claimtools.json                        all 55 tools, grouped, with access levelassets/icon.png                   listing icon

Links

來源:README.md,提交 0b47e14

工具

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

版本歷史

1
  1. v1.1.0最新Oct 15, 2026

評分

已滿足適用檢查項的 75%

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

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

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

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

    請在儲存庫或註冊中心條目中宣告授權條款。