mcpField
P
Passive Cost Memory for Agent Development

Passive Cost Memory for Agent Development

本地服务
github.com/RaleighSFAI 与智能体031 周前更新

关于 Passive Cost Memory for Agent Development

burnwatch 跟踪 AI 辅助开发项目中的付费服务并估算开发成本,帮助开发者和编码 Agent 纳入预算考量。它结合服务检测、账单清单、基于代码的用量预测,并通过 MCP 服务提供支出数据和分析工具。

主要功能

  1. 01从项目文件和提示词检测付费服务
  2. 02跟踪支出及预算置信等级
  3. 03根据代码模式和计划任务预测成本
  4. 04使用 JSON 账单清单描述计费模式
  5. 05通过 MCP 提供支出与成本分析工具

适用场景

  1. 01查看项目支出和预算状态
  2. 02估算新增 SDK 调用或定时任务的成本
  3. 03发现新引入的付费服务
  4. 04向支持 MCP 的大模型提供服务支出数据

MCP 相关

burnwatch 内置 MCP 服务,提供支出概览、单项服务支出、成本影响分析、用量、账单清单和服务检测等工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

burnwatch

你的编码效率提升了 10 倍,花费也可能增加了 10 倍。

为 AI 辅助开发提供被动式成本记忆。

版本 下载量 许可证 零运行时依赖


╔══════════════════════════════════════════════════════════════
║  BURNWATCH — your-app — March 2026
╠══════════════════════════════════════════════════════════════
║  Service        Spend       Conf      Budget  Left
║  ──────────────────────────────────────────────────────────
║  anthropic      $47.20      ✅ LIVE    $100    53%
║  vercel         $20.00      🟡 CALC    $20     flat — on plan
║  scrapfly       $127.00     ✅ LIVE    $100    ⚠️ OVER
║  browserbase    ~$12.40     ✅ LIVE    $99     87%
║  supabase       $25.00      🟡 CALC    $25     flat — on plan
║  posthog        $0.00       🟡 CALC    $0      —
║    ↳ 234K/1M events (23%)
╠══════════════════════════════════════════════════════════════
║  TOTAL: ~$231.60   Untracked: 0 ✅   Est margin: ±$12
║  🚨  scrapfly 127% OVER BUDGET - review before use
╚══════════════════════════════════════════════════════════════

它会自动显示。每次会话都会显示。无需查看仪表板,也不用记住打开哪些标签页。只需在你已经工作的地方,静静地提醒你留意成本。


问题

通常事情是这样的。

你正沉浸在心流状态中。Claude 正在编写功能,你在批准,代码库不断增长,一切都让人感觉棒极了。周二,你添加了一个 Scrapfly 密钥来抓取网页。周三,你接入了 Browserbase 来自动化浏览器。到了周五,你的 Agent 已经构建了一个 cron 任务,每隔一天抓取 1,000 个竞争对手页面。代码运行得完美无缺。

三周后,账单来了。结果“运行得完美无缺”每月要花 $340,而你注册的是 $99 套餐。

这就是 AI 辅助开发带来的新常态。那些向你收费的服务,正被一个完全不了解其成本的 Agent 接入。它不知道 Scrapfly 的反机器人绕过功能会消耗 25 倍的基础额度。它不知道 Anthropic Opus 的每个 token 成本是 Haiku 的 15 倍。它也不知道你使用的是免费套餐,并且硬性上限为 1,000 次 API 调用。

最隐蔽的是?这些服务在注册时看起来大多很便宜。$20/月。$99/月。固定费用,不用担心。但定价文档第三页还藏着超额使用费率。你离开注册页面时还觉得 $20 很划算,等到回来时,月账单已经高达数百美元,因为你超出了包含的用量,却没人提醒你。

78% 的 IT 负责人在过去 12 个月内遇到过与按用量计费或 AI 定价相关的意外费用(Zylo 2026 SaaS Management Index)。

burnwatch 介于你的 Agent 和钱包之间。它监视每次文件保存,了解各种计费模式,并在损失造成之前提醒你。


安装

npx burnwatch init

就这么简单。burnwatch 会扫描你的项目、检测付费服务并注册钩子。下次会话时,你就能看到自己的支出。

要求: Node.js 18+ · 适用于 Claude Code、MCP 或独立 CLI


工作原理

1. 检测

运行 npx burnwatch init 后,burnwatch 会立即扫描以下四个位置:

