Claude in Chrome: Múltiplas instâncias do native host causam erro EADDRINUSE no Windows
Descrição do Problema -
A extensão Claude in Chrome não conecta porque o Claude Code está criando múltiplas instâncias do native host simultaneamente, todas tentando usar o mesmo named pipe \\.\pipe\claude-mcp-browser-bridge-urielseg, resultando em erro EADDRINUSE.
## Descoberta Crítica
Ao investigar processos Node.js em execução durante uma sessão ATIVA do Claude Code no Cursor, foram encontrados:
PID 3896: --chrome-native-host
PID 23052: --claude-in-chrome-mcp
PID 24976: cli.js (processo principal - sessão atual)
PID 23192: (processo sem identificação)
O problema: Múltiplas instâncias do native host (--chrome-native-host) estão rodando simultaneamente, cada uma tentando criar um listener no mesmo named pipe.
## Ambiente
- Sistema: Windows 10.0.26200.7705
- IDE: Cursor (terminal integrado Git Bash)
- Chrome: 144.0.7559.110
- Extensão: Claude in Chrome 1.0.41 (Beta) - ID: fcoeoabgfenejglbffodgkkbkcdhcgfn
- Claude Code: 2.1.30
## Comportamento Problemático
- Usuário inicia Claude Code no terminal do Cursor
- Usuário tenta conectar ao Chrome via
mcp__claude-in-chrome__tabs_context_mcp - Claude Code tenta iniciar native host
- Native host falha com
EADDRINUSEporque JÁ existe outro native host rodando - Tentativas subsequentes criam MAIS instâncias, piorando o problema
## Log do Erro
[Claude Chrome Native Host] Initializing...
[Claude Chrome Native Host] Creating socket listener: \.\pipe\claude-mcp-browser-bridge-urielseg
[Claude Chrome Native Host] Socket server error: Error: listen EADDRINUSE:
address already in use \.\pipe\claude-mcp-browser-bridge-urielseg
## Comportamento Esperado
Deveria haver apenas UMA instância do native host por usuário, reutilizada entre todas as tentativas de conexão.
## Comportamento Atual
Cada tentativa de conexão parece criar uma NOVA instância do native host, sem verificar se já existe uma rodando.
## Problema Arquitetural Identificado
- ❌ Claude Code não verifica se o named pipe já está em uso antes de tentar criar o listener
- ❌ Não há reutilização de instâncias existentes do native host
- ❌ Processos native host antigos não são limpos automaticamente
- ❌ Não há singleton/lock para garantir apenas uma instância
## Impacto
- Impossível usar Claude in Chrome durante sessão ativa do Claude Code
- Não é possível matar os processos sem perder o histórico da conversa atual
- Problema se acumula - quanto mais tentativas, mais processos duplicados
## Tentativas de Resolução (Todas Falharam)
✅ Chrome reinstalado
✅ Extensão reinstalada
✅ Claude Desktop removido (para evitar conflitos)
✅ Sistema reiniciado
❌ Matar processos Node não é viável - encerra a sessão atual e perde histórico
## Solução Sugerida
- Implementar singleton para native host: Verificar se o pipe já está em uso antes de criar novo listener
- Reutilizar instância existente: Se native host já está rodando, conectar a ele em vez de criar novo
- Cleanup automático: Quando Claude Code encerra, garantir que native host é finalizado
- Fallback gracioso: Se pipe está em uso, tentar usar a instância existente ou dar erro claro ao usuário
## Contexto Adicional
- Usuário usa Git Bash no Cursor, não terminal Windows padrão
- Problema persiste entre sessões/dias
- Native host está corretamente configurado no registro do Windows
- Extensão instalada e funcionando no Chrome
- NÃO deseja conectar a projeto específico, apenas testar conexão
## Pergunta para os Desenvolvedores
Por que o Claude Code não implementa um padrão singleton para o native host? Há alguma razão para permitir múltiplas instâncias simultâneas?
Versão do Claude Code: 2.1.30
This issue has 6 comments on GitHub. Read the full discussion on GitHub ↗