Desktop Commander MCP
Execute comandos de terminal, edite arquivos e gerencie fluxos de trabalho locais da área de trabalho por meio de clientes MCP como Claude, Cursor e VS Code.
Documentação
Desktop Commander MCP
Pesquise, atualize, gerencie arquivos e execute comandos de terminal com IA
Trabalhe com código e texto, execute processos e automatize tarefas, indo muito além de outros editores de IA — enquanto usa assinaturas do cliente host em vez de custos com tokens de API.
🖥️ Experimente o Aplicativo Desktop Commander (Beta)
Quer uma experiência melhor? O Aplicativo Desktop Commander oferece tudo o que o servidor MCP faz, além de:
- Use qualquer modelo de IA — Claude, GPT-4.5, Gemini 2.5 ou qualquer modelo que preferir
- Veja alterações de arquivos ao vivo — pré-visualizações visuais de arquivos enquanto a IA edita seus arquivos
- Adicione MCPs e contexto personalizados — estenda com suas próprias ferramentas, sem arquivos de configuração
- Em breve — sistema de habilidades, ditado, tarefas agendadas em segundo plano e muito mais
👉 Baixe o Aplicativo (macOS e Windows)
O servidor MCP abaixo ainda funciona muito bem com o Claude Desktop e outros clientes MCP — o aplicativo é para quem deseja uma experiência dedicada e refinada.
Sumário
- Recursos
- Como instalar
- Primeiros Passos
- Uso
- Interface de Pré-visualização de Arquivos e Editor Markdown
- Lidando com Comandos de Longa Duração
- Trabalho em Andamento e TODOs
- Patrocinadores e Apoiadores
- Site
- Mídia
- Depoimentos
- Perguntas Frequentes
- Contribuindo
- Licença
Todas as suas ferramentas de desenvolvimento de IA em um só lugar. O Desktop Commander coloca todas as ferramentas de desenvolvimento em um único chat. Execute comandos de terminal de longa duração no seu computador e gerencie processos através do Model Context Protocol (MCP). Construído sobre o MCP Filesystem Server para fornecer recursos adicionais de edição de arquivos com busca e substituição.
Recursos
- Controle Remoto por IA - Use o Desktop Commander a partir do ChatGPT, Claude web e outros serviços de IA via Remote MCP
- Interface de Pré-visualização de Arquivos - Pré-visualizações visuais de arquivos no Claude Desktop com markdown renderizado, imagens inline, conteúdo expansível, editor markdown integrado e acesso rápido "Abrir na pasta"
- Comandos de terminal aprimorados com controle interativo de processos
- Execute código em memória (Python, Node.js, R) sem salvar arquivos
- Análise instantânea de dados - basta pedir para analisar arquivos CSV/JSON/Excel
- Suporte nativo a arquivos Excel - Leia, escreva, edite e pesquise arquivos Excel (.xlsx, .xls, .xlsm) sem ferramentas externas
- Suporte a PDF - Leia PDFs com extração de texto, crie novos PDFs a partir de markdown, modifique PDFs existentes
- Suporte a DOCX - Leia, crie, edite e pesquise documentos do Word (.docx) com edição cirúrgica de XML e conversão de markdown para DOCX
- Interaja com processos em execução (SSH, bancos de dados, servidores de desenvolvimento)
- Execute comandos de terminal com streaming de saída
- Suporte a timeout de comandos e execução em segundo plano
- Gerenciamento de processos (listar e encerrar processos)
- Gerenciamento de sessões para comandos de longa duração
- Paginação de saída de processos - Leia a saída do terminal com controles de deslocamento/comprimento para evitar sobrecarga de contexto
- Gerenciamento de configuração do servidor:
- Obter/definir valores de configuração
- Atualizar várias configurações de uma vez
- Alterações dinâmicas de configuração sem reiniciar o servidor
- Operações completas de sistema de arquivos:
- Ler/escrever arquivos (texto, Excel, PDF, DOCX)
- Criar/listar diretórios
- Listagem recursiva de diretórios com profundidade configurável e proteção contra sobrecarga de contexto para pastas grandes
- Mover arquivos/diretórios
- Pesquisar arquivos e conteúdo (incluindo conteúdo do Excel)
- Obter metadados de arquivos
- Leitura de arquivos com deslocamento negativo: Leia do final dos arquivos usando valores de deslocamento negativos (como o Unix tail)
- Recursos de edição de código:
- Substituições de texto cirúrgicas para pequenas alterações
- Reescrita completa de arquivos para alterações maiores
- Suporte a múltiplos arquivos
- Substituições baseadas em padrões
- Pesquisa recursiva de código ou texto em pastas baseada em vscode-ripgrep
- Histórico local de chamadas de ferramentas e logs de auditoria:
- Chamadas de ferramentas e argumentos são registrados localmente na máquina que executa o Desktop Commander
- Histórico recente de chamadas com pré-visualizações limitadas de saída disponível através de
get_recent_tool_calls - Rotação/limpeza baseada em tamanho mantém os arquivos de histórico ativos limitados
- Salvaguardas de segurança (não é uma sandbox — veja SECURITY.md):
- Prevenção de travessia de symlink em operações de arquivos
- Lista de bloqueio de comandos para execução acidental
- Isolamento Docker para isolamento completo
Como instalar
Instalar no Claude Desktop
O Desktop Commander oferece múltiplos métodos de instalação para o Claude Desktop.
📋 Informações de Atualização e Desinstalação: As Opções 1, 2, 3, 4 e 6 têm atualizações automáticas. A Opção 5 requer atualizações manuais. Veja abaixo para detalhes.
Opção 1: Instalar via npx ⭐ Atualizações Automáticas (Requer Node.js)
Basta executar isto no terminal:
npx @wonderwhy-er/desktop-commander@latest setup
Para modo de depuração (permite conexão do inspetor Node.js):
npx @wonderwhy-er/desktop-commander@latest setup --debug
Opções de linha de comando durante a configuração:
--debug: Ativa o modo de depuração para o inspetor Node.js--no-onboarding: Desativa os prompts de integração para novos usuários
Reinicie o Claude se estiver em execução.
✅ Atualizações Automáticas: Sim - atualiza automaticamente quando você reinicia o Claude
🔄 Atualização Manual: Execute o comando de configuração novamente
🗑️ Desinstalar: Execute npx @wonderwhy-er/desktop-commander@latest remove
Opção 2: Usando instalador de script bash (macOS) ⭐ Atualizações Automáticas (Instala Node.js se necessário)
curl -fsSL https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install.sh | bash
Este script lida com todas as dependências e configuração automaticamente.
✅ Atualizações Automáticas: Sim
🔄 Atualização Manual: Execute novamente o comando do instalador bash acima
🗑️ Desinstalar: Execute npx @wonderwhy-er/desktop-commander@latest remove
Opção 3: Instalando via Smithery ⭐ Atualizações Automáticas (Requer Node.js)
- Visite: https://smithery.ai/server/@wonderwhy-er/desktop-commander
- Faça login no Smithery se ainda não tiver feito
- Selecione seu cliente (Claude Desktop) no lado direito
- Instale com a chave fornecida que aparece após selecionar seu cliente
- Reinicie o Claude Desktop
✅ Atualizações Automáticas: Sim - atualiza automaticamente quando você reinicia o Claude
🔄 Atualização Manual: Visite a página do Smithery e reinstale
Opção 4: Adicionar ao claude_desktop_config manualmente ⭐ Atualizações Automáticas (Requer Node.js)
Adicione esta entrada ao seu claude_desktop_config.json:
- No Mac:
~/Library/Application Support/Claude/claude_desktop_config.json - No Windows:
%APPDATA%\Claude\claude_desktop_config.json - No Linux:
~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"desktop-commander": {
"command": "npx",
"args": [
"-y",
"@wonderwhy-er/desktop-commander@latest"
]
}
}
}
Reinicie o Claude se estiver em execução.
✅ Atualizações Automáticas: Sim - atualiza automaticamente quando você reinicia o Claude
🔄 Atualização Manual: Execute o comando de configuração novamente
🗑️ Desinstalar: Execute npx @wonderwhy-er/desktop-commander@latest remove ou remova a entrada do seu claude_desktop_config.json
Opção 5: Clonar localmente ❌ Atualizações Manuais (Requer Node.js)
git clone https://github.com/wonderwhy-er/DesktopCommanderMCP.git
cd DesktopCommanderMCP
npm run setup
Reinicie o Claude se estiver em execução.
O comando de configuração instalará dependências, compilará o servidor e configurará o aplicativo desktop do Claude.
❌ Atualizações Automáticas: Não - requer atualizações manuais via git
🔄 Atualização Manual: cd DesktopCommanderMCP && git pull && npm run setup
🗑️ Desinstalar: Execute npx @wonderwhy-er/desktop-commander@latest remove ou remova o diretório clonado e a entrada do servidor MCP da configuração do Claude
Opção 6: Instalação Docker 🐳 ⭐ Atualizações Automáticas (Não Requer Node.js)
Perfeito para usuários que desejam isolamento ou não têm Node.js instalado. Executa em um contêiner Docker em sandbox com um ambiente de trabalho persistente.
Pré-requisitos: Docker Desktop instalado e em execução, aplicativo Claude Desktop instalado.
macOS/Linux:
bash <(curl -fsSL https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install-docker.sh)
Windows PowerShell:
iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install-docker.ps1'))
O instalador verificará o Docker, baixará a imagem, solicitará a montagem de pastas e configurará o Claude Desktop.
Persistência do Docker: Suas ferramentas, configurações, arquivos de trabalho e caches de pacotes sobrevivem a reinicializações.
Configuração Manual do Docker
Configuração básica (sem acesso a arquivos):
{
"mcpServers": {
"desktop-commander-in-docker": {
"command": "docker",
"args": ["run", "-i", "--rm", "mcp/desktop-commander:latest"]
}
}
}
Com montagem de pastas:
{
"mcpServers": {
"desktop-commander-in-docker": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-v", "/Users/username/Desktop:/mnt/desktop",
"-v", "/Users/username/Documents:/mnt/documents",
"mcp/desktop-commander:latest"
]
}
}
}
Montagem avançada de pastas:
{
"mcpServers": {
"desktop-commander-in-docker": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-v", "dc-system:/usr",
"-v", "dc-home:/root",
"-v", "dc-workspace:/workspace",
"-v", "dc-packages:/var",
"-v", "/Users/username/Projects:/mnt/Projects",
"-v", "/Users/username/Downloads:/mnt/Downloads",
"mcp/desktop-commander:latest"
]
}
}
}
Comandos de Gerenciamento do Docker
macOS/Linux:
# Check status
bash <(curl -fsSL https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install-docker.sh) --status
# Reset all persistent data
bash <(curl -fsSL https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install-docker.sh) --reset
Windows PowerShell:
# Check status
$script = (New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install-docker.ps1'); & ([ScriptBlock]::Create("$script")) -Status
# Reset all data
$script = (New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install-docker.ps1'); & ([ScriptBlock]::Create("$script")) -Reset
# Show help
$script = (New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install-docker.ps1'); & ([ScriptBlock]::Create("$script")) -Help
Solução de problemas: Redefinir e reinstalar do zero:
bash <(curl -fsSL https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install-docker.sh) --reset && bash <(curl -fsSL https://raw.githubusercontent.com/wonderwhy-er/DesktopCommanderMCP/refs/heads/main/install-docker.sh)
✅ Atualizações Automáticas: Sim - a tag latest obtém automaticamente versões mais recentes
🔄 Atualização Manual: docker pull mcp/desktop-commander:latest e depois reinicie o Claude
Instalar em Outros Clientes
O Desktop Commander funciona com qualquer cliente compatível com MCP. A configuração JSON padrão é:
{
"mcpServers": {
"desktop-commander": {
"command": "npx",
"args": ["-y", "@wonderwhy-er/desktop-commander@latest"]
}
}
}
Adicione isso ao arquivo de configuração MCP do seu cliente nos locais abaixo:
Cursor
Ou adicione manualmente a ~/.cursor/mcp.json (global) ou .cursor/mcp.json na pasta do seu projeto (específico do projeto).
Veja documentação MCP do Cursor para mais informações.
Windsurf
Adicione a ~/.codeium/windsurf/mcp_config.json. Veja documentação MCP do Windsurf para mais informações.
VS Code / GitHub Copilot
Adicione a .vscode/mcp.json no seu projeto ou nas Configurações do Usuário (JSON) do VS Code. Certifique-se de que o MCP esteja habilitado em Chat > MCP. Funciona no modo Agente.
Veja documentação MCP do VS Code para mais informações.
Cline
Configure através das configurações da extensão Cline no VS Code. Abra a barra lateral do Cline, clique no ícone de Servidores MCP e adicione a configuração JSON acima. Veja documentação MCP do Cline para mais informações.
Roo Code
Adicione ao seu arquivo de configuração MCP do Roo Code. Veja documentação MCP do Roo Code para mais informações.
Claude Code
claude mcp add --scope user desktop-commander -- npx -y @wonderwhy-er/desktop-commander@latest
Remova --scope user para instalar apenas no projeto atual. Veja documentação MCP do Claude Code para mais informações.
Trae
Use o recurso "Adicionar manualmente" e cole a configuração JSON acima. Veja documentação MCP do Trae para mais informações.
Kiro
Navegue até Kiro > MCP Servers, clique em + Add e cole a configuração JSON acima. Veja documentação MCP do Kiro para mais informações.
Codex (OpenAI)
O Codex usa configuração TOML. Execute este comando para adicionar o Desktop Commander:
codex mcp add desktop-commander -- npx -y @wonderwhy-er/desktop-commander@latest
Ou adicione manualmente a ~/.codex/config.toml:
[mcp_servers.desktop-commander]
command = "npx"
args = ["-y", "@wonderwhy-er/desktop-commander@latest"]
Veja documentação MCP do Codex para mais informações.
JetBrains (AI Assistant)
Em IDEs JetBrains, vá em Configurações → Ferramentas → AI Assistant → Model Context Protocol (MCP), clique em + Adicionar, selecione Como JSON e cole a configuração JSON acima. Consulte a documentação MCP do JetBrains para mais informações.
Gemini CLI
Adicione em ~/.gemini/settings.json:
{
"mcpServers": {
"desktop-commander": {
"command": "npx",
"args": ["-y", "@wonderwhy-er/desktop-commander@latest"]
}
}
}
Consulte a documentação do Gemini CLI para mais informações.
Augment Code
Pressione Cmd/Ctrl+Shift+P, abra o painel do Augment e adicione um novo servidor MCP chamado desktop-commander com a configuração JSON acima. Consulte a documentação MCP do Augment Code para mais informações.
Qwen Code
Execute este comando para adicionar o Desktop Commander:
qwen mcp add desktop-commander -- npx -y @wonderwhy-er/desktop-commander@latest
Ou adicione em .qwen/settings.json (projeto) ou ~/.qwen/settings.json (global). Consulte a documentação MCP do Qwen Code para mais informações.
ChatGPT / Claude Web (MCP Remoto)
Use o Desktop Commander a partir do ChatGPT, Claude web e outros serviços de IA via MCP Remoto — sem necessidade de aplicativo desktop.
👉 Comece em mcp.desktopcommander.app
Como funciona:
- Você executa um Dispositivo Remoto leve no seu computador
- Ele se conecta com segurança ao serviço de MCP Remoto na nuvem
- Sua IA envia comandos pela nuvem até o seu dispositivo
- Os comandos são executados localmente e os resultados retornam para sua IA
- Você mantém o controle — pare a qualquer momento com
Ctrl+C
Segurança
- ✅ O dispositivo só executa quando você o inicia
- ✅ Os comandos são executados com as suas permissões de usuário
- ✅ Autenticação OAuth segura e canal de comunicação criptografado
Atualizando e Desinstalando o Desktop Commander
Atualizações Automáticas (Opções 1, 2, 3, 4 e 6)
Opção 1 (npx), Opção 2 (instalador bash), 3 (Smithery), 4 (configuração manual) e 6 (Docker) atualizam automaticamente para a versão mais recente sempre que você reiniciar o Claude. Nenhuma intervenção manual é necessária.
Atualizações Manuais (Opção 5)
- Opção 5 (checkout local):
cd DesktopCommanderMCP && git pull && npm run setup
Desinstalando o Desktop Commander
🤖 Desinstalação Automática (Recomendada)
A maneira mais fácil de remover completamente o Desktop Commander:
npx @wonderwhy-er/desktop-commander@latest remove
Este desinstalador automático irá:
- ✅ Remover o Desktop Commander da configuração do servidor MCP do Claude
- ✅ Criar um backup da sua configuração do Claude antes de fazer alterações
- ✅ Fornecer orientação para a remoção completa do pacote
- ✅ Restaurar a partir do backup se algo der errado
🔧 Desinstalação Manual
Se o desinstalador automático não funcionar ou se você preferir a remoção manual:
Remover da Configuração do Claude
- Localize o arquivo de configuração do Claude Desktop:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
- Edite o arquivo de configuração:
- Abra o arquivo em um editor de texto
- Encontre e remova a entrada
"desktop-commander"da seção"mcpServers" - Salve o arquivo
Exemplo — Remova esta seção:
{
"desktop-commander": {
"command": "npx",
"args": ["@wonderwhy-er/desktop-commander@latest"]
}
}
Feche e reinicie o Claude Desktop para concluir a remoção.
🆘 Solução de Problemas
Se a desinstalação automática falhar:
- Use a desinstalação manual como alternativa
Se o Claude não iniciar após a desinstalação:
- Restaure o arquivo de configuração de backup criado pelo desinstalador
- Ou corrija manualmente a sintaxe JSON no seu claude_desktop_config.json
Precisa de ajuda?
- Junte-se à nossa comunidade no Discord: https://discord.com/invite/kQ27sNnZr7
Primeiros Passos
Depois que o Desktop Commander estiver instalado e o Claude Desktop for reiniciado, você estará pronto para turbinar sua experiência com o Claude!
🚀 Integração de Novos Usuários
O Desktop Commander inclui integração inteligente para ajudar você a descobrir o que é possível:
Para novos usuários: Quando você está começando (menos de 10 comandos bem-sucedidos), o Claude oferecerá automaticamente orientações úteis de início e tutoriais práticos depois que você usar o Desktop Commander com sucesso.
Solicite Ajuda a Qualquer Momento: Você pode pedir assistência de integração a qualquer momento simplesmente dizendo:
- "Ajude-me a começar com o Desktop Commander"
- "Mostre-me exemplos do Desktop Commander"
- "O que posso fazer com o Desktop Commander?"
O Claude então mostrará tutoriais e exemplos para iniciantes, incluindo:
- 📁 Organizando sua pasta Downloads automaticamente
- 📊 Analisando arquivos CSV/Excel com Python
- ⚙️ Configurando GitHub Actions CI/CD
- 🔍 Explorando e entendendo bases de código
- 🤖 Executando ambientes de desenvolvimento interativos
Uso
O servidor fornece um conjunto abrangente de ferramentas organizadas em várias categorias:
Ferramentas Disponíveis
| Categoria | Ferramenta | Descrição |
|---|---|---|
| Configuração | get_config | Obter a configuração completa do servidor como JSON (inclui blockedCommands, defaultShell, allowedDirectories, fileReadLineLimit, fileWriteLineLimit, telemetryEnabled) |
set_config_value | Definir um valor de configuração específico por chave. Configurações disponíveis: • blockedCommands: Matriz de comandos de shell que não podem ser executados• defaultShell: Shell a ser usado para comandos (ex.: bash, zsh, powershell)• allowedDirectories: Matriz de caminhos do sistema de arquivos que o servidor pode acessar para operações de arquivo (⚠️ comandos de terminal ainda podem acessar arquivos fora desses diretórios)• fileReadLineLimit: Número máximo de linhas para ler de uma vez (padrão: 1000)• fileWriteLineLimit: Número máximo de linhas para escrever de uma vez (padrão: 50)• telemetryEnabled: Ativar/desativar telemetria (booleano) | |
| Terminal | start_process | Iniciar programas com detecção inteligente de quando estão prontos para entrada |
interact_with_process | Enviar comandos para programas em execução e obter respostas | |
read_process_output | Ler a saída de processos em execução | |
force_terminate | Forçar o encerramento de uma sessão de terminal em execução | |
list_sessions | Listar todas as sessões de terminal ativas | |
list_processes | Listar todos os processos em execução com informações detalhadas | |
kill_process | Encerrar um processo em execução pelo PID | |
| Sistema de Arquivos | read_file | Ler conteúdos do sistema de arquivos local, URLs, arquivos Excel (.xlsx, .xls, .xlsm) e PDFs com paginação baseada em linhas/páginas |
read_multiple_files | Ler vários arquivos simultaneamente | |
write_file | Escrever conteúdos de arquivo com opções para modo de reescrita ou anexação. Suporta arquivos Excel (formato JSON 2D). Para PDFs, use write_pdf | |
write_pdf | Criar novos arquivos PDF a partir de markdown ou modificar PDFs existentes (inserir/excluir páginas). Suporta estilos HTML/CSS e gráficos SVG | |
create_directory | Criar um novo diretório ou garantir que ele exista | |
list_directory | Obter listagem recursiva detalhada de arquivos e diretórios (suporta parâmetro de profundidade, profundidade padrão=2) | |
move_file | Mover ou renomear arquivos e diretórios | |
start_search | Iniciar busca em streaming por arquivos por nome ou padrões de conteúdo (busca em arquivos de texto e conteúdo Excel) | |
get_more_search_results | Obter resultados paginados de busca ativa com suporte a deslocamento | |
stop_search | Parar uma busca ativa de forma graciosa | |
list_searches | Listar todas as sessões de busca ativas | |
get_file_info | Recuperar metadados detalhados sobre um arquivo ou diretório (inclui informações de planilha para arquivos Excel) | |
| Edição de Texto | edit_block | Aplicar substituições de texto direcionadas para arquivos de texto, ou atualizações de células baseadas em intervalo para arquivos Excel |
| Analítica | get_usage_stats | Obter estatísticas de uso para seu próprio conhecimento |
get_recent_tool_calls | Obter histórico recente de chamadas de ferramentas com argumentos e saídas para depuração e recuperação de contexto | |
give_feedback_to_desktop_commander | Abrir formulário de feedback no navegador para fornecer feedback à Equipe do Desktop Commander |
Exemplos Rápidos
Análise de Dados:
"Analyze sales.csv and show top customers" → Claude runs Python code in memory
Acesso Remoto:
"SSH to my server and check disk space" → Claude maintains SSH session
Desenvolvimento:
"Start Node.js and test this API" → Claude runs interactive Node session
Exemplos de Uso de Ferramentas
Formato de Bloco de Busca/Substituição:
filepath.ext
<<<<<<< SEARCH
content to find
=======
new content
>>>>>>> REPLACE
Exemplo:
src/main.js
<<<<<<< SEARCH
console.log("old message");
=======
console.log("new message");
>>>>>>> REPLACE
Recursos Aprimorados do Bloco de Edição
A ferramenta edit_block inclui várias melhorias para maior confiabilidade:
- Solicitação Aprimorada: As descrições das ferramentas agora enfatizam fazer múltiplas edições pequenas e focadas em vez de uma grande alteração
- Busca Difusa de Fallback: Quando correspondências exatas falham, ela executa busca difusa e fornece feedback detalhado
- Diffs em Nível de Caractere: Mostra exatamente o que é diferente usando o formato
{-removed-}{+added+} - Suporte a Múltiplas Ocorrências: Pode substituir múltiplas instâncias com o parâmetro
expected_replacements - Registro Abrangente: Todas as buscas difusas são registradas para análise e depuração
Quando uma busca falha, você verá informações detalhadas sobre a correspondência mais próxima encontrada, incluindo porcentagem de similaridade, tempo de execução e diferenças de caracteres. Todos esses detalhes são registrados automaticamente para análise posterior usando as ferramentas de registro de busca difusa.
Suporte a Docker
🐳 Uso em Ambiente Isolado
O Desktop Commander pode ser executado em contêineres Docker para isolamento completo do seu sistema host, proporcionando risco zero para o seu computador. Isso é perfeito para testes, desenvolvimento ou quando você quer sandboxing completo.
Instruções de Instalação
-
Instale o Docker para Windows/Mac
- Baixe e instale o Docker Desktop em docker.com
-
Obtenha a Configuração Docker do Desktop Commander
- Visite: https://hub.docker.com/mcp/server/desktop-commander/manual
- Opção A: Use o comando de terminal fornecido para configuração automatizada
- Opção B: Clique em "Standalone" para obter o JSON de configuração e adicione-o manualmente à sua configuração do Claude Desktop

-
Monte Suas Pastas da Máquina (Em Breve)
- Instruções sobre como montar seus diretórios locais no contêiner Docker serão fornecidas em breve
- Isso permitirá que você trabalhe com seus arquivos mantendo isolamento completo
Benefícios do Uso de Docker
- Isolamento completo do seu sistema host
- Ambiente consistente em diferentes máquinas
- Limpeza fácil — basta remover o contêiner quando terminar
- Perfeito para testar novos recursos ou configurações
Suporte a URL
read_fileagora pode buscar conteúdo tanto de arquivos locais quanto de URLs- Exemplo:
read_filecom o parâmetroisUrl: truepara ler de recursos web - Lida com conteúdo de texto e imagem de fontes remotas
- Imagens (locais ou de URLs) são exibidas visualmente na interface do Claude, não como texto
- O Claude pode ver e analisar o conteúdo real da imagem
- Tempo limite padrão de 30 segundos para solicitações de URL
Visualização de Arquivos e Editor Markdown
O Desktop Commander inclui um widget rico de visualização de arquivos no Claude Desktop que renderiza arquivos visualmente enquanto a IA trabalha com eles.
Tipos de arquivo suportados
- Markdown — visualização renderizada com editor integrado
- Imagens — exibição inline (PNG, JPEG, GIF, WebP, etc.)
- Arquivos de código — visualização de código-fonte com realce de sintaxe
- HTML — visualização renderizada com alternância para visualização de código-fonte
- Diretórios — árvore interativa com expandir/recolher e carregamento preguiçoso
- PDF, Excel, DOCX — extração e exibição nativa de conteúdo
Editor Markdown
Ao visualizar um arquivo .md no Claude Desktop, você pode editá-lo diretamente no painel de visualização — sem necessidade de abrir um aplicativo separado.
Como usar:
- Peça ao Claude para ler ou criar um arquivo markdown
- Expanda a visualização do arquivo para tela cheia usando o botão ⤢ Expandir
- O editor ativa automaticamente no modo tela cheia
- Edite seu conteúdo com alternância de visualização ao vivo, copiar, desfazer e controles de salvar
- As alterações são salvas de volta no disco; recolha para retornar à visualização inline Recursos do editor:
- Alternância ao vivo entre editar/visualizar — alterne entre markdown bruto e saída renderizada
- Salvamento automático em disco com indicador de status de salvamento
- Desfazer para reverter alterações não salvas
- Botão Copiar para capturar o código-fonte markdown completo
- Abrir no editor — inicie seu aplicativo markdown padrão diretamente do painel
- Consciência de arquivos parciais — carrega e mescla linhas adjacentes quando o arquivo foi apenas parcialmente lido
- Contexto de seleção de texto — selecione texto no modo de visualização e a IA pode referenciar sua seleção
Navegador de Diretórios
Quando o Claude executa list_directory, o resultado abre como uma árvore de arquivos interativa dentro do painel de visualização — não apenas saída de texto bruto.
Recursos:
- Árvore expansível — pastas expandem e recolhem ao clicar; o conteúdo de nível superior é mostrado imediatamente
- Carregamento preguiçoso — subpastas carregam sob demanda para manter a visualização inicial rápida
- Manipulação de diretórios grandes — diretórios com muitos itens mostram um botão
⚠ click to load allem vez de sobrecarregar a visualização - Abrir no Finder/Explorer — cada pasta tem um botão de abertura rápida para revelá-la no seu gerenciador de arquivos
- Clique para visualizar — clicar em qualquer arquivo na árvore abre-o diretamente no painel de visualização de arquivos
- Navegação de volta — após abrir um arquivo da árvore, um botão ← Voltar retorna à visualização do diretório
Outros recursos de visualização
- Expandir / recolher — alterne entre linha de resumo compacta e painel completo
- Abrir na pasta — revele o arquivo no Finder/Explorer com um clique
- Carregar mais linhas — carregue incrementalmente conteúdo acima ou abaixo de uma janela de leitura parcial
- Seleção de texto — destaque texto em qualquer visualização; a IA pode ver e referenciar sua seleção
Análise de Logs de Busca Difusa (scripts npm)
O sistema de registro de busca difusa inclui scripts npm convenientes para analisar logs fora do ambiente MCP:
# View recent fuzzy search logs
npm run logs:view -- --count 20
# Analyze patterns and performance
npm run logs:analyze -- --threshold 0.8
# Export logs to CSV or JSON
npm run logs:export -- --format json --output analysis.json
# Clear all logs (with confirmation)
npm run logs:clear
Para documentação detalhada sobre esses scripts, consulte scripts/README.md.
Logs de Busca Difusa
O Desktop Commander inclui registro abrangente para operações de busca difusa na ferramenta edit_block. Quando uma correspondência exata não é encontrada, o sistema realiza uma busca difusa e registra informações detalhadas para análise.
O Que É Registrado
Cada operação de busca difusa registra:
- Texto de busca e texto encontrado: O texto que você está procurando vs. o que foi encontrado
- Pontuação de similaridade: Quão próxima é a correspondência (0-100%)
- Tempo de execução: Quanto tempo a busca levou
- Diferenças de caracteres: Diff detalhado mostrando exatamente o que é diferente
- Metadados do arquivo: Extensão, comprimentos do texto de busca/encontrado
- Códigos de caracteres: Códigos de caracteres específicos que causam diferenças
Localização dos Logs
Os logs são salvos automaticamente em:
- macOS/Linux:
~/.claude-server-commander-logs/fuzzy-search.log - Windows:
%USERPROFILE%\.claude-server-commander-logs\fuzzy-search.log
O Que Você Aprenderá
Os logs de busca difusa ajudam você a entender:
- Por que correspondências exatas falham: Problemas comuns como diferenças de espaços em branco, finais de linha ou codificação de caracteres
- Padrões de desempenho: Como a complexidade da busca afeta o tempo de execução
- Problemas de tipo de arquivo: Quais extensões de arquivo comumente têm problemas de correspondência
- Problemas de codificação de caracteres: Códigos de caracteres específicos que causam diffs
Histórico Local de Ferramentas e Logs de Auditoria
O Desktop Commander mantém registros de chamadas de ferramentas localmente na máquina que executa o servidor MCP. Esses arquivos locais são separados da telemetria opcional e não são um log de auditoria histórico no lado do servidor.
claude_tool_call.log — log de argumentos local
Cada chamada de ferramenta manipulada pelo servidor MCP local é anexada como uma linha de texto contendo um timestamp ISO, o nome da ferramenta e os argumentos serializados em JSON. Os argumentos não são editados ou sanitizados antes de serem gravados neste arquivo local, portanto, podem conter texto de comando, caminhos de arquivo ou outros valores sensíveis passados às ferramentas. As saídas das ferramentas não são gravadas neste arquivo.
O arquivo ativo é rotacionado quando atinge 10 MB. O arquivo anterior é renomeado usando um timestamp, por exemplo claude_tool_call_2026-09-07_14-32-10.log, e um novo claude_tool_call.log é criado. Os arquivos rotacionados não são excluídos automaticamente pelo registrador.
Locais:
- macOS/Linux:
~/.claude-server-commander/claude_tool_call.log - Windows:
%USERPROFILE%\.claude-server-commander\claude_tool_call.log
tool-history.jsonl — histórico recente de chamadas de ferramentas
O Desktop Commander também mantém um histórico JSON Lines usado por get_recent_tool_calls. Cada registro contém o timestamp, nome da ferramenta, argumentos, duração e o resultado retornado. Este histórico é carregado do disco na inicialização, para que o histórico recente possa sobreviver a uma reinicialização do servidor MCP.
Para manter este histórico limitado:
- No máximo as 1.000 chamadas mais recentes são mantidas em memória.
- A saída armazenada é limitada a 4 KiB por registro; saídas maiores são substituídas por um marcador de omissão.
- O arquivo em disco é reduzido quando cresce além de 5 MiB, mantendo aproximadamente os 4 MiB mais recentes.
- Na inicialização, um histórico com mais de 2.000 registros é reescrito para os 1.000 registros mais recentes.
get_recent_tool_callsetrack_ui_eventsão excluídos deste histórico JSONL.
Locais:
- macOS/Linux:
~/.claude-server-commander/tool-history.jsonl - Windows:
%USERPROFILE%\.claude-server-commander\tool-history.jsonl
Chamadas remotas e retenção no lado do servidor
Chamadas executadas através do Remote Desktop Commander ainda são manipuladas pelo servidor MCP local e usam os mesmos arquivos de histórico local acima. O serviço Remote Desktop Commander atualmente não retém argumentos de comando ou resultados de comando como uma trilha de auditoria histórica no lado do servidor após a conclusão da execução.
Esses arquivos de histórico local também são separados da telemetria opcional do Desktop Commander. Os arquivos em si não são enviados como telemetria. Consulte Data Collection & Privacy e PRIVACY.md para detalhes de telemetria.
Manipulação de Comandos de Longa Duração
Para comandos que podem demorar:
Gerenciamento de Configuração
⚠️ Avisos de Segurança Importantes
Para informações abrangentes de segurança e relato de vulnerabilidades: Consulte SECURITY.md
-
Limitações de segurança conhecidas: Restrições de diretório e bloqueio de comandos podem ser contornados por vários métodos, incluindo symlinks, substituição de comandos e caminhos absolutos ou execução de código
-
Sempre altere a configuração em uma janela de chat separada de onde você está fazendo seu trabalho real. O Claude pode às vezes tentar modificar definições de configuração (como
allowedDirectories) se encontrar restrições de acesso ao sistema de arquivos. -
A definição
allowedDirectoriesatualmente só restringe operações do sistema de arquivos, não comandos de terminal. Comandos de terminal ainda podem acessar arquivos fora dos diretórios permitidos. -
Para segurança em produção: Use a instalação Docker que fornece isolamento completo do seu sistema host.
Ferramentas de Configuração
Você pode gerenciar a configuração do servidor usando as ferramentas fornecidas:
// Get the entire config
get_config({})
// Set a specific config value
set_config_value({ "key": "defaultShell", "value": "/bin/zsh" })
// Set multiple config values using separate calls
set_config_value({ "key": "defaultShell", "value": "/bin/bash" })
set_config_value({ "key": "allowedDirectories", "value": ["/Users/username/projects"] })
A configuração é salva em config.json no diretório de trabalho do servidor e persiste entre reinicializações do servidor.
Entendendo fileWriteLineLimit
A definição fileWriteLineLimit controla quantas linhas podem ser gravadas em uma única operação write_file (padrão: 50 linhas). Este limite existe por várias razões importantes:
Por que o limite existe:
- IAs são desperdiçadoras com tokens: Em vez de fazer duas pequenas edições em um arquivo, as IAs podem decidir reescrever tudo. Estamos tentando forçar as IAs a fazerem coisas em mudanças menores, pois isso economiza tempo e tokens
- Limites de mensagens UX do Claude: Existem limites dentro de uma mensagem e clicar em "Continuar" não funciona realmente. O que estamos tentando aqui é fazer a IA trabalhar em blocos menores para que, quando você atingir esse limite, vários blocos tenham sido concluídos e esse trabalho não seja perdido — ele só precisa recomeçar do último bloco
Definindo o limite:
// You can set it to thousands if you want
set_config_value({ "key": "fileWriteLineLimit", "value": 1000 })
// Or keep it smaller to force more efficient behavior
set_config_value({ "key": "fileWriteLineLimit", "value": 25 })
Valor máximo: Você pode defini-lo para milhares se quiser — não há restrição técnica.
Melhores práticas:
- Mantenha o padrão (50) para incentivar o comportamento eficiente da IA e evitar desperdício de tokens
- O sistema sugere automaticamente o particionamento quando os limites são excedidos
- Blocos menores significam menos trabalho perdido quando o Claude atinge os limites de mensagem
Melhores Práticas
-
Crie um chat dedicado para mudanças de configuração: Faça todas as suas mudanças de configuração em um chat e depois inicie um novo chat para seu trabalho real.
-
Tenha cuidado com
allowedDirectoriesvazio: Definir isso para um array vazio ([]) concede acesso a todo o seu sistema de arquivos para operações de arquivo. -
Use caminhos específicos: Em vez de usar caminhos amplos como
/, especifique diretórios exatos que você deseja acessar. -
Sempre verifique a configuração após mudanças: Use
get_config({})para confirmar que suas mudanças foram aplicadas corretamente.
Opções de Linha de Comando
O Desktop Commander suporta várias opções de linha de comando para personalizar o comportamento:
Desativar Onboarding
Por padrão, o Desktop Commander mostra prompts de onboarding úteis para novos usuários (aqueles com menos de 10 chamadas de ferramentas). Você pode desativar esse comportamento:
# Disable onboarding for this session
node dist/index.js --no-onboarding
# Or if using npm scripts
npm run start:no-onboarding
# For npx installations, modify your claude_desktop_config.json:
{
"mcpServers": {
"desktop-commander": {
"command": "npx",
"args": [
"-y",
"@wonderwhy-er/desktop-commander@latest",
"--no-onboarding"
]
}
}
}
Quando o onboarding é desativado automaticamente:
- Quando o nome do cliente MCP está definido como "desktop-commander"
- Ao usar o sinalizador
--no-onboarding - Após os usuários usarem prompts de onboarding ou fazerem 10+ chamadas de ferramentas
Informações de depuração:
O servidor registrará quando o onboarding for desativado: "Onboarding disabled via --no-onboarding flag"
Usando Diferentes Shells
Você pode especificar qual shell usar para execução de comandos:
// Using default shell (bash or system default)
execute_command({ "command": "echo $SHELL" })
// Using zsh specifically
execute_command({ "command": "echo $SHELL", "shell": "/bin/zsh" })
// Using bash specifically
execute_command({ "command": "echo $SHELL", "shell": "/bin/bash" })
Isso permite que você use recursos específicos do shell ou mantenha ambientes consistentes entre comandos.
execute_commandretorna após o tempo limite com a saída inicial- O comando continua em segundo plano
- Use
read_outputcom PID para obter nova saída - Use
force_terminatepara parar se necessário
Depuração
Se você precisar depurar o servidor, pode instalá-lo em modo de depuração:
# Using npx
npx @wonderwhy-er/desktop-commander@latest setup --debug
# Or if installed locally
npm run setup:debug
Isso irá:
- Configurar o Claude para usar um servidor separado "desktop-commander"
- Habilitar o protocolo do inspetor Node.js com o sinalizador
--inspect-brk=9229 - Pausar a execução no início até que um depurador se conecte
- Habilitar variáveis de ambiente de depuração adicionais
Para conectar um depurador:
- No Chrome, visite
chrome://inspecte procure a instância Node.js - No VS Code, use a configuração de depuração "Attach to Node Process"
- Outros IDEs/ferramentas podem ter opções semelhantes de "anexar" para depuração Node.js
Notas importantes de depuração:
- O servidor pausará na inicialização até que um depurador se conecte (devido ao sinalizador
--inspect-brk) - Se você não vir atividade durante a depuração, certifique-se de estar conectado ao processo Node.js correto
- Vários processos Node podem estar em execução; conecte-se ao que está na porta 9229
- O servidor de depuração é identificado como "desktop-commander-debug" na lista de servidores MCP do Claude
Solução de problemas:
- Se o Claude expirar ao tentar usar o servidor de depuração, seu depurador pode não estar conectado corretamente
- Quando conectado corretamente, o processo continuará a execução após atingir o primeiro ponto de interrupção
- Você pode adicionar pontos de interrupção adicionais no seu IDE uma vez conectado
Integração com Model Context Protocol
Este projeto estende o MCP Filesystem Server para habilitar:
- Suporte a servidor local no Claude Desktop
- Execução completa de comandos do sistema
- Gerenciamento de processos
- Operações de arquivo
- Edição de código com blocos de busca/substituição
Criado como parte da exploração de MCPs do Claude: https://youtube.com/live/TlbjFDbl5Us
Apoie o Desktop Commander
📢 APOIE ESTE PROJETO
Desktop Commander MCP é gratuito e de código aberto, mas precisa do seu apoio para prosperar!
Nossa filosofia é simples: não queremos que você pague por ele se não estiver tendo sucesso. Mas se o Desktop Commander contribuir para o seu sucesso, considere contribuir com o nosso.
Formas de apoiar:
- 🌟 GitHub Sponsors - Apoio recorrente
- ☕ Buy Me A Coffee - Contribuições únicas
- 💖 Patreon - Torne-se um patrono e apoie-nos mensalmente
- ⭐ Dê uma estrela no GitHub - Ajude outros a descobrir o projeto
❤️ Hall da Fama dos Apoiadores
Apoiadores generosos são destacados aqui. Obrigado por ajudar a tornar este projeto possível!
Por que seu apoio é importante
Seu apoio nos permite:
- Continuar o desenvolvimento e a manutenção ativos
- Adicionar novos recursos e integrações
- Melhorar a compatibilidade entre plataformas
- Fornecer melhor documentação e exemplos
- Construir uma comunidade mais forte em torno do projeto
Website
Visite nosso site oficial em https://desktopcommander.app/ para obter as informações mais recentes, documentação e atualizações.
Mídia
Saiba mais sobre este projeto por meio destes recursos:
Artigo
Claude com MCPs substituiu Cursor & Windsurf. Como isso aconteceu? - Uma exploração detalhada de como o Claude com recursos de Model Context Protocol está mudando os fluxos de trabalho dos desenvolvedores.
Vídeo
Tutorial em Vídeo do Claude Desktop Commander - Assista a como configurar e usar o Commander de forma eficaz.
Publicação no AnalyticsIndiaMag
Este Desenvolvedor Abandonou Windsurf e Cursor Usando Claude com MCPs
Comunidade
Junte-se ao nosso servidor no Discord para obter ajuda, compartilhar feedback e conectar-se com outros usuários.
Depoimentos
https://www.youtube.com/watch?v=ly3bed99Dy8&lc=UgyyBt6_ShdDX_rIOad4AaABAg
https://www.youtube.com/watch?v=ly3bed99Dy8&lc=UgztdHvDMqTb9jiqnf54AaABAg
https://www.youtube.com/watch?v=ly3bed99Dy8&lc=UgyQFTmYLJ4VBwIlmql4AaABAg
https://www.youtube.com/watch?v=ly3bed99Dy8&lc=Ugy4-exy166_Ma7TH-h4AaABAg
https://medium.com/@pharmx/you-sir-are-my-hero-62cff5836a3e
Se você acha este projeto útil, considere dar uma ⭐ estrela no GitHub! Isso ajuda outros a descobrirem o projeto e incentiva o desenvolvimento contínuo.
Aceitamos contribuições da comunidade! Se você encontrou um bug, tem uma solicitação de recurso ou quer contribuir com código, veja como você pode ajudar:
- Encontrou um bug? Abra uma issue em github.com/wonderwhy-er/DesktopCommanderMCP/issues
- Tem uma ideia de recurso? Envie uma solicitação de recurso na seção de issues
- Quer contribuir com código? Faça um fork do repositório, crie uma branch e envie um pull request
- Perguntas ou discussões? Inicie uma discussão na aba GitHub Discussions
Todas as contribuições, grandes ou pequenas, são muito apreciadas!
Se você acha esta ferramenta valiosa para o seu fluxo de trabalho, considere apoiar o projeto.
Perguntas Frequentes
Aqui estão respostas para algumas perguntas comuns. Para um FAQ mais abrangente, consulte nosso documento de FAQ detalhado.
O que é o Desktop Commander?
É uma ferramenta MCP que permite ao Claude Desktop acessar seu sistema de arquivos e terminal, transformando o Claude em um assistente versátil para codificação, automação, exploração de bases de código e muito mais.
Como isso é diferente do Cursor/Windsurf?
Diferente de ferramentas focadas em IDE, o Claude Desktop Commander oferece uma abordagem centrada em soluções que funciona com todo o seu sistema operacional, não apenas dentro de um ambiente de codificação. O Claude lê arquivos por completo em vez de dividi-los em partes, pode trabalhar em vários projetos simultaneamente e executa alterações de uma só vez, sem exigir revisão constante.
Preciso pagar por créditos de API?
Não. Esta ferramenta funciona com a assinatura padrão Pro do Claude Desktop ($20/mês), não com chamadas de API, então você não terá custos adicionais além da taxa de assinatura.
O Desktop Commander é atualizado automaticamente?
Sim, quando instalado via npx ou Smithery, o Desktop Commander é atualizado automaticamente para a versão mais recente quando você reinicia o Claude. Nenhum processo de atualização manual é necessário.
Quais são os casos de uso mais comuns?
- Explorar e entender bases de código complexas
- Gerar diagramas e documentação
- Automatizar tarefas em todo o seu sistema
- Trabalhar com vários projetos simultaneamente
- Fazer alterações cirúrgicas no código com controle preciso
Estou tendo problemas para instalar ou usar a ferramenta. Onde posso obter ajuda?
Junte-se ao nosso servidor no Discord para suporte da comunidade, verifique as issues no GitHub para problemas conhecidos ou revise o FAQ completo para dicas de solução de problemas. Você também pode visitar a seção de FAQ do nosso site para uma experiência mais amigável. Se encontrar um novo problema, considere abrir uma issue no GitHub com detalhes sobre o seu problema.
Como reporto vulnerabilidades de segurança?
Crie uma Issue no GitHub com informações detalhadas sobre quaisquer vulnerabilidades de segurança que você descobrir. Consulte nossa Política de Segurança para diretrizes completas sobre divulgação responsável.
Coleta de Dados e Privacidade
O Desktop Commander coleta telemetria limitada e pseudônima para melhorar a ferramenta. Não coletamos conteúdos de arquivos, caminhos de arquivos ou argumentos de comandos como telemetria.
Isso é separado do histórico local de ferramentas e logs de auditoria, que permanecem na máquina que executa o Desktop Commander e podem conter argumentos de ferramentas e prévias limitadas de resultados.
Opt-out: Peça ao Claude para "desativar a telemetria do Desktop Commander" ou defina "telemetryEnabled": false na sua configuração.
Para detalhes completos, consulte nossa Política de Privacidade.
Verificações
Licença
MIT