Unified Diff MCP Server

Visualização de diferenças em HTML e PNG usando diff2html, projetada para saída de dry-run do edit_file do sistema de arquivos com runtime Bun de alto desempenho.

Documentação

Servidor MCP de Diff Unificado

smithery badge

Visualização de diffs bonita para o Claude Desktop. Transforme diffs de código em comparações visuais impressionantes com integração com GitHub Gist e saída para arquivo local.

Unified Diff Visualization Screenshot

✨ Recursos

  • 🎨 Visualização de diff HTML bonita usando diff2html
  • 🌐 Integração com GitHub Gist para compartilhamento instantâneo
  • 📁 Saída para arquivo local (PNG/HTML)
  • 🔄 Funcionalidade de exclusão automática para diffs temporários
  • 🖥️ Suporte multiplataforma (Windows, macOS, Linux)
  • Alto desempenho com runtime Bun
  • 🛡️ Segurança aprimorada com proteção em vários níveis para diffs compartilhados
  • 🔒 Segurança em vários níveis (Baixa/Média/Alta) para diferentes casos de uso

🚀 Início Rápido

Instalação via 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"
}'

Instalação Manual

  1. Instale o Claude Desktop e o Bun
  2. Clone e compile:
    git clone https://github.com/gorosun/unified-diff-mcp.git
    cd unified-diff-mcp
    bun install
    
  3. Configure o Claude Desktop - veja Configuração abaixo

🛠️ Visão Geral das Ferramentas

FerramentaFinalidadeSaídaMelhor Para
visualize_diff_html_contentExibição no navegador e compartilhamentoGitHub Gist + URL de pré-visualização HTMLCompartilhamento rápido, visualização instantânea
visualize_diff_output_fileArmazenamento em arquivo localArquivos PNG/HTMLArmazenamento local, apresentações

📖 Exemplos de Uso

🎯 Prompts Ideais por Finalidade

FinalidadePrompt RecomendadoFerramenta UsadaSaída
Pré-visualização RápidaPlease visualize and preview the following diff:
以下のdiffを可視化してプレビューしてください
visualize_diff_html_contentGitHub Gist + URL de pré-visualização HTML
Armazenamento LocalPlease visualize and save the following diff to a file:
以下のdiffを可視化してファイルに保存してください
visualize_diff_output_fileArquivo HTML/PNG local
Compartilhar com OutrosPlease visualize the following diff and create a shareable link:
以下のdiffを可視化して共有リンクを作成してください
visualize_diff_html_contentGitHub Gist com URL compartilhável
Exportar ImagemPlease visualize and save the following diff as a PNG image:
以下のdiffを可視化してPNG画像で保存してください
visualize_diff_output_fileImagem PNG local
Revisão de CódigoPlease visualize the following diff in side-by-side format:
以下のdiffをside-by-side形式で可視化してください
Qualquer ferramentaComparação lado a lado
DocumentaçãoPlease visualize and save the following diff as an HTML file:
以下のdiffを可視化してHTMLファイルで保存してください
visualize_diff_output_fileArquivo HTML local
🔒 Compartilhamento SeguroPlease visualize this diff with high security:
以下のdiffを高セキュリティで可視化してください
visualize_diff_html_contentGist secreto com exclusão automática

Compartilhe diff instantaneamente (GitHub Gist)

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

Salve diff localmente

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

🎛️ Configuração

Variáveis de Ambiente

VariávelDescriçãoPadrão
GITHUB_TOKENToken de Acesso Pessoal do GitHub (para integração com Gist)Necessário para visualize_diff_html_content
DEFAULT_AUTO_OPENAbrir automaticamente arquivos geradosfalse
DEFAULT_OUTPUT_MODEFormato de saída padrão (html ou image)html

Configuração do Token do GitHub

  1. Acesse Configurações do GitHub > Tokens de Acesso Pessoal
  2. Gere um novo token com o escopo gist
  3. Adicione ao seu ambiente:
    export GITHUB_TOKEN="your_token_here"
    

Configuração do Claude Desktop

macOS:

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

Windows:

code %APPDATA%\Claude\claude_desktop_config.json

Modelo de configuração:

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

📋 Referência de Parâmetros

Parâmetros Comuns

ParâmetroTipoPadrãoDescrição
diffstring(obrigatório)Texto do diff unificado
formatstringside-by-sideFormato de exibição (line-by-line ou side-by-side)
showFileListbooleantrueMostrar resumo da lista de arquivos
highlightbooleantrueAtivar realce de sintaxe
oldPathstringfile.txtCaminho do arquivo original
newPathstringfile.txtCaminho do arquivo modificado
autoOpenbooleanfalseAbrir automaticamente no navegador

Específico do GitHub Gist

ParâmetroTipoPadrãoDescrição
expiryMinutesnumber30Tempo de exclusão automática (1-1440 minutos)
publicbooleanfalseGist público vs. secreto

Específico de Arquivo Local

ParâmetroTipoPadrãoDescrição
outputTypestringhtmlFormato de saída (html ou image)

🌍 Suporte a Plataformas

PlataformaAbertura AutomáticaComandos
Windowsstart (principal), explorer (alternativo)
macOSopen (principal), AppleScript (alternativo)
Linuxxdg-open

🔧 Desenvolvimento

Modo de desenvolvimento (com recarga automática):

{
  "command": "bun",
  "args": ["--watch", "/path/to/unified-diff-mcp/src/index.ts"]
}

Modo de produção:

{
  "command": "bun",
  "args": ["run", "/path/to/unified-diff-mcp/src/index.ts"]
}

📚 Uso Avançado

🔒 Níveis de Segurança Aprimorados

Quando o Token do GitHub não está disponível ou para compartilhamento seguro, você pode escolher entre vários níveis de segurança:

Nível de SegurançaConfiguraçãoRecursosCasos de Uso
🟢 BaixoGist secreto + exclusão automática em 60minAcesso somente por URLExemplos de código, aprendizado
🟡 MédioGist secreto + Senha + exclusão automática em 30minURL + código de acesso necessáriosRevisões em equipe
🔴 AltoGist secreto + Senha + exclusão automática em 15minURL + código de acesso + curta duraçãoCódigo sensível

Exemplo de Uso

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
 };

Exemplo de Resposta:

🔒 **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

🔄 Funcionalidade Alternativa

Quando o Token do GitHub não está disponível, o sistema usa arquivos locais como alternativa:

  • HTML salvo como arquivo temporário
  • Abertura automática no navegador
  • Gerenciamento de arquivos baseado em segurança

Para guias detalhados de configuração e integração:

🤝 Clientes Suportados

  • Claude Desktop (Principal)
  • Claude Code (CLI)
  • VS Code + Extensão MCP
  • Cline e outros clientes MCP

📄 Licença

Licença MIT - veja o arquivo LICENSE para detalhes.

Dependências

BibliotecaLicençaFinalidade
diff2htmlMITGeração de diff HTML
playwright-coreApache 2.0Automação de navegador
@modelcontextprotocol/sdkMITIntegração MCP

Feito com ❤️ para a comunidade do Claude Desktop