Skip to main content
Glama

Omni Browser Harness

CI License: MIT

Browser harness local, gratuito e open source (MIT), baseado em Playwright + Chromium. Não usa Browser Use, serviços pagos, tokens de API ou uma conta de automação externa.

Recursos

  • Browser real Chromium, sessões persistentes em perfil isolado (cookies e login ficam somente no computador).

  • CLI com abertura, snapshot semântico e fluxo GitHub github-create com dry-run e confirmação.

  • Servidor MCP stdio com 13 ferramentas: navegação, leitura, snapshots, cliques, formulários, abas, capturas e criação de repositório GitHub.

  • Integração com Claude Code, Codex CLI e outros clientes MCP locais.

  • --push-from para enviar um projeto Git ao repositório criado (requer autenticação Git separada).

  • Proteções básicas: sem armazenamento de senhas no código; perfis com permissões restritas; navegação apenas HTTP(S); domínios configuráveis; confirmação para criação de repositório e alguns cliques sensíveis.

Related MCP server: project-tendril

Requisitos

Python >=3.10 e Chromium (ou Chrome) instalado. Linux, Windows ou macOS com suporte Playwright. O script scripts/install.sh foi feito para Linux/macOS; no Windows use os comandos Python equivalentes.

Instalação Linux

unzip omni-browser-harness.zip
cd omni-browser-harness
bash scripts/install.sh
source .venv/bin/activate

O script cria um virtualenv e instala playwright. Se não houver Chromium/Chrome no PATH, instala o Chromium gerenciado pelo Playwright. Nenhum serviço remoto é exigido.

Criar rianprei/omni-research-oss

  1. Faça login manual numa janela separada do Chromium. Não cole senhas no ChatGPT nem na linha de comando.

omni-browser login
  1. Faça primeiro um teste sem criar nada:

omni-browser github-create --owner rianprei --name omni-research-oss --public
  1. Confirme a criação do repositório (faz uma ação real na sua conta):

omni-browser github-create --owner rianprei --name omni-research-oss --public --apply
  1. Para fazer push do OmniResearch anteriormente preparado, extraia omni-research-oss-github-ready.zip num diretório e inicialize o Git caso tenha usado o ZIP (o Git bundle preserva o histórico). Depois:

omni-browser github-push --source /caminho/omni-research-oss --owner rianprei --name omni-research-oss --apply

ou use --push-from no comando github-create. O login do browser não autentica o Git CLI. Configure Git Credential Manager, chave SSH com remote SSH, ou GitHub CLI de forma independente antes do push.

Limitações da criação de repositórios

O GitHub atualiza frequentemente a interface. Se o formulário mudar, a automação interrompe em vez de supor opções ou afirmar sucesso. A criação só é confirmada se a URL final corresponder a https://github.com/{owner}/{name}. Não há bypass de CAPTCHA, 2FA, restrições da conta ou login.

MCP para Claude Code e Codex

Instale o projeto e registre o servidor local. Exemplo Claude Code:

claude mcp add omni-browser -- /caminho/omni-browser-harness/.venv/bin/python -m omni_browser.mcp_server

Para Codex, adapte examples/codex-config.toml para o Python do virtualenv. Configurações JSON em examples/claude-mcp.json.

O MCP executa no computador que inicia o cliente. Ele não roda automaticamente nesta conversa hospedada no ChatGPT, nem dá acesso ao navegador pessoal para o assistente sem uma conexão local autorizada. Este harness não hospeda um MCP HTTP público.

Segurança e privacidade

  • O perfil do browser contém cookies de login, mantenha o diretório sob seu controle. Nunca o envie ao GitHub nem compartilhe em ZIPs.

  • Perfis persistentes não devem ser compartilhados entre processos concorrentes e não devem apontar para o perfil principal do Chrome.

  • Configure OMNI_BROWSER_ALLOWED_HOSTS=github.com para limitar navegação externa no MCP. Valores separados por vírgulas. Domínios subalternos são aceitos; não use um host-curinga.

  • browser_click é automação de UI, não é uma sandbox de segurança completa: cliques e formulários podem ter efeitos mesmo com a heurística de confirmação. Revise o que o agente faz e as permissões dos sites.

  • Saída é produzida apenas para o cliente MCP via stdout, sem logs de cookies/credenciais.

  • github_create_repository exige confirm: true após github_prepare_repository. Ações no GitHub seguem as regras normais da conta.

  • Não expor este processo MCP sem autenticação em rede pública.

