关于 MCP Cost Optimizer
MCP Cost Optimizer 是用于分析标准化 LLM 使用记录并估算切换模型成本的本地 MCP 服务。它面向自行提供用量数据和定价的开发者与团队;计算只读,无需联网或 API 密钥。
主要功能
- 01估算单次请求成本
- 02汇总用量及各模型成本
- 03比较模型切换方案
- 04识别缺少定价的模型
- 05发现可考虑缓存的重复请求
适用场景
- 01审查每月 Agent 使用成本
- 02迁移模型前估算节省金额
- 03发现可考虑缓存的重复请求
- 04按项目或团队子集分析成本
MCP 相关
提供三个 MCP 工具,用于估算单次请求成本、分析使用记录和比较模型方案。工具接收结构化记录及自备定价,不访问文件或发起网络请求。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
3收录的工具列表 · 更新于 1 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| rates | object | 是 | |
| rates.asOf | string | 否 | |
| rates.models | object | 是 | |
| rates.currency | string | 是 | |
| record | object | 是 | |
| record.model | string | 是 | |
| record.inputTokens | integer | 是 | |
| record.requestHash | string | 否 | |
| record.outputTokens | any | 是 | |
| record.cachedInputTokens | any | 否 |
详细介绍
MCP 成本优化器
了解 LLM 调用的成本,以及切换模型能节省多少费用——本地 MCP 服务,无需 API 密钥。
从 AI Agent 的使用记录中找出超额支出。比较你正在考虑的每个模型的成本。依据实际数据而非猜测做出决策。
🚀 快速安装
Cursor
点击上方按钮即可一键安装到 Cursor,或者使用此深层链接:
cursor://anysphere.cursor-deeplink/mcp/install?name=cost-optimizer&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIm1jcC1jb3N0LW9wdGltaXplciJdfQ==
Claude Code
# Quick install
claude mcp add cost-optimizer -- npx -y mcp-cost-optimizer
# Or via marketplace
/plugin marketplace add petrovicistefan/mcp-cost-optimizer
/plugin install mcp-cost-optimizer@mcp-cost-optimizer
VS Code
或者手动添加到 .vscode/mcp.json:
{
"servers": {
"cost-optimizer": {
"type": "stdio",
"command": "npx",
"args": ["-y", "mcp-cost-optimizer"]
}
}
}
任意 MCP 客户端
npx -y mcp-cost-optimizer
其他客户端(Windsurf、Cline、Gemini CLI、Zed、Codex CLI)的详细设置说明,请参阅详细设置说明。
目录
快速入门
Claude Code 插件
/plugin marketplace add petrovicistefan/mcp-cost-optimizer
/plugin install mcp-cost-optimizer@mcp-cost-optimizer
任意 MCP 客户端
支持 Cursor、VS Code、Windsurf、Claude Desktop、Cline、Codex CLI、Zed 和 Gemini CLI。使用一条命令安装:
npx -y mcp-cost-optimizer
或者添加到 MCP 配置文件:
Claude Desktop、Cursor、Windsurf、Cline、Gemini CLI — claude_desktop_config.json、~/.cursor/mcp.json、~/.codeium/windsurf/mcp_config.json、Cline MCP 设置、~/.gemini/settings.json:
{
"mcpServers": {
"cost-optimizer": {
"command": "npx",
"args": ["-y", "mcp-cost-optimizer"]
}
}
}
VS Code / GitHub Copilot — .vscode/mcp.json:
{
"servers": {
"cost-optimizer": {
"type": "stdio",
"command": "npx",
"args": ["-y", "mcp-cost-optimizer"]
}
}
}
Zed — settings.json:
{
"context_servers": {
"cost-optimizer": {
"command": "npx",
"args": ["-y", "mcp-cost-optimizer"]
}
}
}
Codex CLI:
codex mcp add cost-optimizer -- npx -y mcp-cost-optimizer
⭐ 支持此项目
觉得这个 MCP 工具有用?为此仓库点个星!
GitHub 星标能帮助其他开发者发现此项目,也方便你之后再次找到它。感谢你支持开源!
演示