检查内容示例时机
package.json依赖项中的 "@anthropic-ai/sdk"初始化、文件变更
环境变量.env 中的 SCRAPFLY_KEY每次会话开始时
导入语句import { Resend } from "resend"初始化、文件变更
提示词提及"use Browserbase to scrape..."每条提示词
🔍 Scanning project for paid services...

   Found 6 paid services:

   ● Anthropic (Claude)        ✅ LIVE API available
     Detected via: package.json, env vars, imports
   ● Scrapfly                  ✅ LIVE API available
     Detected via: env vars, imports
   ● Browserbase               ✅ LIVE API available
     Detected via: package.json, imports
   ● Supabase                  ✅ LIVE API available
     Detected via: package.json, env vars
   ● Vercel                    🟡 Flat plan
     Detected via: package.json
   ● PostHog                   🟡 Free tier
     Detected via: package.json, imports

🔗 Registering hooks...
✅ burnwatch initialized!
2. 访谈

无需 CLI 标志,也无需 YAML 配置文件。只需和你的 Agent 对话:

You: "Let's set up burnwatch for this project"

你的 Agent 会进行对话式访谈,按风险类别逐一询问每项服务(先是大模型,然后是按用量计费的服务,最后是固定费用的基础设施):

Agent: I found 6 services. Let me walk through each one.

       Anthropic — I probed your API key. You're on API Usage,
       $47.23 spent this billing period. Default budget: $100/mo.
       Does that feel right?

You:   Yeah that's fine.

Agent: ✅ Anthropic set to $100/mo budget.

       Scrapfly — Probe detected Pro plan (1M credits).
       You've used 742K/1M credits. Budget: $100/mo.

You:   Keep it.

Agent: ✅ Scrapfly set to Pro, $100/mo.

       Vercel — You're on Pro ($20/mo flat).
       PostHog — Free tier.
       I'll set these as flat plans with matching budgets.
       Skip?

You:   Yep.

Agent: ✅ Vercel $20, PostHog $0 — all set.

每个回答都会立即写入。整个过程大约需要 90 秒。

3. 计费清单

精彩之处来了。每个受跟踪的服务都有一份计费清单,这是由社区维护的 JSON 文件,其中编码了完整的定价模型:

{
  "serviceId": "browserbase",
  "billingDimensions": [
    {
      "id": "browser_hours",
      "name": "Browser hours",
      "unit": "hour",
      "ratePerUnit": 0.10,
      "ratePer": 1,
      "variants": [
        { "id": "standard", "ratePerUnit": 0.10, "codePatterns": ["createSession"] }
      ]
    },
    {
      "id": "proxy_bandwidth",
      "name": "Proxy bandwidth",
      "unit": "GB",
      "ratePerUnit": 10.00,
      "ratePer": 1
    }
  ],
  "plans": [
    { "id": "startup", "monthlyBase": 99, "included": { "browser_hours": 500 } }
  ],
  "costMultipliers": [
    { "id": "long_session", "factor": 10, "codePatterns": ["keepAlive", "waitForTimeout"] }
  ]
}

这不是猜测。burnwatch 知道 Browserbase 按浏览器小时计费(而非按会话计费),Startup 计划包含 500 小时,超额部分按 $0.10/小时计费,而使用 keepAlive 的长时间运行会话可能使成本增加 10 倍。它知道 Anthropic Opus 的价格是 Sonnet 的 5 倍。它也知道 Scrapfly 的反机器人绕过功能会消耗 5-25 倍的基础额度。

12 个服务已附带经过生产环境验证的清单。添加新服务只需一个 JSON 文件。

4. 被动监控

你编写代码,burnwatch 负责监控。每次保存文件时,系统都会在后台静默执行三项操作:

成本影响分析会扫描更改的文件,查找 SDK 调用点,检测乘数(循环、.map()、Promise.all、cron 计划),解析变量循环边界,匹配代码中的模型变体,并预测月度成本:

[BURNWATCH] ⚠️ Cost impact estimate for scraper.ts
  Browserbase: ~15,000 calls/mo → $37-$375/mo (Long-running sessions)
  Current: $12/$99 budget (12%)

用量跟踪会增量更新,跟踪项目中的每个调用点并预测超额用量:

[BURNWATCH] ⚠️ Browserbase utilization: ~750 browser-hours/mo
  (plan includes 500) → ~$25.00/mo overage

新服务检测会在文件更改引入 burnwatch 尚未识别的服务时触发:

