mcpField
G
GreenPick

GreenPick

本地服务
github.com/bithug01云与基础设施12 天前更新

关于 GreenPick

GreenPick 是面向开发者的 MCP 服务,用于在设计阶段选择云基础设施。它比较不同区域的碳排放、成本和延迟,并提供调度、规格调整与部署建议;数据为方向性估算,而非审计核算。

主要功能

  1. 01跨区域比较碳排放、成本与延迟
  2. 02按电网碳强度安排作业
  3. 03估算训练与推理排放
  4. 04实例选择与规格调整
  5. 05检查流量费用与数据驻留
  6. 06提供美国和欧盟实时电网数据

适用场景

  1. 01部署前比较云区域
  2. 02选择电网更清洁的批处理时段
  3. 03估算 GPU 训练或 LLM 推理排放
  4. 04检查流量费用是否抵消减排收益

MCP 相关

GreenPick 通过 stdio 提供包含 15 个工具的 MCP 服务。MCP 客户端可请求区域比较、调度建议、工作负载估算、效率检查和方法说明。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"bithug01-greenpick": {
"command": "uvx",
"args": [
"greenpick"
],
"env": {
"GREENPICK_CARBON_SOURCE": "<GREENPICK_CARBON_SOURCE>",
"EIA_API_KEY": "<EIA_API_KEY>",
"ENTSOE_TOKEN": "<ENTSOE_TOKEN>",
"ELECTRICITYMAPS_TOKEN": "<ELECTRICITYMAPS_TOKEN>",
"GREENPICK_CACHE_TTL_SECONDS": "<GREENPICK_CACHE_TTL_SECONDS>",
"GREENPICK_LOG_LEVEL": "<GREENPICK_LOG_LEVEL>"
}
}
}
}
启动命令uvx greenpick
需要配置的环境变量
GREENPICK_CARBON_SOURCECarbon data source: 'auto' (US->EIA, EU->ENTSO-E, Canada->Hydro-Québec/IESO live), 'mock' (offline: typical monthly values from a year of real data), 'eia', 'entsoe', or 'electricitymaps'. Defaults to offline.
EIA_API_KEY密钥Free US EIA-930 grid data API key (optional; enables live US carbon).
ENTSOE_TOKEN密钥Free EU ENTSO-E grid data token (optional; enables live EU carbon + day-ahead forecast).
ELECTRICITYMAPS_TOKEN密钥Electricity Maps API token (optional; used when GREENPICK_CARBON_SOURCE=electricitymaps).
GREENPICK_CACHE_TTL_SECONDSCache lifetime for fetched grid data, in seconds.
GREENPICK_LOG_LEVELLogging level (DEBUG, INFO, WARNING, ERROR).

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

安装包
pypigreenpick0.4.2

工具

15

收录的工具列表 · 更新于 2 天前

参数类型必填说明
vcpunumber是
ram_gbnumber是
regionsany否
user_latnumber是
user_lonnumber是
providersany否
optimize_forstring否
baseline_regionany否
max_added_latency_msany否
est_monthly_egress_gbnumber否

详细介绍

GreenPick 标志——一片叶子,叶脉呈电路走线状

GreenPick

在部署之前,编写更环保、成本更低的云基础设施。

PyPI 版本 许可证:MIT 测试:通过 Python 3.11+ MCP 工具:15 个

一款设计阶段的可持续性协作助手,以 MCP 服务的形式运行于你的氛围式编程环境(Cursor / Claude Code / Kiro)中。询问它应该部署到哪里、何时运行作业,或如何调整资源规格,它会在几秒内于编辑器中给出坦诚的碳排放 + 成本 + 延迟权衡。(它会在你提问时响应;基础设施代码变更时自动提醒已列入路线图。)

状态:可用——15 个工具。 支持美国(EIA-930)和欧盟(ENTSO-E)的实时碳排放数据、跨云成本对比(由 Vantage 刷新)、各维度红/黄/绿评级、碳感知调度与日前预测、GPU 训练和 LLM 推理的碳排放、调整资源规格、服务模式及数据本地化/驻留检查——以上功能均已推出。离线或没有 API 密钥时,会回退到明确标注的模拟数据。

同一项 H100 训练任务,仅因区域不同,碳排放相差约 30 倍(斯德哥尔摩与悉尼)

