keremurat-jsonmcp について
keremurat-jsonmcpは、2つのJSON文字列を再帰的に比較する開発者向けMCPサーバーです。オブジェクト、プロパティ、配列の順序を無視し、差分のパスと型を報告します。
主な機能
- 01ネストしたオブジェクトと配列を再帰比較
- 02オブジェクト、プロパティ、配列の順序を無視
- 03キーの欠落、余分なキー、値の差を報告
- 04差分のパスを表示
- 05値のデータ型を確認
活用シーン
- 01JSON設定の変更を確認
- 02APIレスポンスのJSONを比較
- 03ネストした構造の差分を特定
MCP 対応
MCPクライアントに `compare_json` ツールを提供し、2つのJSON文字列を受け取って差分レポートを返します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
エンドポイント
https://server.smithery.ai/@keremurat/jsonmcp/mcpインストールコマンドをコピー
Claude CodeTerminal
claude mcp add --transport http ai-smithery-keremurat-jsonmcp https://server.smithery.ai/@keremurat/jsonmcp/mcpCursor.cursor/mcp.json
{"mcpServers":{"ai-smithery-keremurat-jsonmcp":{"type":"http","url":"https://server.smithery.ai/@keremurat/jsonmcp/mcp"}}}Cursor で開くVS Code.vscode/mcp.json
{"servers":{"ai-smithery-keremurat-jsonmcp":{"type":"http","url":"https://server.smithery.ai/@keremurat/jsonmcp/mcp"}}}VS Code で開くClaude Desktopclaude_desktop_config.json
{"mcpServers":{"ai-smithery-keremurat-jsonmcp":{"type":"http","url":"https://server.smithery.ai/@keremurat/jsonmcp/mcp"}}}Windsurf~/.codeium/windsurf/mcp_config.json
{"mcpServers":{"ai-smithery-keremurat-jsonmcp":{"serverUrl":"https://server.smithery.ai/@keremurat/jsonmcp/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
すべてのエンドポイント
Streamable HTTP
https://server.smithery.ai/@keremurat/jsonmcp/mcp認証が必要ツール
詳細
🔍 JSON Compare MCP サーバー
✨ 機能
- 🔍 詳細な比較 - ネストされたオブジェクトや配列を含む、すべての階層を比較します
- 🔀 順序に依存しない比較 - プロパティやオブジェクトの順序は関係ありません
- 📊 詳細なレポート - 不足、余分、異なる値について詳細に報告します
- 🎯 パスの追跡 - 各差異の正確な位置を示します(例:
root.user.settings.theme) - 🏷️ 型のチェック - 値の型も比較します
- ⚡ 高速かつ効率的 - 最適化された再帰アルゴリズム
🎯 クイックスタート
1. インストール
git clone https://github.com/yourusername/json-compare-mcp.git
cd json-compare-mcp
pip install -r requirements.txt
2. MCP サーバーを起動
python server.py
3. テスト
python test_compare.py
📦 内容
json-compare-mcp/
├── 🐍 app.py # JSON karşılaştırma implementasyonu
├── 🚀 server.py # MCP server yapılandırması
├── 🧪 test_compare.py # Test suite
├── 📋 requirements.txt # Python bağımlılıkları
├── 🐳 Dockerfile # Container yapılandırması
├── ⚙️ smithery.yaml # Smithery deployment config
└── 📁 test_samples/ # Örnek JSON dosyaları
├── file1.json
├── file2.json
└── file3_different.json
🚀 使用方法
MCP ツール:compare_json
# İki JSON string'ini karşılaştır
compare_json(
json1='{"name": "Ahmet", "age": 30, "city": "Istanbul"}',
json2='{"age": 30, "city": "Istanbul", "name": "Ahmet"}'
)
注: ファイルパスではなく、JSON 文字列を直接使用してください!
出力形式
{
"status": "different",
"total_differences": 11,
"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": 2,
"value_mismatches": 8,
"type_mismatches": 0
}
}
🔍 比較の仕組み
レベル 1:トップレベルオブジェクトの比較
- ✅ 両方の JSON に含まれるトップレベルのオブジェクト/キーを検出します
- ✅ 順序は重要ではありません - オブジェクトの順序は異なっていてもかまいません
- ✅ 不足/余分なオブジェクトを検出して通知します
- ✅ 一致するオブジェクトについては、レベル 2 に進みます
レベル 2:内部オブジェクト/プロパティの比較
- ✅ すべてのプロパティを比較します
- ✅ 順序は重要ではありません - プロパティの順序は異なっていてもかまいません
- ✅ プロパティの有無、型、内容を確認します
- ✅ 配列は順序に依存せず比較します
差異の種類
| 種類 | 説明 |
|---|---|
missing_key | キーは file1 にありますが、file2 にはありません |
extra_key | キーは file2 にありますが、file1 にはありません |
value_mismatch | 値が異なります |
type_mismatch | データ型が異なります |
🧪 テスト
テストスイートを実行
python test_compare.py
テストシナリオ
- 順序に依存しないテスト:内容は同じで順序が異なる →
identical - 差異の検出:値が異なる → 詳細な差異レポート
- 同じファイルとの比較:同じファイル →
identical
テスト出力
✅ Test 1 - Sıra-bağımsız: BAŞARILI
✅ Test 2 - Farklılık tespiti: BAŞARILI
✅ Test 3 - Aynı dosya: BAŞARILI
🔍 Test 2 Detayları:
- Eksik anahtarlar: 1
- Fazla anahtarlar: 2
- Değer uyuşmazlıkları: 8
- Tip uyuşmazlıkları: 0
- Toplam fark: 11
🛠️ 開発
新しいツールを追加する
app.py ファイルに新しい関数を追加します:
def myNewTool(param: str) -> str:
# Your logic
return result
server.py ファイルに MCP ツールとして登録します:
@mcp.tool()
async def my_new_tool(param: str) -> str:
"""Tool açıklaması"""
return myNewTool(param)
🚀 デプロイ
Smithery へのデプロイ
- リポジトリを GitHub にプッシュします
- Smithery でリポジトリを連携します
- ワンクリックでデプロイします!🎉
Docker へのデプロイ
docker build -t json-compare-mcp .
docker run -p 8000:8000 json-compare-mcp
手動でのデプロイ
pip install -r requirements.txt
python server.py
📋 必要条件
- Python 3.11+
- mcp
- requests
🤝 貢献
- 🍴 フォークします
- 🌱 フィーチャーブランチを作成します
- 💻 変更を加えます
- 🧪 テストします
- 📝 プルリクエストを送信します
📄 ライセンス
MIT ライセンス - 詳細については LICENSE ファイルをご覧ください。
より良い JSON 比較のために ❤️ を込めて作成
順序に依存しない、詳細、信頼性の高い比較 🚀
コメント
Markdown 対応
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。