mcpField
M
MCP Cost Optimizer

MCP Cost Optimizer

本地服务
github.com数据与分析0今天更新

关于 MCP Cost Optimizer

MCP Cost Optimizer 是用于分析标准化 LLM 使用记录并估算切换模型成本的本地 MCP 服务。它面向自行提供用量数据和定价的开发者与团队;计算只读,无需联网或 API 密钥。

主要功能

  1. 01估算单次请求成本
  2. 02汇总用量及各模型成本
  3. 03比较模型切换方案
  4. 04识别缺少定价的模型
  5. 05发现可考虑缓存的重复请求

适用场景

  1. 01审查每月 Agent 使用成本
  2. 02迁移模型前估算节省金额
  3. 03发现可考虑缓存的重复请求
  4. 04按项目或团队子集分析成本

MCP 相关

提供三个 MCP 工具,用于估算单次请求成本、分析使用记录和比较模型方案。工具接收结构化记录及自备定价,不访问文件或发起网络请求。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"petrovicistefan-mcp-cost-optimizer": {
"command": "npx",
"args": [
"-y",
"mcp-cost-optimizer"
]
}
}
}
启动命令npx -y mcp-cost-optimizer

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmmcp-cost-optimizer0.1.2

工具

3

收录的工具列表 · 更新于 1 周前

参数类型必填说明
ratesobject是
rates.asOfstring否
rates.modelsobject是
rates.currencystring是
recordobject是
record.modelstring是
record.inputTokensinteger是
record.requestHashstring否
record.outputTokensany是
record.cachedInputTokensany否

详细介绍

MCP 成本优化器

了解 LLM 调用的成本,以及切换模型能节省多少费用——本地 MCP 服务,无需 API 密钥。

从 AI Agent 的使用记录中找出超额支出。比较你正在考虑的每个模型的成本。依据实际数据而非猜测做出决策。

npm 版本 npm 下载量 CI 许可证:MIT Glama


🚀 快速安装

Cursor

添加到 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

安装到 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 总数,包含缓存 token
  • outputTokens:输出 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✅✅(请求级别)✅
agentacctAgent 工作情报与成本仪表板✅Claude Code/Codex 日志❌❌❌(Python 仪表板)
TokenscopeClaude 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。

贡献前请先:

  1. 运行 npm test 和 npm run check,验证你的更改。
  2. 遵循现有代码风格(core.js 不引入外部依赖,使用 ESM 模块,使用 node:test 编写测试)。
  3. 为新功能添加测试。

许可证

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

探索所有 MCP 服务 →


觉得有用?⭐ 为此仓库点个 Star,帮助更多人发现它!

评论

支持 Markdown

第一次接触 MCP?

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

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