Comparativo de 6 Projetos MCP para Terminais Interativos e SSH no Claude

Integrar o Claude diretamente a servidores via SSH para executar comandos costuma ser um desafio. As ferramentas padrão do Claude geralmente carecem de suporte para terminais interativos: não há PTY (Pseudo-Terminal), sessões persistentes são raras e processos longos como um npm install frequentemente falham. Além disso, a impossibilidade de responder a prompts de senha interrompe o fluxo de trabalho.

Para resolver essas limitações, surgiram diversos projetos baseados no Model Context Protocol (MCP). Abaixo, apresento uma aálise detalhada de seis implementações testadas para habilitar shells interativos no Claude.

Visão Geral dos Projetos

Projeto Linguagem Instalação Status
PiloTY Python uv / pipx Em desenvolvimento (WIP)
mcp-interactive-terminal TypeScript npx Estável
interactive-shell-mcp JavaScript Build local Funcional
interactive-terminal-mcp Python uvx Funcional
smart-terminal-mcp JavaScript npx @stable Estável
terminal-mcp Python uvx Ativo (v0.4.6)

Matriz de Funcionalidades Técnicas

Recurso PiloTY mcp-interact shell-mcp term-mcp-py smart-term terminal-mcp
Base PTY pexpect node-pty node-pty Processo base node-pty pexpect
Suporte SSH Chave pública Comandos genéricos Comandos genéricos Comandos genéricos Comandos genéricos Parâmetros de senha
Corte de Saída Nenhum Limite de caracteres Metadados/Bytes Nenhum Paginação/Linhas 4 estratégias
Espera de Padrão Não Prompt automático Não Regex terminal_wait session_wait_for
Apps TUI (Vim/Htop) Básico xterm-headless Modo Snapshot Não Completo Modo Diff

Análise Individual e Configuração

1. PiloTY

Focado especificamente em fluxos SSH, o PiloTY utiliza uma arquitetura de handlers e registra logs de todas as sessões em ~/.piloty/. É ideal para quem precisa de auditoria.

  • Prós: Gerenciamento independente de processos em background.
  • Contras: Falta de truncamento de saída. Saídas muito longas podem estourar o limite do MCP e derrubar a conexão.
// Exemplo de configuração no Claude Desktop
{
  "mcpServers": {
    "piloty": {
      "command": "piloty"
    }
  }
}

2. mcp-interactive-terminal

Este projeto prioriza a segurança, implementando camadas de proteção contra comandos perigosos como rm -rf, exigindo confirmação do usuário. Utiliza xterm-headless para garantir que a IA veja exatamente o que um humano veria no terminal.

  • Destaque: Algoritmo de detecção de término de comando baseado em silêncio de saída e detecção de prompt.
  • Atenção: Como usa node-pty, requer ferramentas de compilação (Xcode no Mac, build-essential no Linux).

3. interactive-shell-mcp

Diferencia-se pelo modo dual: streaming para comandos comuns e snapshot para programas que atualizam a tela continuamente (como top). Isso evita que o Claude receba um fluxo infinito de bytes irrelevantes.

// Instalação via build manual
git clone https://github.com/lightos/interactive-shell-mcp
cd interactive-shell-mcp
npm install && npm run build

4. interactive-terminal-mcp (Sessões com Estado)

Implementado em Python, foca na persistência. Variáveis de ambiente e diretórios de trabalho são mantidos entre as chamadas, eliminando a necessidade de reconectar ao SSH a cada novo comando.

# Fluxo típico de uso
# 1. Inicia o processo remoto
spawn_process(command=["ssh", "usuario@servidor.com"])

# 2. Envia credenciais via buffer
send_command(session_id="id_123", cmd="senha_secreta\n", wait_for="Password:")

# 3. Executa tarefa
send_command(session_id="id_123", cmd="ls -la /var/www\n", timeout=15)

5. smart-terminal-mcp

Oferece o conjunto de ferramentas mais robusto para manipulação de saída, incluindo terminal_diff para comparar resultados de comandos e terminal_run_paged para ler grandes logs de forma paginada. É a melhor opção para usuários Windows.

6. terminal-mcp (Recomendado)

Atualmente o projeto mais ativo. Resolve o problema de autenticação SSH com um parâmetro dedicado para senhas que não vaza em logs. Sua função session_interact combina envio e leitura em uma única chamada MCP, otimizando a latência.

// Configuração sugerida para o Claude Desktop
{
  "mcpServers": {
    "terminal": {
      "command": "uvx",
      "args": ["terminal-mcp"],
      "env": {
        "TERMINAL_MCP_TRUNCATION_MODE": "tail_only",
        "TERMINAL_MCP_MAX_OUTPUT_BYTES": "150000"
      }
    }
  }
}

Resumo de Problemas Conhecidos

Projeto Gravidade Descrição
PiloTY Alta Ausência de corte de saída; crash em comandos como npm install.
mcp-interactive-terminal Média Se a compilação nativa falhar, o modo fallback degrada a saída de TUIs.
terminal-mcp Baixa O modo stream pode encerrar prematuramente se o comando silenciar por 2s.
smart-terminal-mcp Baixa Notificações de progresso não funcionam no cliente desktop atual do Claude.

Guia de Escolha

  • Ambientes Linux/Mac e SSH: terminal-mcp é a escolha superior pela facilidade com uvx e gestão inteligente de senhas e truncamento.
  • Ambiente Windows: smart-terminal-mcp possui a melhor compatibilidade e suporte a paginação de saída.
  • Foco em Segurança: mcp-interactive-terminal oferece as melhores travas contra comandos destrutivos acidentais.
  • Monitoramento de Processos: interactive-shell-mcp é excelente para observar aplicações em tempo real via snapshots.

Tags: Claude MCP SSH Terminal automation

Publicado em 7-27 14:02