关于 jsondiff
jsondiff 是在本地比较 JSON 文档的命令行工具和 stdio MCP 服务。它忽略键和数组顺序,并报告差异类型、路径及整体状态。
主要功能
- 01深度比较 JSON
- 02忽略键与数组顺序
- 03报告差异类型和路径
- 04命令行与 stdio MCP 服务
适用场景
- 01比较两份 JSON 文档
- 02定位缺失或多余的键
- 03识别值或类型不匹配
MCP 相关
提供 compare_json 工具,接收两段 JSON 字符串,并返回忽略顺序的比较结果、差异及其路径。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
1收录的工具列表 · 更新于 1 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| json1 | string | 是 | 第一个 JSON 文档,以 JSON 字符串形式提供 |
| json2 | string | 是 | 第二个 JSON 文档,以 JSON 字符串形式提供 |
详细介绍
jsondiff
深入比较两个 JSON 文档,不必考虑键或数组的顺序。jsondiff 会逐层遍历两个文档,并报告发现的每处差异——仅存在于一侧的键、不同的值或 JSON 类型不同的值——同时提供差异的精确点分路径、按类型分类的摘要,以及总体的 identical / different 状态。
完全在本地计算:无需上游 API、账户、API 密钥或配置。
CLI
npx @reneturcios/jsondiff compare '<json1>' '<json2>'
npx @reneturcios/jsondiff compare --file1 a.json --file2 b.json
npx @reneturcios/jsondiff --version
两个输入都是 JSON 字符串;使用 --file1 / --file2 时则从文件读取。输出为 JSON 格式的比较报告:
{
"status": "different",
"total_differences": 2,
"differences": [
{
"type": "missing_key",
"path": "root.user.settings.language",
"key": "language",
"file1_value": "tr",
"message": "Key 'language' exists in file1 but missing in file2"
},
{
"type": "value_mismatch",
"path": "root.user.name",
"file1_value": "Ahmet Yılmaz",
"file2_value": "Mehmet Demir",
"message": "Value mismatch at 'root.user.name'"
}
],
"summary": {
"missing_keys": 1,
"extra_keys": 0,
"value_mismatches": 1,
"type_mismatches": 0
}
}
退出代码:成功时为 0,运行时错误时为 1(包括输入不是有效 JSON 的情况——错误信息会指出对应的输入),用法错误时为 2。
MCP 服务
同一二进制文件也可运行 stdio MCP 服务:
npx -y @reneturcios/jsondiff mcp
MCP 客户端配置:
{
"mcpServers": {
"jsondiff": {
"command": "npx",
"args": ["-y", "@reneturcios/jsondiff", "mcp"]
}
}
}
工具
compare_json— 深入且不考虑顺序地比较两个 JSON 字符串,并通过完整路径跟踪报告所有差异(缺失的键、多余的键、值不匹配、类型不匹配)。json1(字符串,必填)— 第一个 JSON 文档,以 JSON 字符串形式提供json2(字符串,必填)— 第二个 JSON 文档,以 JSON 字符串形式提供
差异类型:missing_key(仅存在于第一个文档中)、extra_key(仅存在于第二个文档中)、value_mismatch(JSON 类型相同但内容不同)、type_mismatch(JSON 类型不同)。数组比较不考虑顺序:如果一个元素在另一侧找不到深度相等的对应元素,则报告为值不匹配。
Docker
docker run -i ghcr.io/cloudcorprecords/jsondiff # stdio MCP server
docker run --rm ghcr.io/cloudcorprecords/jsondiff compare '{"a":1}' '{"a":2}'
开发
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
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。