chat-overdrive-bridge
# chat-overdrive-bridge
**EN:** A local MCP (Model Context Protocol) stdio server that lets an AI client query web chats you are already signed in to (Perplexity, Gemini, ChatGPT, Claude, DeepSeek), through your own Chrome via the DevTools Protocol on `127.0.0.1:9222`. No HTTP server, no tunnel, no browser extension.
**PT-BR:** Servidor MCP (Model Context Protocol) local via stdio que permite a um cliente de IA consultar chats web nos quais você já está logado (Perplexity, Gemini, ChatGPT, Claude, DeepSeek), usando o seu próprio Chrome pelo Chrome DevTools Protocol em `127.0.0.1:9222`. Sem servidor HTTP, sem túnel, sem extensão de navegador.
## Status / Estado
EN: version 0.1.0, experimental. Validated live on Windows 10, Node.js 24, Chrome 157 with all five providers (short and long answers, sources, stop, cancel). The macOS and Linux Chrome commands and registration in a graphical MCP client are documented but not yet tested by the author. The Windows installer was tested end to end on Windows PowerShell 5.1 (install, repeat run, uninstall, config merge against a copy of a Claude Desktop config); the `winget` Node.js path and registration in a real Claude Desktop or Claude Code were not exercised. Provider websites change often; if a selector breaks, run `chat_bridge_status` with `doctor: true` and open an issue.
PT-BR: versão 0.1.0, experimental. Validada ao vivo no Windows 10, Node.js 24, Chrome 157 com os cinco provedores (respostas curtas e longas, fontes, parar, cancelar). Os comandos do Chrome para macOS e Linux e o registro em um cliente MCP gráfico estão documentados, mas ainda não foram testados pelo autor. O instalador do Windows foi testado de ponta a ponta no Windows PowerShell 5.1 (instalação, repetição, desinstalação, mesclagem contra uma cópia de configuração do Claude Desktop); o caminho do Node.js via `winget` e o registro em um Claude Desktop ou Claude Code reais não foram exercitados. Os sites dos provedores mudam com frequência; se um seletor quebrar, rode `chat_bridge_status` com `doctor: true` e abra uma issue.
## Install / Instalação
| Language | Guide |
|---|---|
| English | [docs/INSTALL.en.md](docs/INSTALL.en.md) |
| Português (Brasil) | [docs/INSTALL.pt-BR.md](docs/INSTALL.pt-BR.md) |
**Windows, automatic / automático:** download or clone the repository and double-click `Instalar.bat` (PowerShell, no admin rights needed). It checks Node.js 20+ (offers `winget` if missing), runs `npm ci`, `npm run check` and `npm test`, creates a desktop shortcut for the debug Chrome and, only if you agree, registers the server in Claude Desktop and/or Claude Code (backing up the config first). To undo: `Desinstalar.bat`. Details in the guides below.
**Windows, automático:** baixe ou clone o repositório e dê dois cliques em `Instalar.bat` (PowerShell, sem precisar de administrador). Ele verifica o Node.js 20+ (oferece o `winget` se faltar), roda `npm ci`, `npm run check` e `npm test`, cria um atalho na área de trabalho para o Chrome de debug e, somente se você concordar, registra o servidor no Claude Desktop e/ou no Claude Code (com backup da configuração). Para desfazer: `Desinstalar.bat`. Detalhes nos guias abaixo.
Manual quick start / Início rápido manual:
```
git clone https://github.com/samucamg/chat-overdrive-bridge.git
cd chat-overdrive-bridge
npm install
npm test
```
Then start Chrome in debug mode and register the server in your MCP client (see the guides above).
Depois inicie o Chrome em modo debug e registre o servidor no seu cliente MCP (veja os guias acima).
## Tools / Ferramentas
| Tool | EN | PT-BR |
|---|---|---|
| `ask_web_chat` | Send a prompt to a web chat and return text and sources | Envia um prompt a um chat web e devolve texto e fontes |
| `list_chat_sessions` | List active sessions, busy tabs and leases | Lista sessões ativas, abas ocupadas e leases |
| `cancel_chat` | Stop a running generation | Interrompe uma geração em andamento |
| `chat_bridge_status` | CDP status, queues and optional selector diagnosis | Status do CDP, filas e diagnóstico opcional de seletores |
| `preview_payload` | Dry run: check a prompt for secrets, PII and blocked files | Dry run: inspeciona segredos, PII e arquivos proibidos |
## Safety by design / Segurança por desenho
- EN: every prompt goes through a sanitizer (secrets, credentials, PII, deny-list of files) before touching the browser. Violations return `BLOCKED_BY_POLICY`.
- PT-BR: todo prompt passa por um sanitizador (segredos, credenciais, PII, lista de arquivos proibidos) antes de tocar no navegador. Violações retornam `BLOCKED_BY_POLICY`.
- EN: CDP is accepted only on `127.0.0.1`, with a dedicated Chrome profile. `Runtime.evaluate` is internal to the drivers and never exposed as a tool.
- PT-BR: o CDP só é aceito em `127.0.0.1`, com perfil dedicado do Chrome. `Runtime.evaluate` é interno aos drivers e nunca exposto como tool.
- EN: logs hold operational metadata only (provider, session, duration, sizes). Never prompts or answers.
- PT-BR: logs guardam apenas metadados operacionais (provedor, sessão, duração, tamanhos). Nunca prompts nem respostas.
- EN: same provider runs serially (one tab lease at a time); different providers run in parallel.
- PT-BR: o mesmo provedor roda em série (um lease de aba por vez); provedores diferentes rodam em paralelo.
## Responsible use / Uso responsável
EN: automating a web chat can conflict with a provider's terms of service. Use only your own accounts, keep volumes low, and review each provider's terms. The bridge stops on CAPTCHA, Cloudflare challenges or expired logins instead of retrying.
PT-BR: automatizar um chat web pode conflitar com os termos de uso do provedor. Use apenas suas próprias contas, mantenha volumes baixos e revise os termos de cada provedor. O bridge para diante de CAPTCHA, desafio Cloudflare ou login expirado, sem tentar de novo.
## More docs / Mais documentação
- Architecture / Arquitetura: [docs/ARCHITECTURE.en.md](docs/ARCHITECTURE.en.md) | [docs/ARQUITETURA.md](docs/ARQUITETURA.md)
- Selectors / Seletores: [docs/SELECTORS.en.md](docs/SELECTORS.en.md) | [docs/SELETORES.md](docs/SELETORES.md)
- Security policy / Política de segurança: [SECURITY.md](SECURITY.md)
## License / Licença
EN: GNU General Public License v3.0 or later (GPL-3.0-or-later). See [LICENSE](LICENSE).
PT-BR: GNU General Public License v3.0 ou posterior (GPL-3.0-or-later). Veja [LICENSE](LICENSE).
TDQS
Scored across 5 tools
Each tool targets a distinct operation: sending queries, listing sessions, cancelling work, checking bridge status, and dry-run preview. The main possible confusion is between list_chat_sessions and chat_bridge_status, since both expose queue/session state, but descriptions clarify their different focus.
Most tools follow a verb_noun pattern (ask_web_chat, list_chat_sessions, cancel_chat, preview_payload). chat_bridge_status is a noun phrase and breaks the pattern slightly, but the overall convention remains predictable.
Five tools is well-scoped for a chat bridge server. Each tool covers a meaningful lifecycle action without redundant surface area.
The surface covers sending, listing, cancelling, status, and dry-run inspection, which are the core operations for an authenticated web chat bridge. Minor gaps exist around explicit session cleanup or history retrieval, but agents can likely work around them.