让 LLM 自己查它自己的账单。
ccgauge 自带 Model Context Protocol 服务:ccgauge mcp。 接进 Claude Desktop、Cursor、Cline —— 任何懂 MCP 的客户端,然后问模型: "我这周 Opus 花了多少钱?" 不用截图、不用 SQL、不用粘贴。
1. 接进客户端
下面两段配置覆盖 ~95% 的 MCP 客户端。传输走 stdio JSON-RPC,不开端口、不放 socket 文件。 任何懂 MCP 的客户端都能读懂。
~/Library/Application Support/Claude/claude_desktop_config.json{
"mcpServers": {
"ccgauge": {
"command": "npx",
"args": ["-y", "ccgauge", "mcp"]
}
}
} ~/.cursor/mcp.json{
"mcp": {
"servers": {
"ccgauge": {
"command": "npx",
"args": ["-y", "ccgauge", "mcp"]
}
}
}
} 重启客户端,ccgauge 会出现在 MCP tool 选择器里,附带 8 个 tool。 服务在收到第一次请求时启动,并把 JSONL 索引写到独立的缓存文件 (~/.ccgauge/cache/index-mcp-v2.json),所以不会和仪表盘抢同一份磁盘索引。
2. 8 个 tool
每个 tool 都返回结构化 JSON。模型会根据你的问题自动选 tool,你不需要记名字。
usage_summary 一段区间内的总数(tokens / cost / 缓存节省 / 请求数)。可按 source / 模型 / 项目过滤。
usage_by_time 按时间桶(hour / day / week / month)的 tokens + 花费时间序列。
usage_by_model 按模型聚合的 tokens + cost,附带占总数比例。
usage_by_project 按 cwd 聚合的 tokens + cost。worktree 感知的项目名。
usage_by_session 按 session 拆分:标题、模型组合、耗时、花费。
daily_summary 某一天的总数 + 模型 Top + 项目 Top。每天复盘很顺手。
weekly_summary 某一周的总数 + 每日拆分。
recent_activity 最近 N 次 assistant 调用:时间戳 / 模型 / prompt 片段 / 花费。
3. 可以这样问
措辞比你想得宽松 —— 模型会把人话翻成 MCP tool 调用。下面是一些起手式:
-
"我这周 Opus 花了多少钱,按项目拆一下?"
用到:usage_by_project + 模型过滤
-
"把我 2026 年 5 月的 Codex 用量按天画出来。"
用到:usage_by_time,source=codex, gran=day
-
"今天哪些 session 用了最多 reasoning token?"
用到:usage_by_session 按 reasoning_tokens 排序
-
"上周三晚上 9 点到午夜我在干啥?"
用到:recent_activity 限定窗口
-
"我的 prompt caching 节省,月环比有提升吗?"
用到:daily_summary → weekly_summary 取 delta
-
"把我这个月的 AI 编程预算总结一段,我要放进文档。"
用到:usage_summary,range=本月
注意
- 依然 100% 本地。 MCP 服务读的是和仪表盘同一份 JSONL。LLM 客户端通过 stdio 向子进程发请求, 只有 LLM 本身给你回答时走它自己的 provider —— ccgauge 这一侧没有任何对外请求。
- 僵尸进程会污染缓存。
如果你看到"仪表盘数据不更新",跑一下
ps -ef | grep ccgauge把孤儿 MCP 进程杀掉。每个客户端理论上退出时会关掉它的子进程,但客户端崩溃时孤儿就留下了, 并且会继续往缓存里写。 - Reasoning token 对会发的模型会单独展示 (OpenAI o-系列和较新的 GPT 模型)。在 usage_summary 里以独立字段呈现。