同一项 40 GPU 小时的训练任务,在斯德哥尔摩排放约 0.7 kg CO₂,在悉尼则约为 19 kg——仅区域选择就造成约 30 倍的差异。向 GreenPick 提问,它会在你仍处于编辑器中、提交之前,揭示这一差异(以及成本和延迟方面的权衡)。

▶ 观看 5 分钟演示——三个场景,包含真实工具输出(训练任务选址、出口流量反噬、预测)。

功能

  • 🧮 调整资源规格,同时降低成本 和 碳排放——这是 FinOps 的收益,也是碳排放方面的双重收益。节省成本是运行它的理由;减碳则是额外收获。
  • ⏱ 碳感知调度——在电网最清洁时运行可延迟的作业(ETL、批处理、训练),支持当前或日前调度。每个周期性作业都需要做出这个决策。
  • ⚡ GPU 训练和 LLM 推理的碳排放——估算运行的碳足迹,并找出更环保的运行地点和时间;选择规模和部署位置,才能真正改变排放数字。
  • 🌍 更环保的区域选择——按碳排放排序,同时展示成本和延迟方面的权衡,而非将其隐藏。
  • 🛡 反噬防护——当更环保的选择因出口流量而得不偿失,或触及数据驻留限制时发出提示。
  • 🔌 美国和欧盟的实时电网数据,并提供坦诚的模拟数据回退——无需 API 密钥即可开始使用。

目录

为何开发

同一项 Web 服务在不同区域运行时,产生的 CO₂ 会大不相同,因为各地电网的碳强度不同。现有工具要么只对区域进行抽象排名,要么等部署之后才测量碳排放。GreenPick 会在你做出选择时进行分析,并告诉你更环保的选择会带来怎样的延迟和成本——让你在充分了解情况后决定接受还是拒绝。

它是什么 / 不是什么

  • **是:**为开发者在构建过程中选择云区域提供方向性的“更绿色选择”建议,并说明其中的权衡。
  • **不是:**经过审计的碳核算、ESG/Scope-2 报告,也不是实时调度器。GreenPick 不声称符合 GHG-Protocol 或 ISO 标准——这些是付费数据供应商(Electricity Maps、WattTime)提供的服务。GreenPick 用于决策,而非披露。
与现有方案的区别
  • 测量工具(Cloud Carbon Footprint、CodeCarbon、Kepler)会在你部署后,报告已经排放的碳。GreenPick 则在选择之前提供建议。
  • 云服务商自有工具(AWS CCFT、Azure、Google 的“Low CO₂”区域标签)只覆盖一家云服务商,而且只显示碳排放。GreenPick 支持跨云比较,并权衡碳排放、成本和延迟,让你看到其中的取舍,而不只是一个绿色徽章。
  • CI/CD 碳排放工具在合并时针对流水线任务发挥作用。GreenPick 更早介入,在编辑器中覆盖更多决策(调度、规格调整、训练/推理、出口流量和数据驻留)。
  • 电网数据 SDK(Electricity Maps、WattTime、GSF Carbon Aware SDK)是构建模块;GreenPick 则是在此类数据之上构建的决策层。

跨云、兼顾碳排放 + 成本 + 延迟、在设计时于编辑器中提供建议,并配有防反效果保护——这一组合正是其他方案都未能实现的部分。

范围

  • 服务商:AWS、GCP、Azure 区域。
  • 工作负载:长期运行的Web/API 服务、GPU 训练任务,以及可延后任务(ETL / 批处理 / 备份)——分别提供部署位置和执行时间建议。
  • 碳排放 = 按区域划分的电网碳强度(方向性指标,反映某一时点;美国和欧盟提供实时数据),以及用于前瞻性调度的次日预测(欧盟)。
  • 成本 = 计算 + 出口流量的粗略估算(确定性的静态表格,可在不同云之间公平比较;绝不由 LLM 臆造)。
  • 延迟 = 到指定用户位置的地理估算值。
  • 效率优化手段:更绿色的实例系列(每瓦性能)、规格调整(同时考虑成本和碳排放),以及用于跟踪应用长期表现的碳指标框架。
  • 防护措施:检查数据本地性 / 出口流量是否产生反效果,并标记跨司法管辖区的数据驻留问题。
  • **仅使用免费数据。**不提供基于流量追踪的消耗核算;碳排放预测仅表示相对趋势,而非绝对值。

