Extensão do Chrome Conecta o Google Messages ao Claude Code via MCP

✍️ OpenClawRadar📅 Publicado: April 14, 2026🔗 Source
Extensão do Chrome Conecta o Google Messages ao Claude Code via MCP
Ad

Integração Direta Sem Docker ou Servidores em Nuvem

Um desenvolvedor criou uma extensão do Chrome que injeta nas sessões do Google Messages Web e as conecta ao Claude Code via Model Context Protocol (MCP). A arquitetura usa transporte stdio entre o Claude Code e um servidor MCP Node.js, que se comunica com a extensão do Chrome via WebSocket em localhost:7008.

O Que Funciona vs. Soluções Existentes

O desenvolvedor tentou duas abordagens existentes primeiro:

  • OpenMessage: Contêiner Docker usando protocolo libgm com sessões SSE que expiram após alguns minutos de inatividade, causando erros de "ID de sessão inválida". Requer reiniciar o contêiner Docker para novas mensagens sincronizarem e usa 7 ferramentas MCP (~1.500 tokens por conversa).
  • TextBee: Aplicativo gateway SMS para Android que roteia todas as mensagens SMS privadas através de servidores em nuvem (apenas SMS, sem RCS). Requer servidor webhook mais túnel Tailscale/ngrok, totalizando cinco componentes móveis para mensagens básicas.

A nova abordagem com extensão do Chrome tem três ferramentas MCP funcionando com ~300 tokens de sobrecarga:

  • list_chats – Retorna todas as conversas com nomes, trechos e carimbos de data/hora
  • read_messages – Fornece histórico completo de mensagens com direção enviada/recebida
  • send_message – Preenche o texto mas não envia realmente (atualmente funciona como ferramenta de rascunho)
Ad

O Problema de Isolamento do Angular

O Google Messages Web é um aplicativo Angular onde os scripts de conteúdo da extensão do Chrome rodam em um "mundo isolado" – um contexto JavaScript separado da página. O zone.js do Angular apenas aplica patches aos ouvintes de eventos no mundo principal, então quando a extensão define o valor da área de texto e clica em Enviar:

  • O texto aparece na entrada ✓
  • O botão enviar é clicado ✓
  • O controle de formulário do Angular não detecta a mudança de valor, então o manipulador de clique pensa que o campo está vazio ✗

Soluções Tentadas

O desenvolvedor tentou múltiplas abordagens:

  • Definidor de valor nativo + eventos de entrada
  • document.execCommand('insertText')
  • Sequência completa de eventos de mouse (pointerdown/mousedown/mouseup/click)
  • Simulação de tecla Enter
  • Script de conteúdo Manifest V3 world: "MAIN" (chega mais perto mas ainda não envia)

A saída de depuração do script do mundo principal mostra: {"valueSet": true, "btnLabel": "Send end-to-end encrypted RCS message", "clicked": true, "inputAfter": "text still here...", "sentVia": "none"}

Soluções Potenciais a Explorar

O desenvolvedor está considerando:

  • API chrome.debugger para eventos de entrada confiáveis
  • Acessar NgZone do Angular via __ngContext__ em elementos DOM
  • CDP (Chrome DevTools Protocol) para Input.dispatchKeyEvent

O projeto é de código aberto com repositório em https://github.com/GURSEWAKSINGHSANDHU/google-messages-mcp e rastreamento de problemas em https://github.com/GURSEWAKSINGHSANDHU/google-messages-mcp/issues/1.

📖 Read the full source: r/ClaudeAI

Ad

👀 See Also