[BURNWATCH] 🆕 New paid service detected: twilio
  Run 'burnwatch add twilio' to configure budget and tracking.
5. 干预(真正帮你省钱的部分)

下面是关键场景。你已经进行了五次会话,写了 4,000 行代码。你让 Claude 构建一个网页抓取工具:

You: "Create a scraper that uses Browserbase to scrape 1000 competitor
      pages every other day on a cron job"

Claude 编写代码。文件一保存,burnwatch 就会触发:

[BURNWATCH] ⚠️ Cost impact estimate for scraper.ts
  Browserbase: ~15,000 sessions/mo → $37-$375/mo (Long-running sessions)
  Current: $12/$99 budget (12%)

[BURNWATCH] ⚠️ Browserbase utilization: ~750 browser-hours/mo
  (plan includes 500) → ~$25.00/mo overage

Claude 会在自己的上下文中看到这条信息,因为它被注入为系统消息。它不会等你询问成本,而是主动回应:

Agent: I built the scraper, but heads up — burnwatch flagged this:

       At 1,000 pages every other day, you're looking at ~750
       browser-hours/month. Your Startup plan includes 500 hours,
       so you'd hit ~$25/mo in overage on top of the $99 base.

       A few options:
       1. Reduce to 500 pages per run (stays within plan)
       2. Use Playwright locally for non-JS pages (free)
       3. Batch into fewer longer sessions to reduce overhead

       Want me to adjust?

**没有 burnwatch,就不会有这段对话。**没有它,Claude 会编写抓取工具,你会将其部署上线,三周后看到账单时才发现超额费用。那时 cron 作业已经一直在正常运行了。


乘数检测

burnwatch 不只是统计 API 调用次数,还会读取调用周围的代码结构。

模式示例检测结果
字面循环边界for (let i = 0; i < 1000; i++)乘数:1000
变量循环边界const PAGES = 1000; for (i < PAGES)将 PAGES 解析为 1000
数组迭代urls.map(async (u) => scrape(u)),其中 urls = Array(500)乘数:500
for...offor (const page of pages),其中 pages 大小已知已解析大小
Promise.allPromise.all(urls.map(...))不会与 .map() 重复计数
命名常量const NUM_REQUESTS = 5000检测为乘数提示
Cron:每 5 分钟// every 5 minutes 或 */5 * * *乘数:每月 8640 次
Cron:每隔一天// every other day 或 */2乘数:每月 15 次
Cron:每周// every week 或 0 0 * * 0乘数:每月 4 次
批次大小const batch_size = 50乘数:50

如果计费清单包含带有代码模式的成本乘数(例如 Scrapfly 中用于反机器人绕过的 asp.*true),系统也会检测到它们,从而提供成本范围,而不是单一数字。


置信度等级

每项支出数据都带有置信度标记。burnwatch 从不假装自己知道得比实际更多。

标记含义来源
✅ LIVE真实账单 API 数据使用你的密钥轮询服务 API
🟡 CALC固定月度成本由你输入计划费用
🟠 EST基于监测的估算值用量信号 + 定价公式
🔴 BLIND已检测,但未跟踪服务存在,但没有配置

摘要始终会显示未跟踪数量。你不会看到一个表面整洁、却隐藏着意外的仪表板。


## 支持的服务
服务层级计费模式可能带来的开销
Anthropic✅ LIVE按 Token 计费Opus 的单 Token 价格是 Haiku 的 15 倍。模型由你的 Agent 选择。
OpenAI✅ LIVE按 Token 计费GPT-4o-mini 比 o1 便宜 66 倍。模型选择影响很大。
Scrapfly✅ LIVE积分池绕过反机器人机制会消耗 5–25 倍基础积分,而且不会提示。
Browserbase✅ LIVE按浏览器小时计费按时间而非会话计费。会话越长,费用越高。
Vercel✅ LIVE计算资源 + 超额费用函数 GB 小时数是 Vercel 账单中最常见的意外开销。
Supabase✅ LIVE分层计费 + 超额费用向量嵌入会让数据库大小快速增长。
Google Gemini🟡 CALC按 Token 计费免费层很慷慨,但 Flash 2.0 便宜到让人忘了查看用量。
Voyage AI🟡 CALC按 Token 计费仅用于嵌入。费用随语料库大小增长,而非查询次数。
Upstash🟠 EST按命令计费每 10 万条命令 $0.20。免费层:每天 1 万条。很容易忘记它是按量计费的。
Resend🟠 EST按邮件计费Pro 超额部分每 1,000 封邮件收费 $0.90。应用走红之前都没问题。
Inngest🟡 CALC按执行次数计费运行和步骤都会计数。一个包含 5 个步骤的函数算 6 次执行。
PostHog🟡 CALC按事件计费每月免费 100 万个事件。听起来很多,直到不够用。

