/ Diretório / Playground / Desktop Commander
● Comunidade wonderwhy-er ⚡ Instantâneo

Desktop Commander

por wonderwhy-er · wonderwhy-er/DesktopCommanderMCP

Dê ao Claude um terminal de verdade — operações de arquivo, edições de código, processos e shell em todo o sistema de arquivos com controle de permissões.

Desktop Commander é o servidor MCP que transforma o Claude Desktop em um agente de codificação sem precisar do Claude Code ou Cursor. Expõe leitura/gravação no filesystem, edições cirúrgicas de texto, execução de comandos no terminal, gerenciamento de processos de longa duração e listas de permissão de diretórios via configuração. Usado por centenas de milhares de devs como alternativa gratuita a IDEs agênticos por assinatura.

Por que usar

Principais recursos

Demo ao vivo

Como fica na prática

desktop-commander-mcp.replay ▶ pronto
0/0

Instalar

Escolha seu cliente

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "desktop-commander-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@wonderwhy-er/desktop-commander"
      ]
    }
  }
}

Abra Claude Desktop → Settings → Developer → Edit Config. Reinicie após salvar.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "desktop-commander-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@wonderwhy-er/desktop-commander"
      ]
    }
  }
}

Cursor usa o mesmo esquema mcpServers que o Claude Desktop. Config de projeto vence a global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "desktop-commander-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@wonderwhy-er/desktop-commander"
      ]
    }
  }
}

Clique no ícone MCP Servers na barra lateral do Cline, depois "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "desktop-commander-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@wonderwhy-er/desktop-commander"
      ]
    }
  }
}

Mesmo formato do Claude Desktop. Reinicie o Windsurf para aplicar.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "desktop-commander-mcp",
      "command": "npx",
      "args": [
        "-y",
        "@wonderwhy-er/desktop-commander"
      ]
    }
  ]
}

O Continue usa um array de objetos de servidor em vez de um map.

~/.config/zed/settings.json
{
  "context_servers": {
    "desktop-commander-mcp": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "@wonderwhy-er/desktop-commander"
        ]
      }
    }
  }
}

Adicione em context_servers. Zed recarrega automaticamente ao salvar.

claude mcp add desktop-commander-mcp -- npx -y @wonderwhy-er/desktop-commander

Uma linha só. Verifique com claude mcp list. Remova com claude mcp remove.

Casos de uso

Usos do mundo real: Desktop Commander

Usar o Claude Desktop como agente de codificação gratuito sem Cursor ou Claude Code

👤 Devs que querem codificação agêntica sem pagar por assinaturas de IDE ⏱ ~20 min beginner

Quando usar: Você já tem o Claude Desktop e quer que ele edite seu repositório de verdade, não apenas cole trechos de código.

Pré-requisitos
  • Claude Desktop instalado — Baixe em claude.ai/download
  • Diretório de trabalho na lista de permissões — Na primeira execução, é solicitado quais diretórios o Claude pode acessar
Fluxo
  1. Instalar e bloquear o workspace
    Install desktop-commander. Limit it to ~/Code/myproject — nothing outside.✓ Copiado
    → A configuração mostra allowed_directories restrito; a listagem de ferramentas aparece no Claude
  2. Executar uma mudança real
    Open ~/Code/myproject. Find every TODO comment, group by file, propose fixes for the top 5.✓ Copiado
    → Scan rápido com ripgrep, lista priorizada com números de linha
  3. Aplicar com edit_block
    Apply the proposed fixes using edit_block. Don't rewrite whole files — just the necessary diffs.✓ Copiado
    → Cada edição mostra blocos old_string/new_string; git diff limpo depois

Resultado: O Claude Desktop passa a escrever mudanças reais de código no seu repositório com a mesma qualidade de um assistente de IDE pago.

Armadilhas
  • Esqueceu de configurar allowed_directories — o Claude varre sua pasta home — Edite ~/.claude-server-commander/config.json e reinicie o Claude Desktop
Combine com: github · filesystem

Executar servidores de desenvolvimento e capturar saída sem bloquear o chat

👤 Devs depurando configurações de múltiplos processos ⏱ ~25 min intermediate

Quando usar: Você precisa que o Claude inicie um servidor, execute testes em outro terminal e monitore logs simultaneamente.

