Skip to main content
Glama

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.

Related MCP server: Antigravity Browser Operator

Install / Instalação

Language

Guide

English

docs/INSTALL.en.md

Português (Brasil)

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

License / Licença

EN: GNU General Public License v3.0 or later (GPL-3.0-or-later). See LICENSE.

PT-BR: GNU General Public License v3.0 ou posterior (GPL-3.0-or-later). Veja LICENSE.

Available Tools

5 tools
ask_web_chatB

Envia consulta para um chat web autenticado via Chrome CDP local (127.0.0.1:9222) com sanitizacao previa e fila por provedor.

NameRequiredDescriptionDefault
modeNoModo operacional do provedor (ex: search, deep-research)
modelNoModelo especifico a ser selecionado no provedor
promptYesTexto do prompt a ser enviado ao chat web
sessionNoChave identificadora da sessao/aba para continuidade de contexto (opcional)
new_chatNoSe true, inicia uma nova conversa limpando o contexto da aba (padrao: true sem session)
providerYesIdentificador do provedor de chat web (perplexity, gemini, chatgpt, claude, deepseek)
filePathsNoAlias para context_files
timeout_sNoTempo limite maximo de espera pela resposta em segundos (padrao: 120)
attachmentsNoLista de arquivos para anexo via input[type=file] / DOM.setFileInputFiles
context_filesNoLista de arquivos de contexto para injecao com envio delta inteligente por hash SHA-256

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it does disclose meaningful behavior: local CDP endpoint, pre-send sanitization, and per-provider queueing. It omits critical traits such as blocking/wait behavior, that data is sent to a third-party provider, and what happens on timeout or failure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler, putting the action first and the mechanism second. It is efficiently sized, though the parenthetical endpoint detail is of marginal use to an agent selecting the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a complex tool with 10 parameters, no annotations, and no output schema, yet the description never explains how the response is obtained or returned (blocking wait, polling, session retrieval). It also leaves out the prerequisite that a Chrome instance must be running with CDP enabled on port 9222.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all ten parameters, including session, new_chat, timeout_s and the two file-list variants. The description adds nothing parameter-specific beyond the vague phrases 'sanitizacao previa' and 'fila por provedor', so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('envia consulta para um chat web autenticado') plus the transport mechanism (Chrome CDP on 127.0.0.1:9222), which clearly separates it from siblings like list_chat_sessions or cancel_chat. It does not explicitly name an alternative, but the action is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied by the action itself; there is no explicit when-to-use or when-not-to-use guidance. The sibling preview_payload and chat_bridge_status suggest useful preconditions (payload preview, bridge readiness) that the description never connects to this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cancel_chatA

Interrompe a execucao ou streaming de resposta de uma sessao em andamento.

NameRequiredDescriptionDefault
sessionNoIdentificador da sessao a cancelar
session_idNoAlias de session para compatibilidade

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It usefully discloses that the tool interrupts execution or streaming of an ongoing session, but it omits important behavior such as idempotency, permissions, what happens to partial output, and post-cancellation state.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no filler. Every phrase contributes to stating the action and its target.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity cancellation tool with only two optional string parameters and no output schema, the description gives the core action. However, because there are no annotations and the tool is a mutating operation, it is only minimally complete and leaves behavioral details unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already explains both 'session' and 'session_id' as an alias. The description adds no parameter-level meaning beyond what the schema provides, which fits the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource: interrupt the execution or response streaming of an ongoing session. It is clearly a cancellation tool and distinguishable from sibling tools such as list_chat_sessions and chat_bridge_status, though it does not explicitly name those alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the phrase 'sessao em andamento': call it to cancel an active session. There is no explicit when-to-use guidance, no when-not-to-use guidance, and no mention of which sibling tool to use instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chat_bridge_statusB

Retorna informacoes de status da conexao CDP 127.0.0.1:9222, estado das filas e auto-diagnostico doctor opcional.

NameRequiredDescriptionDefault
doctorNoSe true e conectado ao CDP, executa verificacao de integridade e seletores dos provedores

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It reveals that the tool reports CDP connection status and queue state and can optionally run a doctor check, implying a read-oriented diagnostic operation, but it does not state safety, side effects, failure behavior when CDP is unavailable, or output shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no filler. It is dense but efficient, though 'informacoes de status' remains slightly vague.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity, one-optional-parameter status tool, the description names the main status areas. However, with no output schema and no annotations, it omits return-value detail, the meaning of queue state, and behavior when the CDP connection is unavailable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the doctor parameter is already fully documented in the schema. The description only adds that doctor is optional and tied to self-diagnosis, which is marginal beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb, 'Retorna', and specific resources: CDP connection status at 127.0.0.1:9222, queue state, and optional doctor diagnostics. It implicitly distinguishes itself from the chat-action siblings, but it does not explicitly name or compare against them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to use this tool versus ask_web_chat, list_chat_sessions, cancel_chat, or preview_payload. The optional doctor parameter implies a diagnostic use case, but the description gives no exclusions, prerequisites, or alternative-selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_chat_sessionsB

