Skip to main content
Glama

BaiakIdle MCP Bridge

Uma bridge local para inspecionar a página do BaiakIdle usando um cliente MCP, como o Codex.

O projeto tem duas partes:

  • uma extensão Chrome/Brave que observa o WebSocket do jogo dentro de /jogar/;

  • um servidor Node.js que expõe essa sessão como ferramentas MCP via stdio.

A automação do jogo fica no projeto separado BaiakIdle Helper. Esta bridge cuida do transporte, da inspeção e das chamadas que você solicitar.

Como funciona

A página não abre conexão com o localhost. O hook roda no MAIN world, envia apenas eventos internos para o content script e o service worker mantém a conexão local:

/jogar/ (page.js, MAIN)
    ring buffer + WebSocket do jogo
              │ CustomEvent
content.js (ISOLATED)
              │ runtime port
background.js (service worker)
              │ ws://127.0.0.1:8945/browser
MCP Node.js (stdio)

Os pacotes são mantidos em um buffer circular na própria página. O MCP faz pull quando uma ferramenta é chamada; não há push contínuo, telemetria ou gravação de capturas em arquivo.

Related MCP server: izan.io

Requisitos

  • Node.js 20 ou mais recente;

  • npm;

  • Chrome ou Brave com o modo desenvolvedor habilitado;

  • Codex ou outro cliente compatível com servidores MCP via stdio.

Instalação

1. Baixe e compile

No PowerShell, Prompt de Comando ou terminal:

git clone https://github.com/iIlusion/baiakidle-mcp.git
cd baiakidle-mcp
npm ci
npm --prefix mcp-server ci
npm run build

O build gera o servidor em mcp-server/dist/, os bundles de userscript em dist/ e o page.js usado pela extensão.

2. Carregue a extensão

  1. Abra chrome://extensions (ou brave://extensions).

  2. Ative Modo desenvolvedor.

  3. Clique em Carregar sem compactação.

  4. Selecione a pasta mcp-extension dentro do repositório.

O page.js dessa pasta é gerado pelo build. Não o edite manualmente; altere src/userscript.ts e compile de novo.

3. Configure o cliente MCP

Adicione o servidor ao config.toml do Codex. Troque o caminho pelo local absoluto do clone:

[mcp_servers.baiakidle-page-bridge]
command = "node"
args = ["C:/caminho/baiakidle-mcp/mcp-server/dist/index.js"]
startup_timeout_sec = 60

No Windows, use / no caminho ou escape as barras invertidas no TOML. Reinicie o Codex depois de salvar a configuração.

4. Abra o jogo

Abra ou recarregue completamente https://baiakidle.com/jogar/. No console da página, a bridge ativa informa a versão e ext-transport.

Para uma checagem rápida, abra http://127.0.0.1:8945/status. O campo browserConnected deve ficar true com o jogo aberto.

Ferramentas disponíveis

Ferramenta

O que faz

bridge_status

Mostra o estado do transporte e um snapshot leve da página.

probe

Combina HUD, pacotes recentes e uma consulta DOM opcional.

packets_get

Lê o buffer circular de pacotes. Alias: list_events.

packets_clear

Limpa o buffer da página. Alias: clear_events.

list_packet_headers

Lista o catálogo local de mensagens Colyseus.

dom_query

Consulta elementos por seletor CSS. Alias: inspect_selector.

dom_eval

Executa JavaScript no contexto da página.

get_page_snapshot

Retorna URL, HUD e sockets observados, sem HTML completo.

reload_page

Recarrega a página do jogo.

send_packet

Envia um pacote Base64 pelo socket de gameplay. Alias: send_raw_packet.

Exemplo de filtro para packets_get:

{ "limit": 30, "msgTypes": ["notify", "sellall", "sellcd"], "categories": ["economy"] }

O catálogo reconhece nomes de mensagem Colyseus depois do frame 0x0d (ROOM_DATA). A bridge classifica os sockets pelos sinais observados, sem depender de um hostname fixo como rt3 ou rt4.

Atualização

Depois de atualizar o clone:

git pull
npm ci
npm --prefix mcp-server ci
npm run build

Na página de extensões, clique em Recarregar na BaiakIdle MCP Bridge e faça uma recarga completa do jogo. Se o cliente MCP ainda estiver aberto, reinicie-o quando o executável do servidor tiver mudado.

Desenvolvimento

Comandos principais:

npm run dev          # watch do bundle DEV e servidor local na porta 8947
npm run build        # bridge + servidor MCP
npm run build:bridge # bundles da bridge e cópia para mcp-extension
npm run build:mcp    # servidor Node.js
npm run typecheck    # valida os dois projetos TypeScript
npm test             # smoke test do servidor WS/RPC

O modo npm run dev é opcional e serve o userscript DEV em 127.0.0.1:8947 para quem estiver desenvolvendo o hook com Tampermonkey. Não use o userscript de produção ou o DEV junto com a extensão: dois hooks de WebSocket geram capturas duplicadas.

Segurança e privacidade

  • O servidor escuta somente em 127.0.0.1.

  • O WebSocket aceita a extensão do navegador; o endpoint HTTP não libera CORS para sites arbitrários.

  • A bridge limita o tamanho de frames, requisições RPC e tempo de espera.

  • Capturas ficam em memória e podem conter dados da sessão ou da página; não publique dumps do navegador.

  • dom_eval, reload_page e send_packet têm efeitos reais. Use-os apenas na sua própria conta e com um cliente MCP confiável.

Este é um projeto independente e não possui vínculo oficial com o BaiakIdle.

Solução de problemas

browserConnected está false

Confirme que o servidor MCP foi iniciado, que a extensão está habilitada e que o caminho configurado aponta para mcp-server/dist/index.js. Depois, recarregue a extensão e a página /jogar/.

A extensão não aparece no jogo

Verifique se a pasta selecionada foi exatamente mcp-extension, se o modo desenvolvedor está ativo e se a URL é https://baiakidle.com/jogar/. Uma recarga completa da página é necessária depois de recompilar.

Os pacotes não aparecem

Desative qualquer userscript antigo da BaiakIdle MCP Bridge. O hook precisa entrar em document-start; abra a página com a extensão já carregada e confira no console se aparece ext-transport.

O modo DEV não carrega

Execute npm run dev, confirme que 127.0.0.1:8947 está acessível e instale somente dist/baiakidle-bridge.dev.user.js no Tampermonkey. Esse modo é exclusivo para desenvolvimento.

Licença

MIT

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that captures browser console logs and network requests via the Chrome DevTools Protocol. It allows users to monitor real-time logs, inspect network traffic, and execute JavaScript code directly in the browser context.
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    Turns your Chrome browser into an MCP server, allowing AI clients to control browser actions like clicking, typing, navigating, and data extraction through custom JavaScript tools.
    28
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables real-time browser control and DOM interaction through a Chrome extension bridge, supporting navigation, snapshots, clicks, screenshots, and JavaScript execution.
    MIT