MCP成本跟踪器和路由器
npm mcp-cost-tracker-router 包裹
MCP代理工作流程的本地优先成本意识。令牌计数是使用js-tiktoken离线计算的-没有代理,没有API往返,没有离开机器的支出数据。当成本攀升时,路线建议会在发票到达之前向您推荐更便宜的型号。
主要特点
- 每个工具的成本明细:查看哪些工具调用消耗了最多的令牌和预算。
- 预算警报:设置会话支出阈值,在超过阈值之前,会收到80%和100%的警告。
- 离线代币计数:使用js-tiktoken进行准确计数-不需要API调用。
- 模型路由建议:为当前任务类型推荐更便宜的模型(建议,未经选择不得执行)。
- 多供应商定价:从一个可配置的定价表中跟踪Claude、OpenAI和Gemini模型的成本。
- 消费历史:按模型或工具查询每日、每周和每月总计。
- 项目成本分配:标记指定项目的会话并生成退款报告。
- HTML支出报告:导出一个包含图表和预算状态的独立HTML报告。
- 审核日志:只附加每个预算执行决定的日志。
为什么这比基于代理的成本跟踪器更重要?
大多数成本跟踪工具的工作方式是通过服务器路由所有API流量,并在服务器端测量令牌。这意味着您的提示和响应会传输到第三方服务,您依赖于它们的正常运行时间。
| mcp成本跟踪器路由器 | 基于代理的跟踪器(Helicone、LLMonitor等) | |
|---|---|---|
| 令牌计数 | 通过js-tiktoken离线--无网络调用 | 流量代理后服务器端计数 |
| 数据驻留 | 仅限本地SQLite | 提示+响应通过供应商服务器传递 |
| 模型路由 | 内置 suggest_model_routing 工具 | 很少包含;通常是单独的付费层 |
| 多提供商 | Claude、OpenAI、Gemini在一个定价表中 | 通常是单个提供商或需要单独设置 |
| 正常运行时间依赖性 | 无--完全脱机 | 如果代理关闭,则中断 |
如果您的提示包含敏感信息,或者您无法通过第三方路由流量,那么这是正确的工具。如果你需要一个带有团队共享的托管仪表板,基于代理的服务可能更适合你。
免责声明
mcp-cost-tracker-router 在SQLite本地存储工具调用元数据(令牌计数、模型名称、时间戳)。它不存储提示或响应内容。成本计算是基于当地定价表的估计,可能与您的提供商的发票不完全匹配。
需求
- Node.js v20.19或更新版本。
- npm。
入门
将以下配置添加到MCP客户端:
{
"mcpServers": {
"cost-tracker": {
"command": "npx",
"args": ["-y", "mcp-cost-tracker-router@latest"]
}
}
}要设置会话预算警报,请执行以下操作:
{
"mcpServers": {
"cost-tracker": {
"command": "npx",
"args": ["-y", "mcp-cost-tracker-router@latest", "--budget-alert=5.00"]
}
}
}MCP客户端配置
放大器·克劳德码·克莱恩·光标·VS码·风帆·泽德
您的第一个提示
在MCP客户端中输入以下内容以验证一切正常:
How much has this session cost so far?您的客户应返回当前会话的令牌和美元成本摘要。
工具
会话(4个工具)
get_session_cost--返回当前会话的令牌总计和美元成本估算。只读。get_tool_costs--返回会话的每个工具成本明细,按成本降序排列。只读。reset_session--开始新的成本跟踪会话。历史记录中保留了以前的会话数据。record_usage--记录工具调用的令牌使用情况。拿tool_name,model(可选),input_tokens,以及output_tokens。如果达到阈值的80%,则发出预算警告通知。
预算和路线(3个工具)
set_budget_alert--以美元设置预算阈值(threshold_usd).在阈值的80%和100%时发出警告。与...一起使用--enforce-budget阻止超过限制的呼叫。suggest_model_routing--按任务类型推荐启发式模型。拿task_description可选constraints.max_cost_usd.返回带有推理和估计成本的推荐模型。check_routing_policy--检查在路由策略下是否允许给定任务类型使用模型。拿task_type和model.
历史和报告(4个工具)
get_spend_history--查询按以下方式汇总的历史支出period(day/week/month).按型号和工具返回细分。只读。estimate_workflow_cost--多步骤工作流的预运行成本估算。需要一个steps阵列与tool_name,estimated_input_tokens,estimated_output_tokens,可选model。只读。export_spend_report--生成一个包含会话细分、历史支出、模型成本比较和预算状态的单文件HTML支出报告。只读。export_budget_audit--导出预算执行决策的审计日志。接受可选from_date,to_date,以及format(json/csv).只读。
项目分配(4个工具)
set_project--使用可选选项创建或更新项目budget_usd.需要project_name.tag_session--用标签标记当前会话project_name用于成本分配。get_project_costs--获取项目的成本报告。拿project_name可选since(ISO日期)。只读。export_chargeback--生成内部计费的退款报告。拿from_date,to_date,可选group_by(project/session),可选format(json/csv).只读。
配置
--budget-alert
会话支出阈值(美元)。当会话成本达到80%时,会返回警告,当会话成本再次达到此阈值的100%时,会再次返回警告。
类型: number
--db / --db-path
用于存储成本历史的SQLite数据库文件的路径。
类型: string 违约: ~/.mcp/costs.db
--pricing-table
包含自定义模型定价($/1K代币)的JSON文件的路径。与内置表合并;缺失的模型又回到了默认状态。
类型: string
--default-model
模型名称,用于在无法从上下文中推断出模型时将成本归因于此。
类型: string 违约: claude-sonnet-4-6
--enforce-budget
阻止可能导致会话超过预算警报阈值的工具调用。需要 --budget-alert 待设定。
类型: boolean 违约: false
--http-port
使用Streamable HTTP传输而不是stdio在HTTP模式下启动。可用于在团队中共享单个成本跟踪实例。
类型: number 默认值:禁用(使用stdio)
通过传递旗帜 args JSON配置中的属性:
{
"mcpServers": {
"cost-tracker": {
"command": "npx",
"args": [
"-y",
"mcp-cost-tracker-router@latest",
"--budget-alert=2.00",
"--enforce-budget"
]
}
}
}支持的型号和定价
内置定价表(每1K代币美元):
| 模型 | 输入 | 输出 |
|---|---|---|
| claude-opus-4-6 | 0.0150美元 | 0.0750美元 |
| claude-sonnet-4-6 | 0.0030美元 | 0.0150美元 |
| claude-haiku-4-5 | 0.0008美元 | 0.0040美元 |
| gpt-4o | 0.0025美元 | 0.0100美元 |
| gpt-4o-mini | 0.000150美元 | 0.000600美元 |
| 双子座-1.5-pro | 0.001250美元 | 0.005000美元 |
| 双生1.5鞭 | 0.000075美元 | 0.000300美元 |
| 双子座2.0闪光 | 0.000100美元 | 0.000400美元 |
用以下内容覆盖单个型号的价格 --pricing-table.所有费用都是估计数。
验证
在发布新版本之前,使用MCP Inspector验证服务器,以确认所有工具都已正确公开,协议握手成功。
交互式用户界面 (打开浏览器):
npm run build && npm run inspectCLI模式 (脚本/CI友好):
# List all tools
npx @modelcontextprotocol/inspector --cli node dist/index.js --method tools/list
# List resources and prompts
npx @modelcontextprotocol/inspector --cli node dist/index.js --method resources/list
npx @modelcontextprotocol/inspector --cli node dist/index.js --method prompts/list
# Call a read-only tool
npx @modelcontextprotocol/inspector --cli node dist/index.js \
--method tools/call --tool-name get_session_cost
# Call record_usage with arguments
npx @modelcontextprotocol/inspector --cli node dist/index.js \
--method tools/call --tool-name record_usage \
--tool-arg tool_name=my_tool --tool-arg input_tokens=500 --tool-arg output_tokens=200在发布之前运行,以捕获工具注册和运行时启动中的回归。
贡献
更新 src/pricing.ts 当新车型发布时。所有成本计算更改必须包括具有已知令牌计数和预期美元值的单元测试。在线路由建议 src/tools/routing.ts.
npm install && npm testMCP注册与市场
此插件可在以下网站上使用:
搜索 mcp-cost-tracker-router.
