关于 green-mcp
green-mcp 是本地 MCP 服务,用于测量程序的 CPU 能耗和 LLM Token 消耗,并支持以降低成本为目标的重构及行为等价检查。它报告实测数据和不确定性,而非估算能耗或 Token。
主要功能
- 01通过硬件遥测测量 CPU 能耗
- 02通过代理测量 LLM Token 用量
- 03比较能耗和 Token 测量结果
- 04验证行为等价性
- 05报告能耗后端可用性
适用场景
- 01比较代码更改前后的能耗
- 02找出不同程序版本的 Token 用量差异
- 03检查重构是否保留原有行为
- 04测量通过可配置端点发出的 LLM 调用
MCP 相关
向 MCP 客户端提供测量、比较、等价性检查和后端信息工具。它由 IDE 作为本地 stdio 子进程启动。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Green Agent
一个可插拔的 MCP 服务,用于衡量程序在两个效率维度上的表现,并在保持行为不变的前提下进行重构,使其成本更低:
- CPU 能耗 — 代码实际消耗的焦耳数,来自真实硬件遥测数据(AMD uProf / Linux RAPL / macOS powermetrics),并根据主机自动选择。
- LLM 令牌 — 调用 LLM 的程序所使用的令牌数(输入 / 输出 / 缓存 / 推理),以提供商无关且非阻塞的方式测量。
核心原则:只测量,绝不估算。 每项结论都基于测量,并附带运行命令、数值和多次运行之间的不确定性;否则就会标明为估算。对比结果基于真正的统计检验(将空闲基线的不确定性纳入考量的 Welch t 检验),而非启发式判断。
快速开始
pipx install green-mcp # provides the `green-mcp` command (stdlib + mcp only)
在 IDE 中挂载它(配置文件位于 deploy/):
| IDE | 文件 |
|---|---|
| Claude Code | .mcp.json |
| Cursor | .cursor/mcp.json |
| OpenAI Codex | ~/.codex/config.toml (codex mcp add green -- green-mcp) |
| Google Antigravity | ~/.gemini/antigravity/mcp_config.json |
然后让你的 Agent 测量或比较某条命令的能耗 / 令牌数。完整的挂载和测试框架指南请参阅
deploy/README.md。
工具
measure_energy · compare_energy · measure_tokens · compare_tokens ·
verify_equivalence · energy_backend_info
要求(各部分实际运行所需条件)
无需托管服务。 green-mcp 不是 Web 服务——你的 IDE 会将其作为本地 stdio 子进程启动。无需云服务或账号,测量服务本身也不需要 LLM 密钥。
| 运行服务 | Python 3.10+,pip install green-mcp。就这么简单——工具会立即挂载。 |
|---|
能耗维度 — 主机上需要有电源传感器后端(这是主要前置条件):
- Windows + AMD → 需单独安装 AMD uProf(基于驱动;安装时需要管理员权限)。不随包附带。
- Linux → 读取
/sys/class/powercap(RAPL);无需额外安装,但某些发行版仅 root 用户可访问energy_uj。 - macOS → 使用内置的
powermetrics,需要 root / 无密码 sudo 权限。 - 无法访问传感器(虚拟机、容器、受限机器)→ 能耗工具会报告
energy_available: false,并拒绝估算。能耗通常无法在 Docker/CI 中使用——容器和虚拟机没有电源传感器直通功能。请在此类环境中使用令牌维度。 - 测量的命令会在本地运行(可执行任意命令 → 仅在可信环境中使用)。
令牌维度 — 无需特殊硬件,可在任何环境中使用,但:
- 目标程序必须通过环境变量(
ANTHROPIC_BASE_URL、OPENAI_BASE_URL,……)读取其 LLM 端点,以便我们通过计数代理转发请求。硬编码的端点无法测量(报告的调用数为 0)。 - 测量会执行目标程序的真实 LLM 调用——代理会将请求转发到真实提供商,因此目标程序的 API 密钥仍会照常产生费用,并且需要能够访问提供商的网络连接。
随附 Agent(可选)— pip install green-mcp[agent] 会安装 Claude Agent SDK,并需要 Anthropic 凭据。MCP 服务本身无需凭据。
适用范围说明
- 能耗是 CPU 封装能耗(RAPL 还包括 DRAM)——不代表碳排放,也不代表整个系统的能耗。
- 不同后端的数值不可比较。
- 目前只有 AMD/uProf 后端经过真实硬件上的重复性验证;Linux/macOS 后端已编写并通过单元测试,但尚未在实际硬件上验证,也尚未有任何后端与墙上电源表进行交叉验证。令牌测量器已通过实时提供商验证(兼容 OpenAI 的 NVIDIA NIM:进行了 5 次真实调用,包含流式和非流式调用,结果与提供商自身的用量记录完全一致)——但 Anthropic 格式的
usage路径和速率限制行为仍仅通过本地模拟上游进行测试。这些差距均有记录,并未隐瞒。
开发
python -m venv .venv && .venv/Scripts/pip install -e ".[dev]"
.venv/Scripts/python -m pytest -q # unit tests
.venv/Scripts/python -m pytest -m integration # real-hardware (needs AMD uProf)
架构和决策记录在 North Star.md、Green.md
和 docs/ 中。采用 MIT 许可证。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。