Lista todas as sessoes ativas, abas ocupadas e leases em andamento.

NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are supplied, so the description carries the full behavioral burden. "Lista" clearly implies a side-effect-free read and the description discloses what categories of state are returned (sessions, busy tabs, leases), which is useful context. However, it says nothing about result ordering, staleness/freshness, volume, or whether any auth/scope is required, which matters for a state-introspection tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler, no restatement of the tool name, and nothing extraneous. The scoping qualifier ("ativas", "ocupadas", "em andamento") is presented immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter list tool with no output schema, the description does give an agent the broad shape of the response (active sessions, busy tabs, in-progress leases), which is the minimum needed to decide whether to call it. But without an output schema the description would need to say more about what a session record contains and how "lease" should be interpreted, and it does not.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate beyond what the empty schema already conveys. Baseline 4 applies; no parameter meaning is added or needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ("Lista") and resource ("sessoes ativas"), then extends scope to busy tabs and in-progress leases, which makes the tool's output domain clear. It does not name or contrast with the sibling chat_bridge_status, which plausibly overlaps with a session/bridge status read, so sibling differentiation is left to inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not-to-use guidance, and no named alternative. An agent reading this cannot tell whether to call it instead of chat_bridge_status for status information. The listing semantics imply a read use case, but the description states nothing explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

preview_payloadA

Modo dry-run para inspecao de segredos, PII, arquivos proibidos e tamanho antes do envio.

NameRequiredDescriptionDefault
promptYesTexto a ser inspecionado pelo sanitizador de segredos
providerNoIdentificador do provedor (opcional)
filePathsNoLista opcional de caminhos de arquivos para validacao contra a deny-list

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations supplied, the description carries the full burden. 'Modo dry-run' usefully signals that nothing is sent and the operation is a non-destructive preview, which is the most important behavioral trait. It does not say what happens when a secret or forbidden file is detected (block, warn, or just report), nor what the preview returns.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler. It is dense and readable, though it packs four inspection targets into one clause rather than structuring them, and it is written in Portuguese while sibling tool names are English.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description would ideally say what the preview returns (a pass/fail report, findings list, size estimate). That gap is real, but for a simple three-parameter read-only preview tool the stated scope plus the fully-documented schema covers enough to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already explains prompt, provider, and filePaths. The description only adds that inspection covers secrets, PII, forbidden files, and size, which loosely maps to prompt/filePaths but adds no format or constraint detail beyond the schema, leaving the baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific function: a dry-run inspection of a prompt for secrets, PII, forbidden files, and size before sending. That is concrete and distinct from the send-side sibling ask_web_chat, though the description never names the sibling to make the split explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'antes do envio' (before sending) implies the natural usage point: run this prior to dispatching a request. However, no alternative tool is named, no when-not condition is given, and it is left to the agent to infer that ask_web_chat is the actual send operation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updatesv0.1.0
    • First observedask_web_chat
    • First observedcancel_chat
    • First observedchat_bridge_status
    • First observedlist_chat_sessions
    • First observedpreview_payload

TDQS

A3.6/5.0

Scored across 5 tools

Disambiguation4/5

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.

Naming Consistency4/5

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.

Tool Count5/5

Five tools is well-scoped for a chat bridge server. Each tool covers a meaningful lifecycle action without redundant surface area.

Completeness4/5

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.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables token-efficient browser automation for AI chats like ChatGPT, Gemini, and Claude, allowing reading responses, sending messages, waiting for streaming replies, and bridging conversations between tabs via Chrome DevTools Protocol.
    5
    MIT
  • A
    license
    B
    quality
    A
    maintenance
    Enables AI agents to drive the user's already-running Google Chrome through a WebSocket bridge, listing and switching tabs, navigating, clicking, typing, scrolling, extracting DOM, taking screenshots, and evaluating JavaScript. It works without restarting Chrome and preserves all existing logins, cookies, and 2FA sessions.
    25
    6 npm
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Lets local AI agents drive the Chrome browser a user already has open, including signed-in sessions, by listing tabs, reading page text and actionable elements, then clicking, filling, selecting, scrolling, navigating, and capturing viewport screenshots without exporting cookies. Runs as a dependency-free local stdio process over Native Messaging, with per-tab leases, automatic reconnection, and pause/write-action controls.
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Lets AI coding tools drive the real, already-logged-in Chrome browser over local stdio—snapshotting and reading pages, clicking, typing, managing tabs, capturing screenshots, and inspecting network, console, storage, and cookies—without opening a remote-debugging port. It installs as a Chrome extension plus native-messaging bridge, so agents work in the user's authenticated sessions while passing bot detection.
    1 npm
    ISC