mcpField
C
Compare Xml

Compare Xml

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

关于 Compare Xml

Compare Xml 是面向开发者的 XML 对比工具包,提供结构化 API、命令行、VSCode 扩展和 MCP 服务。它以路径和变更类型报告差异,并支持可配置的数组匹配方式。

主要功能

  1. 01深度比较元素、属性和文本
  2. 02三种数组匹配策略
  3. 03键和值的大小写不敏感匹配
  4. 04两种格式的路径追踪
  5. 05命令行表格与 JSON 输出
  6. 06VSCode 对齐差异视图和导航

适用场景

  1. 01检查不同版本 XML 的变化
  2. 02选择按顺序或无序匹配数组
  3. 03按路径和变更类型筛选差异

MCP 相关

命令行工具可作为 MCP 服务启动,为支持 MCP 的 AI 助手提供 XML 对比功能。

配置

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

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

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

安装包
npm@compare-xml/cli

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

compare-xml

用于结构化 XML 比较的工具包——查找两个 XML 文档之间的变化,并控制键、值和数组的匹配方式。

在线试用:comparejson.com/tools/compare-xml

为什么需要

大多数 XML 差异工具要么输出无结构的文本,要么隐藏关键信息(例如元素添加的位置、数组的差异在于顺序还是内容)。compare-xml 会将 XML 解析为结构化表示,并返回差异列表——每条记录都包含路径、所属一侧(base / contrast / both)以及变化类型(added、deleted、valueChanged),方便你据此渲染、筛选或编写程序。

功能

  • 深度比较 XML 元素、属性、数组和文本值。
  • 三种数组比较策略:byIndex(默认)、lcs(通过最长公共子序列实现最小差异)和 unordered(多重集合匹配)。
  • 忽略大小写匹配键和/或值。
  • 路径跟踪,支持分段数组和点表示法两种形式。
  • CLI 支持表格或 JSON 输出,可读取内联字符串或文件。
  • 内置 MCP 服务——可将 CLI 接入任何支持 MCP 的 AI 助手。
  • Agent Skill——一个技能即可用于 Claude Code、OpenAI Codex CLI 和 OpenCode。
  • 提供完整的 TypeScript 类型。

软件包

这是一个 pnpm 工作区:

软件包描述
@compare-xml/core核心比较库(编程接口)。
@compare-xml/cli命令行工具和 MCP 服务,基于 core 构建。
compare-xml-vscodeVSCode 扩展:对齐差异视图和差异导航器。

快速入门

库
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——它会自动检测你已安装的所有 Agent,并将技能添加到每个 Agent 中:

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

评论

支持 Markdown

第一次接触 MCP?

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

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