代码差异可视化工具

Unified Diff MCP Server是一个为Claude Desktop设计的代码差异可视化工具,提供美观的HTML差异展示、GitHub Gist集成和本地文件输出功能,适用于代码审查、文档记录和安全分享等场景。

  • by gorosun
  • TypeScript
  • 本地部署
  • 12 星标
  • 更新于
在 GitHub 查看 gorosun/unified-diff-mcp

使用说明

统一Diff-MCP服务器

Claude Desktop的漂亮差异可视化。通过GitHub Gist集成和本地文件输出,将代码差异转化为令人惊叹的视觉比较。

✨ 特性

  • 🎨 漂亮的HTML差异可视化 使用diff2html
  • 🌐 GitHub Gist集成 用于即时共享
  • 📁 本地文件输出 (PNG/HTML)
  • 🔄 自动删除功能 对于临时差异
  • 🖥️ 与跨平台支持 (Windows、macOS、Linux)
  • ⚡ 高性能 使用Bun运行时
  • 🛡️ 增强的安全性 为共享差异提供多级保护
  • 🔒 多级安全 (低/中/高)适用于不同的用例

🚀 快速开始

通过Smithery安装

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"
}'

手动安装

  1. 安装 克劳德桌面 和 包子
  2. 克隆和构建:
    git clone https://github.com/gorosun/unified-diff-mcp.git
    cd unified-diff-mcp
    bun install
    
  3. 配置Claude桌面 -看 配置 在......下面

🛠️ 工具概述

工具 目的 输出 最佳用途
visualize_diff_html_content 浏览器显示和共享 GitHub Gist+HTML预览URL 快速共享,即时查看
visualize_diff_output_file 本地文件存储 PNG/HTML文件 本地存储,演示文稿

📖 使用示例

🎯 按目的优化提示

目的 建议提示 使用的工具 输出
快速预览 Please visualize and preview the following diff:
以下のdiffを可視化してプレビューしてください
visualize_diff_html_content GitHub Gist+HTML预览URL
本地存储 Please visualize and save the following diff to a file:
以下のdiffを可視化してファイルに保存してください
visualize_diff_output_file 本地HTML/PNG文件
与他人共享 Please visualize the following diff and create a shareable link:
以下のdiffを可視化して共有リンクを作成してください
visualize_diff_html_content 带有可共享URL的GitHub Gist
图像导出 Please visualize and save the following diff as a PNG image:
以下のdiffを可視化してPNG画像で保存してください
visualize_diff_output_file 本地PNG图像
代码审查 Please visualize the following diff in side-by-side format:
以下のdiffをside-by-side形式で可視化してください
任一工具 并排比较
文档 Please visualize and save the following diff as an HTML file:
以下のdiffを可視化してHTMLファイルで保存してください
visualize_diff_output_file 本地HTML文件
🔒 安全共享 Please visualize this diff with high security:
以下のdiffを高セキュリティで可視化してください
visualize_diff_html_content 带有自动删除功能的Secret Gist

立即分享差异(GitHub Gist)

visualize_diff_html_content:
- Creates temporary GitHub Gist
- Auto-deletes after 30 minutes
- Instant browser-ready URLs
- Perfect for code reviews

在本地保存差异

visualize_diff_output_file:
- Saves PNG or HTML to local disk
- Auto-opens in browser (optional)
- Perfect for documentation

🎛️ 配置

环境变量

变量 描述 默认值
GITHUB_TOKEN GitHub个人访问令牌(用于Gist集成) 需要 visualize_diff_html_content
DEFAULT_AUTO_OPEN 自动打开生成的文件 false
DEFAULT_OUTPUT_MODE 默认输出格式(html 或 image) html

GitHub令牌设置

  1. 首选 GitHub设置>个人访问令牌
  2. 使用生成新令牌 gist 范围
  3. 添加到您的环境中:
    export GITHUB_TOKEN="your_token_here"
    

Claude桌面配置

macOS:

code ~/Library/Application\ Support/Claude/claude_desktop_config.json

窗户:

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 字符串 (必填) 统一差异文本
format 字符串 side-by-side 显示格式(line-by-line 或 side-by-side)
showFileList 布尔值 true 显示文件列表摘要
highlight 布尔值 true 启用语法高亮显示
oldPath 字符串 file.txt 原始文件路径
newPath 字符串 file.txt 修改文件路径
autoOpen 布尔值 false 在浏览器中自动打开

GitHub Gist特定

参数 类型 默认值 说明
expiryMinutes 编号 30 自动删除时间(1-1440分钟)
public 布尔值 false 公开vs秘密要点

本地文件特定

参数 类型 默认值 说明
outputType 字符串 html 输出格式(html 或 image)

🌍 平台支持

平台 自动打开 命令
视窗 ✅ 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 Token不可用或无法安全共享时,您可以从多个安全级别中进行选择:

安全级别 配置 功能 用例
🟢 低 Secret Gist+60分钟自动删除 仅限URL访问 代码示例,学习
🟡 中等 Secret Gist+密码+30分钟自动删除 需要URL+访问码 团队评价
🔴 高 密码+密码+15分钟自动删除 URL+访问码+短时间 敏感码

用法示例

Please visualize this diff with high security:
--- a/config.js
+++ b/config.js
@@ -1,3 +1,4 @@
 const config = {
-  apiKey: 'old-key'
+  apiKey: 'new-secure-key',
+  timeout: 5000
 };

响应示例:

🔒 **Secure Diff Visualization**

🔴 **Security Level**: High Security - Secret Gist + Password (15min auto-delete)
📋 **Preview Link**: https://htmlpreview.github.io/?...
🔑 **Access Code**: `a7x9k2`
⏰ **Auto-delete**: 15 minutes

🔄 回退功能

当GitHub Token不可用时,系统会回退到本地文件:

  • HTML保存为临时文件
  • 自动打开浏览器
  • 基于安全的文件管理

有关详细的设置和集成指南:

🤝 支持的客户

  • 克劳德桌面 主要的,重要的
  • 克劳德代码 (CLI)
  • VS代码+MCP扩展
  • 克莱恩 以及其他MCP客户端

📄 许可证

MIT许可证-请参阅 许可证 文件以获取详细信息。

依赖项

库 许可证 目的
diff2html MIT HTML差异生成
剧作家核心 Apache 2.0 浏览器自动化
@模型上下文协议/sdk MIT MCP集成

由以下材料制成❤️ 克劳德桌面社区