使用自定义定价分析多个模型的 LLM 用量
为什么选择 MCP Cost Optimizer?
你正在运行 AI Agent,也有使用情况日志。你可能会想:
- 花了多少钱? 分析标准化的使用记录,查看总成本、各模型的成本明细,以及哪些模型缺少定价数据。
- 如果切换模型会怎样? 比较迁移方案:保留 token 数量,更换模型,查看预计节省的费用(或增加的成本)。
- 我是否在重复发送相同请求? 如果提供请求哈希,就能找出有条件的响应缓存机会。
MCP Cost Optimizer 具有以下特点:
- 本地优先:无需 API 密钥或账户,也不会发送外部请求。你的使用数据保留在本机。
- 与提供商无关:可使用自己的定价表,适用于任何大模型提供商。
- 透明:所有计算都是确定性的。没有隐藏假设,也没有魔法。你提供价格,就能得到准确的估算。
示例提示词
安装后,可以尝试向 AI Agent 提问:
“使用我提供的费率分析这些标准化的使用记录。找出未知模型和重复请求,然后比较一种更便宜的模型。说明假设,不要更改生产路由。”
“我在 gpt-4o 和 claude-sonnet-4.5 上有 50,000 个请求。用这些费率估算成本,然后告诉我,如果将其中一半切换到 gpt-4o-mini,可以节省多少费用。”
“将我当前的模型用量与 claude-haiku-3-5 进行比较。如果迁移,每个月可以节省多少?”
工具
该服务提供三个用于成本分析的 MCP 工具:
| 工具 | 描述 | 输入 | 输出 |
|---|---|---|---|
estimate_llm_cost | 根据提供的每百万 token 费率,估算单次大模型请求的成本。输入 token 数包含缓存 token。 | record(模型、token 数),rates(定价) | 单次请求的成本估算,包含货币和定价日期 |
analyze_llm_usage | 分析标准化的大模型用量;报告成本、未知模型和有条件的响应缓存机会。不会访问网络或文件。 | records(数组,最多 100k 条),rates(定价) | 汇总分析:总成本、各模型的明细、未知模型、重复请求机会、token 总数 |
compare_llm_models | 将目标模型与已知价格的基准模型进行比较。仅生成方案;需要单独评估质量,且不会更改路由。 | records(数组,最多 100k 条),rates(定价),targetModel(字符串) | 迁移方案:保持 token 数不变时,使用不同模型的预计成本(需要单独评估质量) |
所有工具:
- 接受结构化 JSON 参数
- 返回格式化文本和结构化 JSON
- 只读且幂等(可安全地重复调用)
- 不发送网络请求,也不访问文件
导入使用数据
这些工具需要标准化的使用记录,因此数据导入是个薄弱环节。 以下介绍如何获取这些记录。
预期输入格式
每条使用 record 都必须包含:
{
"model": "gpt-4o",
"inputTokens": 1000,
"outputTokens": 50,
"cachedInputTokens": 0,
"requestHash": "optional-unique-identifier"
}
规则:
model:准确的模型名称(必须与费率文件中的名称一致)inputTokens:输入 token 总数,包含缓存 tokenoutputTokens:输出 token 总数cachedInputTokens:(可选)提示词缓存命中数(必须 ≤inputTokens)requestHash:(可选)整个请求的唯一标识符(租户、模型参数、系统上下文、工具状态、新鲜度)——用于识别有条件的响应缓存机会
重要:不能直接使用 OpenAI 的 prompt_tokens 和 Anthropic 单独列出的缓存字段。必须先对它们进行标准化。
示例:OpenAI 使用情况导出
如果从 OpenAI 控制面板导出使用情况,可能会得到包含 model、prompt_tokens、completion_tokens、cached_tokens 等列的 CSV 文件。
转换为标准化格式:
// Example transformation (Node.js)
const fs = require('fs');
const Papa = require('papaparse'); // npm install papaparse
const csv = fs.readFileSync('openai-usage-export.csv', 'utf8');
const parsed = Papa.parse(csv, { header: true, dynamicTyping: true });
const normalized = parsed.data.map(row => ({
model: row.model,
inputTokens: row.prompt_tokens, // OpenAI prompt_tokens = total input
outputTokens: row.completion_tokens,
cachedInputTokens: row.cached_tokens || 0,
requestHash: row.request_id // if available
}));
fs.writeFileSync('normalized-usage.jsonl', normalized.map(r => JSON.stringify(r)).join('\n'));
然后将 normalized-usage.jsonl 与费率文件一起提供给你的 Agent。
示例:Anthropic 用量导出
Anthropic 的用量导出包含 input_tokens、cache_creation_input_tokens、cache_read_input_tokens 和 output_tokens 等独立字段。
转换为标准化格式:
// Anthropic → normalized format
const normalized = anthropicUsage.map(row => ({
model: row.model,
inputTokens: row.input_tokens + row.cache_creation_input_tokens + row.cache_read_input_tokens,
outputTokens: row.output_tokens,
cachedInputTokens: row.cache_read_input_tokens,
requestHash: row.request_id // if available
}));
注意:缓存写入的定价与常规输入定价分开。此 MVP 不支持差异化的缓存写入费率。如果你在费率文件中提供 cachedInputPerMillion,它仅适用于缓存读取。
费率文件格式
以 JSON 格式提供你自己的定价表:
{
"currency": "USD",
"asOf": "2026-10-19",
"models": {
"gpt-4o": {
"inputPerMillion": 2.5,
"outputPerMillion": 10.0,
"cachedInputPerMillion": 1.25
},
"claude-sonnet-4.5": {
"inputPerMillion": 3.0,
"outputPerMillion": 15.0
}
}
}
currency:三字母代码(例如"USD"、"EUR")asOf:(可选)价格核实日期models:按确切的模型名称作为键inputPerMillion:每百万输入令牌的价格outputPerMillion:每百万输出令牌的价格cachedInputPerMillion:(可选)每百万缓存输入令牌的价格(若省略,则默认为inputPerMillion)
费率文件中的所有模型必须使用相同的货币。 未知模型不会计入总额,并会标记为数据不完整。
请参阅 examples/rates.json 查看演示文件(价格为虚构)。
使用场景
1. AI Agent 成本审计
你已经使用 Claude Code 或 Cursor 工作了一个月,并有会话日志。你想知道:
- 每种模型的总支出
- 哪些模型缺少定价数据
- 切换模型可以在哪些方面节省费用
工作流:导出用量数据并将其标准化,然后在安装此 MCP 服务后将数据提供给你的 Agent。询问:“分析我的用量,并与更便宜的模型进行比较。”
2. 模型迁移规划
你正在考虑将部分工作负载从 gpt-4o 迁移到 gpt-4o-mini。
工作流:使用 compare_llm_models 估算节省的费用。请注意:该工具假设令牌数量保持不变。你必须另外评估质量、上下文窗口和延迟。
3. 响应缓存机会检测
你为每个请求提供 requestHash(由租户、模型参数、系统上下文、工具状态和新鲜度要求计算出的哈希值)。
工作流:analyze_llm_usage 工具会识别重复的哈希,并报告实施条件响应缓存后可实现的最高限度节省额。这不是提供商的提示词缓存,而是请求级别的去重。
4. 个人开发者/自由职业者
你同时为多个客户工作,并希望按项目跟踪大模型成本。
工作流:为每个项目分别保存用量日志。单独分析每个项目,并汇总总额以便开具账单。
5. 团队/企业
团队共用一个 API 密钥,你希望按工程师或功能归集成本。
工作流:为用量记录添加工程师/功能标识。分析记录子集。(未来:提供带预算和提醒的托管方案。)
隐私与安全
- 无遥测:本地 MCP 服务或 CLI 不会发出任何对外请求。
- 无凭据:服务不会索要或存储 API 密钥。
- 不写入文件:MCP 工具仅接受结构化数据;不会读取或写入文件。
- CLI 沙箱:CLI 仅读取当前目录下的 JSON/JSONL 文件,会解析符号链接,并拒绝访问该根目录之外的路径。读取前会检查文件是否为常规文件,以及文件大小是否不超过 20 MiB。JSONL 采用增量解析,最多处理 100,000 条记录。
- 安全算术:汇总令牌数量时会拒绝不安全的整数总数。成本计算会拒绝无穷大结果。
对比
| 工具 | 重点 | 本地运行 | 导入格式 | 模型对比 | 缓存优化机会 | MCP 服务 |
|---|---|---|---|---|---|---|
| MCP Cost Optimizer | 成本分析与模型切换场景 | ✅ | 标准化 JSON | ✅ | ✅(请求级别) | ✅ |
| agentacct | Agent 工作情报与成本仪表板 | ✅ | Claude Code/Codex 日志 | ❌ | ❌ | ❌(Python 仪表板) |
| Tokenscope | Claude CLI 菜单栏仪表板 | ✅ | Claude CLI 日志 | ❌ | ❌ | ❌(macOS/Windows 应用) |
| tokentop | 实时终端监控 | ✅ | 提供商 API + 会话文件 | ❌ | ✅(提供商缓存百分比) | ❌(TUI) |
| llm-cost-dashboard | 带预算和预测功能的终端仪表板 | ✅ | 日志文件 / 标准输入 | ❌ | ❌ | ❌(Rust TUI) |
MCP Cost Optimizer 的独特之处:
- 原生支持 MCP:适用于任何 MCP 客户端(Claude Code、Cursor、VS Code、Windsurf、Cline、Zed、Claude Desktop、Gemini CLI、Codex CLI)。
- 模型对比:估算迁移场景可节省的成本(或产生的额外成本)。
- 请求级缓存检测:提供哈希值时,可识别重复请求。
- 不依赖特定提供商:可使用自定义定价表(OpenAI、Anthropic、Gemini、Llama、Mistral 等)。
- 透明:所有计算均为确定性计算,不靠猜测,也没有隐藏假设。
限制
这是一个 MVP(v0.1.2)。目前尚不支持以下功能:
- 缓存写入定价:不支持单独的缓存写入费率。只能通过
cachedInputPerMillion配置缓存读取价格。 - 推理 token:此版本不会对扩展推理 token(例如 OpenAI o1/o3 系列)单独定价。
- 自动更新定价:你必须自行维护费率文件。该工具不会从提供商处获取实时定价。
- 账单核对:估算基于你提供的价格,而非提供商账单。费用不含货币转换和税费。
- 质量评估:模型对比假设 token 数量保持不变。你必须另行评估质量、分词器差异、上下文窗口、工具支持情况和延迟。
- 自动路由:该工具仅提供估算,不会更改应用的模型选择。
免费版和专业版
- 本地 MCP/CLI:永久免费。可离线运行。无需账户、API 密钥或配额。
- 托管路径(未来计划):计划提供带控制平面集成的托管 HTTP 路径,供需要集中管理配额、预算和告警的团队使用。定价待定。
路线图
- 用于自动标准化的提供商适配器(OpenAI、Anthropic、Gemini、Bedrock)
- 缓存写入和推理 token 计费
- 经过验证的版本化定价目录
- 项目预算和告警
- 通过质量门控的模型评估
- 托管报告仪表板
在添加自动优化功能之前,请先使用真实场景验证这些功能。
贡献
欢迎贡献!请参阅 CONTRIBUTING.md(如果存在),或提交 issue。
贡献前请先:
- 运行
npm test和npm run check,验证你的更改。 - 遵循现有代码风格(core.js 不引入外部依赖,使用 ESM 模块,使用 node:test 编写测试)。
- 为新功能添加测试。
许可证
MIT 许可证——详情请参阅 LICENSE 文件。
版权所有 © 2026 Stefan Petrovici
可自由使用、修改和分发。不提供任何担保。
作者的更多 MCP 服务
属于 petrovicistefan MCP 套件 — 为 AI 编码 Agent 提供本地优先的防护措施。
| 服务 | 用途 | 链接 |
|---|---|---|
| 🛡️ MCP Security Guard | 检测 MCP 服务中的工具投毒、恶意接管和提示词注入 | GitHub |
| 💰 MCP Cost Optimizer | 分析大模型成本和切换模型的节省额 | GitHub |
| 🗄️ MCP Database Doctor | 诊断架构问题、慢查询和缺失索引 | GitHub |
| 📦 MCP Dependency Doctor | 查找过时的软件包、CVE 和许可证冲突 | GitHub |
| 🔍 MCP SEO Auditor | 检查本地 SEO 中的元标签、架构和性能 | GitHub |
| 🌐 MCP API Guardian | 验证 OpenAPI 规范并检测破坏性变更 | GitHub |
| 🏪 MCP Marketplace | 浏览和发现完整套件 | GitHub |
觉得有用?⭐ 为此仓库点个 Star,帮助更多人发现它!
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。