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 分

    请在仓库或注册中心条目中声明许可证。