路线图:数据格式 / 引擎效率建议、次国家级电网区域、CI/CD 集成。 参见 docs/user-questions-backlog.md。

MCP 工具

共 15 个工具,按使用目的分组。

选择区域
工具功能
compare_regions_tri_axis按碳排放对候选区域排序,并权衡成本和延迟;推荐一个选择,各指标以 R/Y/G 评级。传入 regions,即可只对你实际考虑的区域排序。
greener_alternative_to“你选择了 X——在延迟增加不超过 +N ms 的条件下,最绿色的区域是 Y(碳排放 −Z%,成本 Δ)。”这是核心提示。
region_carbon_now查询某区域当前的 gCO₂/kWh,并显示来源、时间戳和数据新鲜度。
安排任务时间(调度)
工具功能
cleanest_hours_to_run找出近期最清洁的时段,用于安排可延后的任务(ETL、备份、训练),并给出减排百分比。传入 window_hours,指定已知任务时长,即可找出最清洁的连续时段及其开始时间。
cleanest_time_of_day对于周期性任务(如每晚运行的批处理):根据近期多个日期的平均值,找出该区域一天中最清洁的时段。反映每日规律,不是 7 天的每周规律。
carbon_forecast前瞻预测:根据欧盟次日风能 + 太阳能预测(ENTSO-E),找出即将到来的最清洁时段。提供相对排序;美国 / 未覆盖区域会退回到近期历史规律。
估算工作负载的碳排放
工具功能
estimate_workload_carbon估算某个区域中工作负载每月的 CO₂ 千克数(这是估算值,不是测量值)。
estimate_training_carbon估算 GPU 训练运行的碳排放(基于 TDP 的能耗 × 实时电网数据),并提供更绿色的地点(区域排名)和时间(最清洁时段)——这两个因素叠加后,可优化可移植且可延期的训练任务。
estimate_inference_carbon按模型规模类别 × 输出 token 数 × 请求数(× 实时电网数据),估算 LLM 推理工作负载的能耗和 CO₂ 排放。结果为低至高的范围;缩小规模类别是最有效的杠杆。适合自托管;并非针对具体模型的排行榜。
效率与防护措施
工具功能
greener_instance_family通过每瓦性能指标,在同一区域中找到更绿色的同等规模实例系列(更新一代或 ARM Graviton 级别的实例可用更少能耗完成相同工作)。
rightsizing_check调整实例规模(FinOps 最有效的优化手段),并提供对应的碳排放数据:如果配置过度,缩小规模可同时降低成本和碳排放 → 给出适当规模的目标配置,以及每月节省的美元和 CO₂ 千克数。
data_locality_egress_check当计算任务远离数据所在位置可能适得其反时发出警告:提供方向性的出站流量费用和粗略的传输碳排放数据,并判断迁移到更绿色区域是否仍有净收益。
serving_pattern_advice面向用户的平台:应从一个区域还是多个区域提供服务?综合考量按流量加权的延迟和碳排放,以及多区域数据同步的出站流量费用和跨司法辖区的数据驻留问题。
测量与理解
工具功能
carbon_metric_scaffold生成可粘贴的 Python 埋点代码,让应用随时间报告自身的估算碳排放——可观测代理指标 × GreenPick 的功耗模型 × 实时电网数据。用于自行跟踪,结果仅供参考;不是运行时计量器。
explain_methodology_and_limits说明所用假设,以及 GreenPick 明确不作出的承诺。

数据来源(免费;可通过统一接口替换)

  • EIA-930(美国平衡主管机构)和 ENTSO-E(欧盟区域)——实时电网碳排放数据, 按区域自动路由。两者也会根据近期每小时历史数据,提供 cleanest_hours_to_run。
  • Mock——确定性离线默认数据;会清楚标记为 quality: "mock",避免被误认为真实读数。缺少密钥或区域不在覆盖范围内时使用。
  • 成本:使用带日期的静态定价表(data/pricing.json),通过 scripts/refresh_pricing.py 从 Vantage 实时价格更新,并对三家云服务商采用统一的匹配方法。
  • 实例系列效率:方向性的每瓦性能乘数(data/instance_families.json)。
  • 延迟:根据区域坐标与用户位置之间的大圆距离估算。