计费清单

billing/ 目录中每项服务都有一个 JSON 文件。每份清单都包含:

  • 计费维度:服务收费所依据的每个维度(Token、会话、带宽等)
  • 变体:每个模型的费率,以及用于自动检测的正则表达式代码模式(Haiku、Sonnet 或 Opus)
  • 套餐:包含的内容、超额费率、硬性上限
  • 费用倍增项:会使费用倍增的功能标记(绕过反机器人机制、JS 渲染、隐身模式)
  • 典型开发用量:用于更准确预测的实际用量模式
添加新服务

在 billing/ 中添加一个 JSON 文件:

{
  "$schema": "./billing.schema.json",
  "serviceId": "my-service",
  "name": "My Service",
  "lastVerified": "2026-03-25",
  "pricingUrl": "https://my-service.com/pricing",
  "billingDimensions": [
    {
      "id": "api_calls",
      "name": "API calls",
      "unit": "call",
      "ratePerUnit": 1.00,
      "ratePer": 1000
    }
  ],
  "plans": [
    {
      "id": "pro",
      "name": "Pro ($29/mo)",
      "monthlyBase": 29,
      "included": { "api_calls": 50000 },
      "overageRates": { "api_calls": 1.00 }
    }
  ]
}

无需更改代码。费用引擎会自动读取该文件。


MCP 服务

burnwatch 提供 MCP 服务,可与任何支持 MCP 的大模型搭配使用:

claude mcp add burnwatch -- node ./node_modules/burnwatch/dist/mcp-server.js

提供的工具:

工具用途
get_spend_brief显示完整支出表和提醒
get_service_spend查看某项服务的详细信息
analyze_cost_impact分析文件中会影响费用的 SDK 调用
get_utilization查看项目范围的用量和超额费用预测
get_billing_manifest获取任意服务的原始计费清单
detect_paid_services扫描项目中的付费服务
list_registry_services列出注册表中的所有服务

Claude Code 集成

burnwatch 以 Claude Code 钩子的形式运行,这些后台脚本会在会话生命周期事件触发时执行:

钩子事件功能
会话开始新会话或恢复会话轮询计费 API,生成支出摘要
提交提示词你输入提示词检测服务提及,并注入支出卡片
文件更改编写或编辑代码分析费用影响、检测新服务、更新用量
会话结束会话结束将支出账本写入磁盘

burnwatch 还会安装三个 Agent 技能:

  • /setup-burnwatch:引导式入门
  • /burnwatch-interview:按服务逐项进行对话式配置
  • /spend:快速检查支出(也可使用 /spend scrapfly 检查单项服务)

CLI 参考

burnwatch init                              Initialize in current project
burnwatch setup                             Init + auto-configure all detected services
burnwatch add <service> [options]           Register a service for tracking
burnwatch configure [options]               Update service config (plan, budget, key)
burnwatch interview --json                  Export current state as JSON (for agent use)
burnwatch status                            Show current spend brief
burnwatch scan                              Full project utilization scan
burnwatch services                          List all services in registry
burnwatch reconcile                         Scan for untracked services
burnwatch version                           Show version

配置与安全

凭据不会存放在项目目录中。

~/.config/burnwatch/
  config.json              API keys, tokens (chmod 600, never in git)

your-project/.burnwatch/
  config.json              Services, budgets, detection history
  spend-ledger.md          Human-readable spend report (git-committable)
  data/
    utilization.json       Code-derived usage projections
    events.jsonl           Append-only event log
    cache/                 Billing API response cache
    snapshots/             Point-in-time spend snapshots

## 贡献

最快的贡献方式:添加计费清单。

  1. Fork 仓库
  2. 按照 billing/billing.schema.json 创建 billing/<service-id>.json
  3. 添加计费维度、套餐,最好也包含成本乘数
  4. 对照服务的定价页面核实费率
  5. 提交 PR

你也可以在 registry.json 中添加服务及其检测模式,或改进成本影响乘数检测。


许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

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

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