MCP.so
Sign In
C

Compare JSON

@unitstack

About Compare JSON

A lightweight, dependency-free MCP for deep comparison of JSON values. Detects additions, deletions, type changes, and value changes between two JSON structures with fine-grained control over comparison behavior.

Config

Add this server to your MCP-compatible client using the configuration below.

{
  "mcpServers": {
    "compare-json": {
      "command": "npx",
      "args": [
        "@compare-json/cli@latest",
        "--mcp"
      ]
    }
  }
}

Tools

No tools detected

Fetch the live tool list by running this server in a temporary sandbox using the button above.

Overview

What is Compare JSON?

Compare JSON is an MCP server that exposes a JSON comparison engine as a tool for AI assistants, enabling them to compare two JSON values and retrieve detailed, structured differences.

How to use Compare JSON?

Start the server by running compare-json --mcp from a global install or npx @compare-json/cli --mcp. It communicates over stdio. Add the provided configuration to your MCP client (e.g., mcp.json) to register the compare-json server.

Key features of Compare JSON

  • compare_json tool with multiple input options (raw, string, file path).
  • Configurable array comparison: byIndex, lcs, or unordered.
  • Case‑insensitive key and value comparison toggles.
  • Numeric‑string equals number comparison option.
  • Returns an array of JSONValueDifference objects with path and diff type.

Use cases of Compare JSON

  • AI assistants comparing two JSON configurations or API payloads.
  • Detecting differences between expected and actual JSON responses.
  • Validating JSON data changes across versions or environments.

FAQ from Compare JSON

What output does the compare_json tool return?

It returns an array of JSONValueDifference objects, each containing pathSegments, pathString, pathBelongsTo, and diffType. The same data is also echoed as JSON text in content[0].text.

How can I provide the JSON values to compare?

For each side (base and contrast) you can provide the JSON as an already‑parsed value (baseJSON, contrastJSON), as a stringified value (baseJSONString, contrastJSONString), or as a file path (baseJSONFilePath, contrastJSONFilePath). At least one method per side is required; if multiple are given, file path takes precedence, then string, then raw value.

What array comparison strategies are available?

Three strategies: byIndex (default), lcs (longest common subsequence), and unordered. They are set via the arrayCompareMethod option.

Does Compare JSON support case‑insensitive comparison?

Yes. The keyCaseInsensitive and valueCaseInsensitive options (both default false) make key and value comparisons case‑insensitive.

How do I start and configure the MCP server?

Run compare-json --mcp or npx @compare-json/cli --mcp. In your MCP client config, add a server entry with command npx and args ["@compare-json/cli@latest", "--mcp"]. The server communicates over stdio with no additional transport or auth setup required.

Frequently asked questions

What output does the `compare_json` tool return?

It returns an array of `JSONValueDifference` objects, each containing `pathSegments`, `pathString`, `pathBelongsTo`, and `diffType`. The same data is also echoed as JSON text in `content[0].text`.

How can I provide the JSON values to compare?

For each side (base and contrast) you can provide the JSON as an already‑parsed value (`baseJSON`, `contrastJSON`), as a stringified value (`baseJSONString`, `contrastJSONString`), or as a file path (`baseJSONFilePath`, `contrastJSONFilePath`). At least one method per side is required; if multiple are given, file path takes precedence, then string, then raw value.

What array comparison strategies are available?

Three strategies: `byIndex` (default), `lcs` (longest common subsequence), and `unordered`. They are set via the `arrayCompareMethod` option.

Does Compare JSON support case‑insensitive comparison?

Yes. The `keyCaseInsensitive` and `valueCaseInsensitive` options (both default `false`) make key and value comparisons case‑insensitive.

How do I start and configure the MCP server?

Run `compare-json --mcp` or `npx @compare-json/cli --mcp`. In your MCP client config, add a server entry with command `npx` and args `["@compare-json/cli@latest", "--mcp"]`. The server communicates over stdio with no additional transport or auth setup required.

Comments

More Developer Tools MCP servers