在 .env 中设置 EIA_API_KEY 和 ENTSOE_TOKEN(均免费)以获取实时碳排放数据;GREENPICK_CARBON_SOURCE 用于选择数据源(auto 会将美国请求路由至 EIA、欧盟请求路由至 ENTSO-E,其余使用 mock)。

数据层采用可替换的仓库模式(默认使用 MOCK,支持离线运行)。这里不会凭空编造数字:LLM 负责撰写理由说明,代码负责提供数值。

明确的局限性(已内置于工具中)

数据仅供参考,未经审计。区域到电网分区的映射为近似值。碳排放数据是某一时点的数据,并非按流量追踪的实际消耗。成本仅为大致估算,不是报价。延迟为地理距离估算。“更绿色”假设电网碳强度占主导因素,不考虑隐含碳、硬件碳和服务提供商的可再生能源证书。

快速开始

# Python 3.11+
pip install greenpick          # from PyPI
python -m greenpick            # run the MCP server (stdio)

也可以从源码安装,用于开发(可编辑安装 + 测试):

git clone https://github.com/bithug01/greenpick.git
cd greenpick
pip install -e ".[dev]"
cp .env.example .env            # defaults to mock data — works offline
python -m greenpick             # run the MCP server (stdio)
pytest                          # run tests

要将其连接到 MCP 客户端(例如 Kiro / Claude Code / Cursor),请将客户端指向此目录下的 python -m greenpick。如需切换数据源,请参阅 .env.example。

常见问题

我需要 API 密钥吗? 不需要——GreenPick 开箱即用,并运行明确标注的模拟数据。若要获取实时碳数据,请在 .env 中设置两个免费的密钥(美国使用 EIA_API_KEY,欧盟使用 ENTSOE_TOKEN),并设置 GREENPICK_CARBON_SOURCE=auto。没有这些密钥也能正常运行;只是会显示 quality: "mock"。

为什么是“趋势性”数据,而不是经过审计的数据? 因为它用于设计阶段的决策,而不是合规报告。“斯德哥尔摩比悉尼清洁约 30 倍”足以让你在几秒内选定区域——而认证数据属于另一项工作,需要使用其他工具(Electricity Maps、WattTime)。GreenPick 用于决策,而非披露,并且每个工具的限制说明中都会明确这一点。

我的云服务商说该区域已经 100% 使用可再生能源——那区域真的重要吗? 这是基于市场的核算方式(服务商按年通过可再生能源证书/PPA 匹配用量)。GreenPick 使用基于位置的核算方式——也就是你实际取电的电网在每个时段的碳强度。这两种方式都合理(GHG Protocol 要求同时采用两者),回答的是不同问题:基于市场的核算关注采购声明;基于位置的核算关注你的工作负载此刻实际依赖的电网。GreenPick 有意采用基于位置的核算,因为这才是部署位置/时间选择真正会影响的因素——你无法改变服务商年度 REC 组合,但可以选择更清洁的电网或时段。我们有意忽略 REC,并非疏忽。

没有实时数据的区域会怎样? 系统会回退到近期历史模式或模拟数据,并标明所用数据类型——绝不会把回退数据显示为实时读数。若没有日前数据源(例如美国),预测也会回退到历史数据,并明确标注。

它能按碳排放对 Claude、GPT 和 Llama 排名吗? 不能,这是有意为之。estimate_inference_carbon 按模型大小类别(便于自托管)工作,而不是生成指定模型的排行榜——供应商不会披露足以支持此类可靠排名的服务细节。

我该怎么向它提问? 你不需要直接调用工具——只需用自然语言与 MCP 客户端对话(“哪里是运行这个任务最绿色的区域?”),客户端就会调用相应工具。请参阅演示,了解哪些问题会触发各项工具。

贡献

欢迎以任何形式贡献——提交错误报告、修正数据源、完善说明,或贡献代码。简要说明请参阅 CONTRIBUTING.md。GreenPick 唯一的要求是:保持诚实且只提供趋势性判断——不编造数字,不提供数据无法支撑的精确度(这正是整个项目坚持的原则)。

许可证

MIT——请参阅 LICENSE。© 2026 Data Science Advisers, LLC.

评论

支持 Markdown

第一次接触 MCP?

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

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