用于 Claude Desktop 的美观差异可视化。通过与 GitHub Gist 集成和本地文件输出,将代码差异转换为令人惊叹的视觉比较。
<img src="examples/screenshot.png" alt="统一差异可视化截图" width="800" style="max-width: 100%; height: auto;">bunx @smithery/cli install @gorosun/unified-diff-mcp --client claude --config '{
"defaultAutoOpen": true,
"defaultOutputMode": "html",
"githubUsername": "your_actual_github_username",
"githubToken": "ghp_your_actual_token_here"
}'
git clone https://github.com/gorosun/unified-diff-mcp.git
cd unified-diff-mcp
bun install
| 工具 | 目的 | 输出 | 最佳用途 |
|---|---|---|---|
visualize_diff_html_content | 浏览器显示及分享 | GitHub Gist + HTML 预览 URL | 快速分享,即时查看 |
visualize_diff_output_file | 本地文件存储 | PNG/HTML 文件 | 本地存储,演示 |
| 目的 | 推荐提示 | 使用工具 | 输出 |
|---|---|---|---|
| 快速预览 | 请可视化并预览以下差异:<br>以下のdiffを可視化してプレビューしてください | visualize_diff_html_content | GitHub Gist + HTML 预览 URL |
| 本地存储 | 请可视化并保存以下差异到文件:<br>以下のdiffを可視化してファイルに保存してください | visualize_diff_output_file | 本地 HTML/PNG 文件 |
| 与其他分享 | 请可视化以下差异并创建一个可分享链接:<br>以下のdiffを可視化して共有リンクを作成してください | visualize_diff_html_content | 带有可分享 URL 的 GitHub Gist |
| 图像导出 | 请可视化并保存以下差异为 PNG 图像:<br>以下のdiffを可視化してPNG画像で保存してください | visualize_diff_output_file | 本地 PNG 图像 |
| 代码审查 | 请以并排格式可视化以下差异:<br>以下のdiffをside-by-side形式で可視化してください | 任一工具 | 并排比较 |
| 文档 | 请可视化并保存以下差异为 HTML 文件:<br>以下のdiffを可視化してHTMLファイルで保存してください | visualize_diff_output_file | 本地 HTML 文件 |
| 🔒 安全分享 | 请以高安全性可视化此差异:<br>以下のdiffを高セキュリティで可視化してください | visualize_diff_html_content | 自动删除的秘密 Gist |
visualize_diff_html_content:
- 创建临时 GitHub Gist
- 30分钟后自动删除
- 即时浏览器可用 URL
- 适合代码审查
visualize_diff_output_file:
- 将 PNG 或 HTML 保存到本地磁盘
- 可选自动在浏览器中打开
- 适合文档
| 变量 | 描述 | 默认值 |
|---|---|---|
GITHUB_TOKEN | GitHub 个人访问令牌(用于 Gist 集成) | 对于 visualize_diff_html_content 是必需的 |
DEFAULT_AUTO_OPEN | 是否自动打开生成的文件 | false |
DEFAULT_OUTPUT_MODE | 默认输出格式(html 或 image) | html |
gist 范围的新令牌export GITHUB_TOKEN="your_token_here"
macOS:
code ~/Library/Application\ Support/Claude/claude_desktop_config.json
Windows:
code %APPDATA%\Claude\claude_desktop_config.json
配置模板:
{
"mcpServers": {
"unified-diff-mcp": {
"command": "bun",
"args": ["run", "/path/to/unified-diff-mcp/src/index.ts"],
"env": {
"GITHUB_TOKEN": "your_github_token_here",
"DEFAULT_AUTO_OPEN": "true",
"DEFAULT_OUTPUT_MODE": "html"
}
}
}
}
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
diff | string | (必填) | 统一差异文本 |
format | string | side-by-side | 显示格式(line-by-line 或 side-by-side) |
showFileList | boolean | true | 显示文件列表摘要 |
highlight | boolean | true | 启用语法高亮 |
oldPath | string | file.txt | 原始文件路径 |
newPath | string | file.txt | 修改后文件路径 |
autoOpen | boolean | false | 在浏览器中自动打开 |
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
expiryMinutes | number | 30 | 自动删除时间(1-1440 分钟) |
public | boolean | false | 公开 vs 秘密 Gist |
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
outputType | string | html | 输出格式(html 或 image) |
| 平台 | 自动打开 | 命令 |
|---|---|---|
| Windows | ✅ | start(主要),explorer(备用) |
| macOS | ✅ | open(主要),AppleScript(备用) |
| Linux | ✅ | xdg-open |
开发模式(带热重载):
{
"command": "bun",
"args": ["--watch", "/path/to/unified-diff-mcp/src/index.ts"]
}
生产模式:
{
"command": "bun",
"args": ["run", "/path/to/unified-diff-mcp/src/index.ts"]
}
当没有 GitHub 令牌或需要安全分享时,可以选择多个安全级别:
| 安全级别 | 配置 | 功能 | 使用案例 |
|---|---|---|---|
| 🟢 低 | 秘密 Gist + 60分钟自动删除 | 仅 URL 访问 | 代码示例,学习 |
| 🟡 中 | 秘密 Gist + 密码 + 30分钟自动删除 | 需要 URL + 访问码 | 团队审查 |
| 🔴 高 | 秘密 Gist + 密码 + 15分钟自动删除 | 需要 URL + 访问码 + 短暂时间 | 敏感代码 |
请以高安全性可视化此差异:
--- a/config.js
+++ b/config.js
@@ -1,3 +1,4 @@
const config = {
- apiKey: 'old-key'
+ apiKey: 'new-secure-key',
+ timeout: 5000
};
响应示例:
🔒 **安全差异可视化**
🔴 **安全级别**:高安全性 - 秘密 Gist + 密码(15分钟自动删除)
📋 **预览链接**:https://htmlpreview.github.io/?...
🔑 **访问码**:`a7x9k2`
⏰ **自动删除**:15分钟
当没有 GitHub 令牌时,系统会回退到本地文件:
对于详细的设置和集成指南:
MIT 许可证 - 详情见 LICENSE 文件。
| 库 | 许可证 | 目的 |
|---|---|---|
| diff2html | MIT | HTML 差异生成 |
| playwright-core | Apache 2.0 | 浏览器自动化 |
| @modelcontextprotocol/sdk | MIT | MCP 集成 |
由 ❤️ 为 Claude Desktop 社区制作