jsondiff について
jsondiffは、JSONドキュメントをローカルで比較するコマンドラインツール兼stdio MCPサーバーです。キーと配列の順序を無視し、差異の種類やパス、全体の判定を報告します。
主な機能
- 01JSONの深い比較
- 02キーと配列の順序を無視
- 03差異の種類とパスを報告
- 04コマンドラインとstdio MCPサーバー
活用シーン
- 01二つのJSONドキュメントを比較
- 02不足または余分なキーを特定
- 03値や型の不一致を確認
MCP 対応
二つのJSON文字列を受け取り、順序に依存しない比較結果と差異のパスを返すcompare_jsonツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
1掲載時のツール一覧 · 1 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| json1 | string | はい | 1 つ目の JSON ドキュメント(JSON 文字列) |
| json2 | string | はい | 2 つ目の JSON ドキュメント(JSON 文字列) |
詳細
jsondiff
キーや配列の順序を気にせず、2つの 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— 2つの JSON 文字列を順序に依存せず詳細に比較し、すべての差分(キーの欠落、余分なキー、値の不一致、型の不一致)を完全なパス情報とともに報告します。json1(文字列、必須)— 1つ目の JSON ドキュメント(JSON 文字列)json2(文字列、必須)— 2つ目の JSON ドキュメント(JSON 文字列)
差分の種類:missing_key(1つ目のドキュメントにのみ存在)、extra_key(2つ目のドキュメントにのみ存在)、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 — Copyright (c) 2026 Rene Turcios
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。