omni-browser
Enables preparing and creating GitHub repositories through browser automation, with dry-run and confirmation safeguards, and supports pushing a local project to the created repository.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@omni-browser open news.ycombinator.com and snapshot the top stories"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Omni Browser Harness
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-createcom 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-frompara 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/activateO 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
Faça login manual numa janela separada do Chromium. Não cole senhas no ChatGPT nem na linha de comando.
omni-browser loginFaça primeiro um teste sem criar nada:
omni-browser github-create --owner rianprei --name omni-research-oss --publicConfirme 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 --applyPara fazer push do OmniResearch anteriormente preparado, extraia
omni-research-oss-github-ready.zipnum 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 --applyou 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_serverPara 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.compara 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_repositoryexigeconfirm: trueapósgithub_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 -qTestes 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 toolsbrowser_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
Scored across 13 tools
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.
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.
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.
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
Related MCP Connectors
Hosted real Google Chrome MCP with per-user persistent state. Navigate, click, type, screenshot.
Official Browserless MCP server: browser automation, scraping, screenshots and PDFs for AI agents.
Control a real browser from AI agents: navigate, click, type, screenshot, read the page.
Give AI agents a real cloud Chrome: open sessions, navigate, read pages, click, type and screenshot.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables MCP clients to control a real local browser window for web automation tasks such as clicking, typing, scrolling, and taking screenshots.11 npm-
- AlicenseNot gradedqualityBmaintenanceEnables 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
- AlicenseNot gradedqualityBmaintenanceEnables 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.2MIT
- AlicenseBqualityCmaintenanceEnables MCP clients to drive a real Chromium browser for automation, including navigation, JavaScript execution, CDP commands, network capture, and multi-tab control.730 PyPIGPL 3.0