Claude in Chrome: Múltiplas instâncias do native host causam erro EADDRINUSE no Windows

Resolved 💬 6 comments Opened Feb 3, 2026 by Barukel Closed Mar 8, 2026

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

  1. Usuário inicia Claude Code no terminal do Cursor
  2. Usuário tenta conectar ao Chrome via mcp__claude-in-chrome__tabs_context_mcp
  3. Claude Code tenta iniciar native host
  4. Native host falha com EADDRINUSE porque JÁ existe outro native host rodando
  5. 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

  1. Implementar singleton para native host: Verificar se o pipe já está em uso antes de criar novo listener
  2. Reutilizar instância existente: Se native host já está rodando, conectar a ele em vez de criar novo
  3. Cleanup automático: Quando Claude Code encerra, garantir que native host é finalizado
  4. 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

View original on GitHub ↗

This issue has 6 comments on GitHub. Read the full discussion on GitHub ↗