关于 BillDog
BillDog 提供由 AI Agent 管理应用变现配置和数据的托管 MCP 服务,面向使用 BillDog SDK 的应用团队。它涵盖产品目录、付费墙、实验和分析,并支持按项目授权。
主要功能
- 01检查 SDK 接入与项目状态
- 02配置产品、权益和付费方案
- 03设计、预览及发布付费墙
- 04查询收入与留存分析
- 05管理实验和功能标志
适用场景
- 01排查 iOS 付费墙未显示的原因
- 02创建月度与年度订阅方案
- 03预览并发布付费墙草稿
- 04比较不同付费墙的转化表现
MCP 相关
通过托管的远程 MCP 服务向客户端提供 55 个读取和写入工具,用于诊断、配置及分析 BillDog 项目。支持 OAuth 2.1 项目授权;MCP 密钥为只读。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://api.billdog.io/mcpclaude mcp add --transport http billdogai-billdog https://api.billdog.io/mcp{"mcpServers":{"billdogai-billdog":{"type":"http","url":"https://api.billdog.io/mcp"}}}在 Cursor 中打开{"servers":{"billdogai-billdog":{"type":"http","url":"https://api.billdog.io/mcp"}}}在 VS Code 中打开{"mcpServers":{"billdogai-billdog":{"type":"http","url":"https://api.billdog.io/mcp"}}}{"mcpServers":{"billdogai-billdog":{"serverUrl":"https://api.billdog.io/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://api.billdog.io/mcp需要授权工具
详细介绍
🐶 BillDog MCP Server
通过 AI 编码 Agent 为你的应用设置和检查付费墙、订阅和分析数据。
https://api.billdog.io/mcp
BillDog 通过一个 SDK 为 iOS、Android、React Native、Flutter、Expo 和 Web 提供付费墙、应用内购买、订阅、分析、消息、问卷和用户旅程。此仓库介绍 AI Agent 如何连接到它:
- 托管的 MCP 服务。 55 个工具:诊断集成、构建产品目录、设计并发布付费墙,以及查询收入和留存情况。
- Claude Code 插件。 包含服务和两个技能:将 SDK 接入应用,以及从 RevenueCat、Superwall、Adapty 等迁移。
无需在你的计算机上运行任何内容。该服务由 BillDog 托管,所有客户端都连接到同一个 URL。
安装
你需要在 billdog.io 拥有一个免费的 BillDog 账户,并且至少有一个项目。
| 客户端 | 方法 |
|---|---|
| Claude Code(插件,推荐) | /plugin marketplace add billdogai/billdog,然后运行 /plugin install billdog@billdog |
| Claude Code(仅服务) | claude mcp add --transport http billdog https://api.billdog.io/mcp |
| Claude.ai / Claude Desktop | 设置 → 连接器 → 添加自定义连接器 → 粘贴 https://api.billdog.io/mcp |
| Cursor | 设置 → MCP → 添加服务,或使用下方配置 |
| VS Code (Copilot) | 命令面板 → MCP: Add Server → HTTP → 粘贴 URL |
| Antigravity | 使用下方配置将服务添加到 mcp_config.json |
| Windsurf / 其他 | 任何支持远程 Streamable HTTP 服务的客户端 |
首次运行工具时,浏览器会打开 使用 BillDog 登录。设置就这么简单。
配置文件片段
Cursor(~/.cursor/mcp.json)和大多数客户端:
{
"mcpServers": {
"billdog": { "url": "https://api.billdog.io/mcp" }
}
}
VS Code(.vscode/mcp.json):
{
"servers": {
"billdog": { "type": "http", "url": "https://api.billdog.io/mcp" }
}
}
Antigravity(mcp_config.json,使用 serverUrl 而不是 url):
{
"mcpServers": {
"billdog": { "serverUrl": "https://api.billdog.io/mcp" }
}
}
仅能启动本地(stdio)服务的客户端,通过 mcp-remote 桥接:
{
"mcpServers": {
"billdog": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://api.billdog.io/mcp"]
}
}
}
使用 BillDog 登录
该服务使用 OAuth 2.1、PKCE 和动态客户端注册,因此你的客户端会自行注册并完成身份验证:
- 客户端从服务的
401响应中发现授权服务器(RFC 9728)。 - 客户端注册自身,并在浏览器中打开 BillDog。
- 你登录、选择一个项目,并选择允许 Agent 执行的操作。
- Agent 会获得一个仅适用于该项目的短期令牌。令牌会自动刷新,你也可以随时断开连接。
改用密钥
对于脚本、CI 或不支持 OAuth 的客户端,请在 仪表板 → AI 助手 (MCP) 密钥 创建密钥。MCP 密钥以 bd_mcp_ 开头,且为只读。
claude mcp add --transport http billdog https://api.billdog.io/mcp \
--header "Authorization: Bearer bd_mcp_YOUR_KEY"
重要
bd_public_…和bd_secret_…密钥是供应用使用的 SDK 密钥,不能用于此处。如果你粘贴了这类密钥,服务会提示你。
你可以提出的问题
“为什么我的付费墙没有在 iOS 上显示?” →
get_setup_status和resolve_placement_preview会准确显示缺少哪些内容,并提供控制面板链接。
“设置月度和年度 Pro 套餐,提供 7 天试用期,并创建一个
onboardingplacement。” →apply_setup_plan一步创建产品、权益、产品方案和 placement。所有内容初始均为未启用状态。
“从模板为年度套餐设计一个深色付费墙,给我看看预览,然后发布。” →
list_templates→create_paywall_from_template→update_paywall→preview_paywall→publish_paywall
“上个月的 MRR 是多少?哪个付费墙的转化效果最好?” →
run_analytics_query
“将这个应用从 RevenueCat 迁移过来。” →
billdog-migration技能(Claude Code 插件)会重写调用位置并重新创建产品目录。
工具
27 个只读工具 · 28 个写入工具 · 发布意味着会更改实时用户看到的内容,并需要发布权限。
机器可读列表:tools.json。
设置与诊断
| 工具 | 访问权限 | 功能 |
|---|---|---|
get_setup_status | 只读 | 检查此项目的 BillDog 设置状态。 |
get_project | 只读 | 获取项目元数据,包括 bundle ID、包名称和已注册域名。 |
get_recent_sdk_activity | 只读 | 应用是否正在发送数据?对于最近的 window_hours 小时(默认 24 小时),返回按名称统计的事件、购买和会话回放,并区分沙盒与生产环境,同时分别提供 has_traffic。 |
resolve_placement_preview | 只读 | 试运行预览客户端 SDK 解析 placement 时会收到的内容。 |
分析
| 工具 | 访问权限 | 功能 |
|---|---|---|
run_analytics_query | 只读 | 运行一份分析报告。 |
discover_schema | 只读 | 返回完整的 BillDog 分析架构——项目支持的每一种(来源、指标)组合,并用一行说明各自返回的内容。 |
list_event_names | 只读 | 列出此项目在最近 days 天(默认 30 天)收到的事件名称,按频率从高到低排列,并显示每个事件的计数和独立用户数。 |
list_cohorts | 只读 | 列出此项目保存的群组。 |
list_saved_views | 只读 | 列出此项目保存的分析视图,并说明每个视图的查询内容(来源、指标、维度、筛选条件、日期范围、细分)。 |
get_saved_view_results | 只读 | 重新运行已保存的视图并返回结果。 |
目录:产品、权益、产品方案、展示位
| 工具 | 访问权限 | 功能说明 |
|---|---|---|
list_products | read | 列出此项目目录中配置的所有产品,包括其标识符、产品类型、订阅时长和商店映射 ID。 |
list_entitlements | read | 列出此项目中的所有权益及与每项权益关联的产品 ID。 |
list_offerings | read | 列出此项目中的所有产品方案,显示其套餐、关联产品以及默认/当前状态。 |
list_placements | read | 列出此项目中的所有展示位,包括访问限制设置和关联的产品方案。 |
apply_setup_plan | write · publish | 以声明式方式评估并执行完整的变现目录设置(产品、权益、产品方案、套餐、展示位)。 |
create_product | write | 在项目目录中创建商店产品(订阅或应用内购买)。 |
update_product | write | 更新此项目中现有产品的元数据、商店 ID 或展示价格。 |
create_entitlement | write | 在目录中创建新权益,并可选择关联产品。 |
update_entitlement | write | 更新现有权益的显示名称、描述或关联产品(product_ids 会替换整个列表)。 |
set_entitlement_products | write | 设置授予权益的明确产品 ID 列表(替换整个列表;仅修改发生变化的关联)。 |
create_offering | write | 创建包含套餐的新产品方案。 |
manage_offering_packages | write | 在现有产品方案中添加或移除套餐。 |
set_current_offering | write · publish | 将某个产品方案设为项目的当前产品方案(以原子方式将其他方案设为非当前)。 |
create_placement | write | 在项目中创建新展示位。 |
link_placement | write · publish | 按优先级顺序将一个或多个产品方案关联到展示位(替换其所有关联)。 |
付费墙
| 工具 | 访问权限 | 功能说明 |
|---|---|---|
list_paywalls | read | 列出此项目中的所有付费墙,包括启用状态、付费墙类型和发布时间戳。 |
get_paywall | read | 按 UUID 或标识符获取付费墙信息:状态、布局、产品方案、颜色和 copy_outline——其中包含每段文本和每个按钮及其组件 ID,可用于 update_paywall 的 patch.copy。include_config 会返回完整的草稿和已发布配置(内容较多)。 |
list_templates | read | 列出 BillDog 模板目录中的可用付费墙和引导流程模板。 |
create_paywall_from_template | write | 根据现有模板在项目中创建新的付费墙。 |
design_paywall | write | 设计付费墙并将其保存为未启用的草稿。 |
update_paywall | write | 对付费墙草稿应用受限的补丁更新(文案、标题、副标题、CTA 文本、品牌颜色、产品方案绑定)。 |
preview_paywall | read | 检查付费墙发布条件(验证组件、绑定关系和产品方案),并生成安全的短时预览链接和令牌。 |
publish_paywall | write · publish | 发布付费墙草稿,使其可通过 SDK 提供。 |
unpublish_paywall | write · publish | 停用已启用的付费墙。 |
实验与功能标记
| 工具 | 访问权限 | 功能说明 |
|---|---|---|
list_experiments | 读取 | 列出项目的实验及其状态、当前面向哪些设备(实验变体、已发布的胜出变体,或仅对照组),以及每个变体的付费墙和流量占比。 |
create_experiment | 写入 | 创建一个状态为 DRAFT 的付费墙 A/B 实验:每个变体会在应用中的同一位置显示不同的付费墙。 |
start_experiment | 写入 · 发布 | 启动(或恢复)实验:触达其实验付费墙的用户将在各变体间分流。 |
stop_experiment | 写入 · 发布 | 停止实验:暂停或结束实验(所有人都看到对照组付费墙),或结束实验并向所有人发布胜出的变体。 |
get_experiment_results | 读取 | 显示实验整个运行期间各变体的结果:用户数、转化数、转化率、每用户收入、相对对照组的提升、p 值和显著性(每组有 100+ 名用户且 p < 0.05),以及结论:胜出、落败、继续运行或无数据。 |
list_feature_flags | 读取 | 列出项目的功能标记:键、开启/关闭状态、发布百分比、变体,以及是否有发布条件(受众规则,在控制面板中编辑)。 |
create_feature_flag | 写入 | 创建一个关闭的功能标记:在 update_feature_flag 将其开启之前,所有用户都会获得 false。 |
update_feature_flag | 写入 · 发布 | 开启(启动)或关闭(停止)功能标记、更改其发布百分比或变体,或重命名。 |
get_feature_flag_results | 读取 | 统计过去 N 天(默认 30 天,最多 90 天)内,标记各值对应的用户数和评估次数;数据来自 SDK 发送的 $feature_flag_called 事件。 |
项目与 SDK 密钥
| 工具 | 访问权限 | 功能说明 |
|---|---|---|
list_projects | 读取 | 列出经过身份验证的用户可访问的所有 BillDog 项目,并标明当前活跃项目、捆绑包 ID 和平台。 |
create_project | 写入 | 为经过身份验证的用户创建一个新的 BillDog 项目,并指定名称、捆绑包 ID 和平台。 |
create_public_sdk_key | 写入 | 为移动应用和 Web 应用生成可在客户端安全使用的公开 SDK 密钥(bd_public_live_... 或 bd_public_test_...)。 |
use_project | 写入 | 将此连接切换到它可以使用的另一个项目:连接时选择的项目,或通过 create_project 创建的项目。 |
用户互动:调查问卷、营销活动、旅程、消息
| 工具 | 访问权限 | 功能说明 |
|---|---|---|
list_surveys | 读取 | 列出为此项目配置的所有多页调查问卷和微型调查问卷墙。 |
create_survey | 写入 | 将调查问卷及其问题保存为 DRAFT(在控制面板中激活)。 |
list_campaigns | 读取 | 列出为此项目配置的所有营销和用户互动营销活动。 |
create_campaign | 写入 | 将营销活动保存为 DRAFT。 |
list_journeys | 读取 | 列出所有客户引导和用户互动旅程,以及各自的步骤顺序。 |
create_journey | 写入 | 将线性旅程保存为 DRAFT(在控制面板中激活;在其画布上构建分支)。 |
list_message_templates | 读取 | 列出项目的消息模板(推送、应用内、电子邮件、SMS),包括标题和正文,与控制面板「模板」库中的显示一致。 |
create_message_template | 写入 | 保存可重复使用的推送或应用内消息模板(与控制面板「模板」库中的同类模板一致)。 |
权限与安全
| 保证 | 方式 |
|---|---|
| 每个连接对应一个项目 | 项目由你的登录或密钥固定。工具参数中的项目 ID 会被忽略,因此 Agent 无法读取其他项目。 |
| 由你选择访问权限 | 在授权屏幕上选择:只读、读取 + 创建/编辑,或读取 + 创建/编辑 + 发布。密钥始终为只读。 |
| 不会意外上线 | 新产品、服务项、展示位和付费墙默认处于未激活状态或草稿状态。发布、设置当前服务项,以及将展示位关联到有实时流量的内容,都需要发布权限。 |
| 不含客户联系信息 | 每个响应都会省略电子邮件、电话、显示名称和自定义属性,并说明这些信息已省略。 |
| 可审计 | 每次写入都会记录在项目的审计日志中,并注明执行操作的 Agent 和连接该 Agent 的用户。 |
| 可撤销 | 可随时在控制面板中断开 Agent,或撤销密钥。 |
Claude Code 插件
/plugin install billdog@billdog 会为你安装服务和两个技能:
billdog-integration:将 SDK 添加到应用(Web、React Native、Expo、iOS、Android),或诊断已接入 SDK 的应用。内容涵盖标识符陷阱(@billdog.io,而不是@billdog;io.billdog,而不是com.billdog)、配置、展示位和验证清单。billdog-migration:帮助应用从 RevenueCat、Superwall、Adapty、Mixpanel、Amplitude、OneSignal、Braze、Typeform 或 SurveyMonkey 迁移。涵盖代码和数据。
故障排除
| 消息 | 解决方法 |
|---|---|
| "This is a BillDog SDK key…" | 你粘贴的是 bd_public_/bd_secret_ 密钥。请使用“使用 BillDog 登录”,或创建 bd_mcp_ 密钥。 |
| "This key has MCP access turned off" | 在密钥的 MCP keys 页面中开启 MCP 访问权限。 |
…lacks the mcp:write scope | 密钥为只读。请使用“使用 BillDog 登录”进行连接,并允许创建和编辑配置(若需要 mcp:publish,则允许发布并上线)。 |
| 浏览器未打开 | 在 Claude Code 中运行 /mcp 并选择进行身份验证,或重新连接该连接器。 |
| "Unknown or revoked client_id" | 从客户端中移除 BillDog 服务,然后重新添加。 |
仓库布局
仓库根目录中有一个插件,提供两种格式,方便所有客户端读取:
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 config
server.json official MCP Registry entry
smithery.yaml Smithery (stdio bridge via mcp-remote)
glama.json Glama ownership claim
tools.json all 55 tools, grouped, with access level
assets/icon.png listing icon
链接
- 📖 文档:billdog.io/docs/mcp-server
- 🧭 面向 Agent 的完整 SDK 参考:billdog.io/SKILL.md
- 🐛 问题反馈:github.com/billdogai/billdog-mcp/issues
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。