Compare Xml について
Compare Xmlは、XML文書を比較する開発者向けツールキットです。構造化API、コマンドライン、VSCode拡張機能、MCPサーバーを備え、パスと変更種別を含む差分を返します。
主な機能
- 01要素、属性、テキストの詳細比較
- 023種類の配列マッチング方式
- 03キーと値の大文字小文字を無視
- 042形式でのパス追跡
- 05テーブル形式とJSON形式の出力
- 06VSCodeの差分表示とナビゲーター
活用シーン
- 01異なるバージョンのXML変更確認
- 02順序を考慮または無視した配列比較
- 03パスや変更種別による差分の絞り込み
MCP 対応
CLIはMCPサーバーとして起動でき、MCP対応AIアシスタントにXML比較機能を公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
compare-xml
構造化 XML 比較のためのツールキットです。キー、値、配列の照合方法を制御しながら、2 つの XML ドキュメント間の変更点を見つけられます。
オンラインプレイグラウンド:comparejson.com/tools/compare-xml
目的
多くの XML 差分ツールは、構造化されていないテキストを出力するか、重要な部分(要素がどこに追加されたか、配列の違いが順序によるものか内容によるものか)を見えなくしてしまいます。compare-xml は XML を構造化された表現に解析し、差分のリストを返します。各エントリーにはパス、対象側(base / contrast / both)、変更の種類(added、deleted、valueChanged)が含まれるため、表示、フィルタリング、プログラムからの処理が可能です。
特長
- XML 要素、属性、配列、テキスト値の詳細な比較。
- 3 種類の配列比較方式:
byIndex(デフォルト)、lcs(最長共通部分列による最小差分)、unordered(マルチセット照合)。 - キーや値の照合で大文字と小文字を区別しない設定が可能です。
- セグメント配列形式とドット表記形式の両方でパスを追跡します。
- 表形式または JSON 形式で出力できるCLI。インライン文字列またはファイルから読み込みます。
- MCP サーバーを内蔵しており、MCP 対応の AI アシスタントに CLI を組み込めます。
- エージェントスキル。Claude Code、OpenAI Codex CLI、OpenCode で使える単一のスキルです。
- 完全な TypeScript 型定義。
パッケージ
pnpm ワークスペースです。
| パッケージ | 説明 |
|---|---|
@compare-xml/core | コア比較ライブラリ(プログラム用 API)。 |
@compare-xml/cli | core をベースにしたコマンドラインツールと MCP サーバー。 |
compare-xml-vscode | VSCode 拡張機能:並列差分表示と差分ナビゲーター。 |
クイックスタート
ライブラリ
npm install @compare-xml/core
import { compareXML } from '@compare-xml/core';
const differences = compareXML({
baseXML: '<user><name>Alice</name><age>30</age></user>',
contrastXML: '<user><name>Bob</name><age>30</age><email>[email protected]</email></user>',
});
// [
// { pathString: 'user.name', pathBelongsTo: 'both', diffType: 'valueChanged', ... },
// { pathString: 'user.email', pathBelongsTo: 'contrast', diffType: 'added', ... },
// ]
API の全容については、コアの README を参照してください。
CLI
npm install -g @compare-xml/cli
compare-xml base.xml contrast.xml
┌──────────────┬──────────────┐
│ Key │ Change Type │
├──────────────┼──────────────┤
│ (Base) a │ valueChanged │
│ (Base) b │ deleted │
│ (Contrast) c │ added │
└──────────────┴──────────────┘
機械可読な出力には --json-export を、MCP サーバーとして起動するには --mcp を使用してください。すべてのフラグと MCP ツールのスキーマについては、CLI の README を参照してください。
MCP
{
"mcpServers": {
"compare-xml": {
"command": "npx",
"args": ["@compare-xml/cli@latest", "--mcp"]
}
}
}
スキル
単一の SKILL.md で、AI コーディングアシスタントが必要に応じて CLI を呼び出す方法を説明します。このファイルはオープンな Agent Skills 形式に準拠しており、Claude Code、OpenAI Codex CLI、OpenCode、Cursor など 50 以上のツールで動作します。
最も手早くインストールするには npx skills を使用してください。インストール済みの各エージェントを自動検出し、それぞれにスキルを追加します。
npx skills add unitstack/compare-xml
開発
Node.js ≥ 20 と pnpm が必要です。
# install dependencies
pnpm install
# build all packages
pnpm -r build
# run tests across the workspace
pnpm -r test
# lint
pnpm -r lint
リポジトリの構成:
apps/
└── compare-xml-vscode/ # VSCode extension
packages/
├── compare-xml-core/ # @compare-xml/core — library
├── compare-xml-cli/ # @compare-xml/cli — CLI + MCP server
└── internal/ # shared eslint/tsconfig (not published)
skills/
└── compare-xml/ # SKILL.md for Claude Code / Codex CLI / OpenCode
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。