Testes

python -m pip install -e '.[test]'
python -m pytest -q

Testes incluem segurança, validação, protocolos e simulações do formulário GitHub. Testes de navegação real devem ser realizados no ambiente do usuário com rede e sessão permitidas.

Base técnica

Playwright (Apache-2.0) e Chromium (licenças de software livre). Este projeto é original, MIT; não reproduz código do navegador nem scripts proprietários.

Available Tools

13 tools
browser_backB

Navigate one step back.

Inputs: no named parameters.

browser_clickB

Click Playwright locator; high-impact selectors need confirm=true.

Inputs: selector (required), confirm.

browser_fillC

Fill a form field via Playwright selector.

Inputs: value (required), selector (required).

browser_openB

Navigate to an HTTP(S) page; only uses this local browser profile.

Inputs: url (required).

browser_pressC

Press a key in a focused element.

Inputs: key (required), selector (required).

browser_readC

Read visible page text for research.

Inputs: limit.

browser_screenshotB

Save screenshot within local browser harness directory. No arbitrary file writes.

Inputs: no named parameters.

browser_selectC

Select an option in a standard HTML select.

Inputs: value (required), selector (required).

browser_snapshotB

Read accessibility-oriented page structure (no screenshot required).

Inputs: limit.

browser_switch_tabC

Switch active browser tab.

Inputs: index (required).

browser_tabsB

List local browser tabs.

Inputs: no named parameters.

github_create_repositoryB

Click Create repository after explicit confirmation, only on prepared GitHub new-repo form.

Inputs: name (required), owner (required), confirm (required).

github_prepare_repositoryB

Fill new GitHub repo form without creating anything. Must be logged in manually beforehand.

Inputs: name (required), owner (required), visibility, description.

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    B3/5.0

    Scored across 13 tools

    Disambiguation4/5

    Each tool maps to a distinct browser action, and descriptions distinguish the trickier pairs reasonably well (snapshot = accessibility structure vs read = visible text). Residual overlap exists between browser_snapshot/browser_read and browser_tabs/browser_switch_tab, but the wording gives an agent enough to choose correctly.

    Naming Consistency4/5

    All names use snake_case with a clear domain prefix (browser_ / github_) and verb-first construction. Minor deviation: browser_back and browser_snapshot lack a noun object, but the overall pattern is predictable.

    Tool Count5/5

    13 tools is well within the ideal band and every tool corresponds to a concrete, non-redundant browser or GitHub-form operation. No filler tools are present.

    Completeness3/5

    Core browsing (open, read, interact, screenshot, back) is covered, but lifecycle gaps are notable: no forward navigation, no new-tab creation, no tab close, and no reload/wait. The GitHub portion only covers a two-step repo creation flow, which is a very narrow slice of that domain.

    Maintenance

    ActivityMaintained
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      D
      maintenance
      Enables MCP clients to control a real local browser window for web automation tasks such as clicking, typing, scrolling, and taking screenshots.
      11 npm
      -
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables AI agents to operate an isolated local Chromium browser through MCP, with semantic snapshots, ref-based actions, search, research, crawling, and CDP access.
      Apache 2.0
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables local opencode agents to control a live Chrome browser via MCP tools, including tab management, JavaScript execution, clicking, form filling, page reading, screenshots, and console log retrieval.
      2
      MIT
    • A
      license
      B
      quality
      C
      maintenance
      Enables MCP clients to drive a real Chromium browser for automation, including navigation, JavaScript execution, CDP commands, network capture, and multi-tab control.
      7
      30 PyPI
      GPL 3.0