Fluxo
  1. Iniciar o servidor em background
    Start npm run dev as a background process. Show me the PID.✓ Copiado
    → Processo iniciado, PID retornado, saída em streaming capturada
  2. Executar testes contra ele
    While that's running, execute the e2e suite and surface any failures.✓ Copiado
    → Testes executam de forma independente; servidor continua em streaming
  3. Inspecionar logs sob demanda
    Show the last 100 lines of stdout from PID 12345. Anything red?✓ Copiado
    → Trecho de log com erros destacados

Resultado: Sessão de depuração de múltiplos processos orquestrada inteiramente a partir do Claude.

Armadilhas
  • Processo em background continua rodando após o chat encerrar — Use a ferramenta kill_process ao terminar, ou reinicie o Claude Desktop

Refatoração em massa em centenas de arquivos em uma única sessão

👤 Devs fazendo migrações em toda a base de código (ex.: renomear, deprecar) ⏱ ~60 min intermediate

Quando usar: Seu assistente de IDE trava em mudanças com mais de 50 arquivos; você quer uma passagem orquestrada.

Fluxo
  1. Delimitar a mudança
    Find every import of oldLib. Group by file and tell me how many changes per file.✓ Copiado
    → Histograma de impacto
  2. Testar em um arquivo primeiro
    Apply the migration to the smallest-impact file as a smoke test.✓ Copiado
    → Arquivo único migrado; testes passando
  3. Implantar em lotes
    Now apply to the next 20 files. After each batch, run lint and tell me if anything breaks.✓ Copiado
    → Relatórios de progresso por lote com verificação de saúde

Resultado: Migração em toda a base de código concluída com checkpoints verificáveis por lote.

Armadilhas
  • edit_block falha por diferenças de espaço em branco — Use o modo search-replace para padrões mais complexos; verifique o modo de fim de linha
Combine com: github

Combinações

Combine com outros MCPs para 10× de alavancagem

desktop-commander-mcp + github

Edição local e depois criação de PR

Apply the fixes via desktop-commander, then use github MCP to open a PR with a clean summary.✓ Copiado
desktop-commander-mcp + filesystem

Comparar diferentes acessos ao filesystem em sandbox

Use filesystem MCP for read-only library scans and desktop-commander for actual project edits.✓ Copiado

Ferramentas

O que este MCP expõe

FerramentaEntradasQuando chamarCusto
execute_command command: str, timeout_ms?: int Qualquer ação de shell — git, npm, scripts de build 0
edit_block file_path, old_string, new_string Edições cirúrgicas — sem reescritas de arquivo inteiro 0
read_file path Ler fonte para contexto 0
write_file path, content Criação de novos arquivos 0
search_files path, pattern Encontrar arquivos por nome/glob 0
search_code pattern, path? Busca de conteúdo em arquivos 0
list_processes () Ver o que está rodando na sessão 0

Custo e limites

O que custa rodar

Cota de API
N/A — local
Tokens por chamada
Variável — arquivos longos consomem muitos tokens
Monetário
Gratuito (MIT)
Dica
Use search_code em vez de read_file quando precisar de apenas algumas linhas

Segurança

Permissões, segredos, alcance

Escopos mínimos: filesystem-read filesystem-write shell-exec
Armazenamento de credenciais: Nenhum — tudo local
Saída de dados: Nenhum — todas as chamadas são locais
Nunca conceda: Unrestricted root directory access

Solução de problemas

Erros comuns e correções

Permission denied no edit_block

Adicione o diretório ao allowed_directories em ~/.claude-server-commander/config.json

Verificar: cat da config e reinicie o Claude Desktop
Processo iniciado mas sem saída

Use read_output com o PID; a saída é armazenada em buffer, não transmitida ao chat por padrão

edit_block reporta 'old_string not found'

Espaços em branco ou fins de linha divergiram — releia o arquivo primeiro para copiar os bytes exatos

Alternativas

Desktop Commander vs. outros

AlternativaQuando usarTroca
Claude Code (CLI)Você quer o loop agêntico de primeira linha da Anthropic com planejamentoO Claude Code é mais refinado mas requer assinatura própria; o Desktop Commander é gratuito
filesystem (official MCP)Acesso somente leitura ou em sandbox ao filesystem sem execução de shellSuperfície menor, sem execução de comandos

Mais

Recursos

📖 Leia o README oficial no GitHub

🐙 Ver issues abertas

🔍 Ver todos os 400+ servidores MCP e Skills