mcpField
E
envdiff

envdiff

本地服务
github.com/CloudCorpRecords开发工具01 周前更新

关于 envdiff

envdiff 比较本地与 CI 环境描述信息,帮助开发者定位环境差异。报告仅列出变量名,不会泄露变量值。

主要功能

  1. 01比较 Node、操作系统和锁文件字段
  2. 02查找仅在一侧存在的环境变量
  3. 03按变量名标出值不同的变量
  4. 04返回 JSON 差异数量

适用场景

  1. 01排查本地与 CI 的环境差异
  2. 02在不暴露机密值的情况下检查环境

MCP 相关

MCP 服务提供 `diff_environments` 工具,用于比较必填的本地和 CI 环境描述信息。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"cloudcorprecords-envdiff": {
"command": "npx",
"args": [
"-y",
"@reneturcios/envdiff"
]
}
}
}
启动命令npx -y @reneturcios/envdiff

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

安装包
npm@reneturcios/envdiff0.1.0
ocighcr.io/cloudcorprecords/envdiff:0.1.0

工具

1

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

参数类型必填说明
ciobject是CI 环境描述
ci.osstring否操作系统标识符
ci.envobject否以字符串映射表示的环境变量(比较值,但不回显)
ci.nodestring否Node.js 版本字符串
ci.lockfile_presentboolean否是否存在锁文件
localobject是本地环境描述
local.osstring否操作系统标识符
local.envobject否以字符串映射表示的环境变量(比较值,但不回显)
local.nodestring否Node.js 版本字符串
local.lockfile_presentboolean否是否存在锁文件

详细介绍

envdiff

“这在我的机器上能运行”——机器的哪一部分?envdiff 会比较两个环境描述符,通常是开发者的本地环境 和 CI 环境,并准确报告两者的差异:

  • Node 版本、操作系统和锁文件是否存在,作为字段进行比较(缺失的字段会报告为 null)
  • 仅存在于一侧的环境变量,按键列出
  • 值不同的环境变量——仅按键名列出。会比较值,但绝不会将值回显到报告中,因此描述符可以包含机密信息而不会泄露。

描述符是一个小型 JSON 对象: {"node": "20.11.0", "os": "linux", "env": {"CI": "true"}, "lockfile_present": true} ——所有字段均为可选。

纯本地计算:无需网络,也无需配置。

CLI

npx @reneturcios/envdiff diff local.json ci.json
npx @reneturcios/envdiff --version

输出为 JSON 格式的比较报告,其中包含 summary.total_differences 计数。退出代码:成功时为 0 (差异是结果,不是错误),运行时错误(无法读取或描述符无效)时为 1,用法错误时为 2。

MCP 服务

npx -y @reneturcios/envdiff mcp

MCP 客户端配置:

{
  "mcpServers": {
    "envdiff": {
      "command": "npx",
      "args": ["-y", "@reneturcios/envdiff", "mcp"]
    }
  }
}
工具
  • diff_environments — 比较两个环境描述符。

    • local(对象,必填)——本地描述符
    • ci(对象,必填)——CI 描述符

    每个描述符:node(字符串)、os(字符串)、env (字符串映射)、lockfile_present(布尔值),均为可选。

Docker

docker run -i ghcr.io/cloudcorprecords/envdiff
docker run --rm -v "$PWD:/w" ghcr.io/cloudcorprecords/envdiff diff /w/local.json /w/ci.json

开发

npm install
npm run build   # tsc -> dist/
npm test        # tsx --test test/*.test.ts (pure local, no network)
npm run dev     # run the CLI from source

许可证

MIT — 版权所有 (c) 2026 Rene Turcios

评论

支持 Markdown

第一次接触 MCP?

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

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