mcpField
J
jsondiff

jsondiff

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

关于 jsondiff

jsondiff 是在本地比较 JSON 文档的命令行工具和 stdio MCP 服务。它忽略键和数组顺序,并报告差异类型、路径及整体状态。

主要功能

  1. 01深度比较 JSON
  2. 02忽略键与数组顺序
  3. 03报告差异类型和路径
  4. 04命令行与 stdio MCP 服务

适用场景

  1. 01比较两份 JSON 文档
  2. 02定位缺失或多余的键
  3. 03识别值或类型不匹配

MCP 相关

提供 compare_json 工具,接收两段 JSON 字符串,并返回忽略顺序的比较结果、差异及其路径。

配置

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

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

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

安装包
npm@reneturcios/jsondiff0.1.0
ocighcr.io/cloudcorprecords/jsondiff:0.1.0

工具

1

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

参数类型必填说明
json1string是第一个 JSON 文档,以 JSON 字符串形式提供
json2string是第二个 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

评论

支持 Markdown

第一次接触 MCP?

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

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