Invictum Browser Bridge
OfficialInvictum Browser Bridge
AI 에이전트를 위한 오소스 브라우저 제어, 개발자를 위해 제작되었습니다.
Invictum Browser Bridge (IBB, also called Invictum Browser Gate or IBG) lets an authorized AI agent work in the user's existing Google Chrome profile. The agent can use already signed-in web applications without exporting cookies, passwords, browser profiles, or raw authentication state.
The project is licensed under the MIT License. It is designed for local development and advanced browser workflows through MCP, a CLI, a TypeScript SDK, or the loopback control API.
Why use it?
Most browser automation starts a clean browser profile or relies on fragile screen coordinates. IBB instead provides typed, policy-checked actions inside the user's real Chrome profile:
semantic page reading and deterministic element references;
background-first tab control that avoids interrupting the user;
purpose-built adapters for WordPress, WHM/cPanel terminals, and Figma;
reliable forms, rich-text/code editors, uploads, dialogs, screenshots, and debugging tools;
explicit authorization, per-tab reservation, User Stop, redacted audit data, and guaranteed cleanup.
The installed extension reports its exact runtime capabilities. Agents should always call system.capabilities instead of assuming the documentation and the loaded Chrome build are identical.
Main features
Browser and page control
List, open, close, navigate, activate, and move through tab history.
Work in a dedicated agent window and in background tabs by default.
Wait for URLs, titles, text, selectors, DOM stability, or application readiness; focus a lazy-rendered tab only once when a bounded background wait proves that focus is required.
Read compact, outline, full, interactive, or scoped semantic snapshots.
Extract clean text or lightweight Markdown and find elements with deterministic natural-language ranking.
Click, double-click, context-click, hover, focus, type, press keys, select, check, scroll to an element or document position, and drag and drop.
Use coordinate clicks only as a revision-bound fallback.
Forms, editors, files, and authentication
Set native inputs, textareas, selects, checkboxes, radios, contenteditable regions, and WYSIWYG editors.
Synchronize CodeMirror, Ace, Monaco, Quill, TinyMCE, Gutenberg, and similar authoritative editor models so values survive submit.
Attach one or more local files through Chrome's native file-input API without exposing paths in results or audit logs.
Submit forms only with the required authorization, including an explicitly authorized no-prompt path for an already approved agent instruction.
Use prefilled login forms, ephemeral HTTP Basic Auth, and native JavaScript alert, confirm, prompt, and
beforeunloaddialogs through dedicated actions.
WordPress support
IBB includes typed WordPress workflows instead of asking agents to improvise with cosmetic DOM changes or coordinate dragging:
identify wp-admin screens, notices, list tables, rows, and available actions;
perform row and bulk actions with exact WordPress action keys;
read and update Gutenberg or Classic Editor content, title, excerpt, slug, status, categories, tags, featured image metadata, and other supported fields;
review changes separately from saving and verify the authoritative editor model after save;
inspect and edit classic Appearance > Menus trees, including custom links, updates, removals, complete-subtree moves, nesting, ordering, and save;
recover safely when WordPress's unsaved-changes prompt blocks navigation;
fall back to general form, upload, editor, DOM, console, and same-origin API tools for plugin settings, media, ACF-like controls, and custom admin pages.
See WordPress wp-admin and classic menu editing.
WHM, cPanel, and browser terminals
The typed xterm adapter supports browser-hosted terminals such as WHM/cPanel Terminal:
detect the real terminal instead of WHM's Search Tools field;
read a bounded, redacted xterm buffer or one action-local terminal WebSocket;
focus only the terminal helper input and send trusted text or special keys in a background tab;
stage and prove the exact command before sending one Enter;
fail closed, withhold Enter, and attempt to clear an unverified draft;
wait for prompt, text, output change, or quiet state;
return explicit draft and delivery verification without logging raw commands or output.
Terminal output is R2 and every text/key action is R3. A read-only request never authorizes a command. See terminal automation.
Figma in Chrome
Typed Figma actions can inspect the browser UI around a design file:
health-check the expected Figma UI anchors;
read the file name, pages, current mode, and current selection;
read rendered layer-tree rows and inspector properties;
select a page, mode, or visible layer with stale-row protection;
use screenshots for the WebGL canvas artwork.
Figma virtualizes its layer tree and paints the design canvas with WebGL, so this adapter intentionally does not claim full document mutation. See Figma support.
Developer diagnostics and visual output
Bounded, redacted console capture and metadata-only network diagnostics.
Same-origin page API requests with optional WordPress nonce handling.
Reversible mobile viewport, orientation, DPR, and touch emulation.
Viewport, element, region, and full-page screenshots.
Tutorial screenshots with rectangles, ellipses, arrows, labels, and automatic numbered set-of-marks overlays.
Element/listener/source inspection, bounded event observation, typed DOM and inline-style mutation, reversible CSS injection, and bounded PDF export.
Explicitly authorized raw page JavaScript as an R3 last resort; sensitive, navigation, submit, and unrestricted network surfaces remain denied.
Policy-preserving sequential batches, dry runs, idempotency keys, post-snapshots, semantic DOM deltas, verification, and stale-reference relocation.
Agent integrations
IBB exposes four local developer surfaces:
Surface | Use case |
MCP server | Primary interface for Codex, Cursor, Claude Code, and other stdio MCP clients |
JSON CLI | PowerShell-friendly fallback, diagnostics, and automation scripts |
TypeScript Agent SDK | Application integration and |
Loopback control API | Local adapter development on |
The Native Host transport on 127.0.0.1:47821 belongs exclusively to Desktop
Authority. Agents must not connect to the extension or that port directly.
The server currently exposes 54 runtime browser actions and 61 MCP tools. That
number is a release snapshot, not an agent contract: call
invictum_capabilities at runtime.
Safety model
Desktop Authority is the single policy and audit boundary.
Each action is classified R0-R3; sensitive actions require a matching, explicit authorization assertion.
A tab is reserved before work, visibly marked with the agent identity, and released in
finally. The user can stop control immediately.Element references are bound to document and DOM revisions.
Snapshots redact sensitive values; uploads, terminal commands, credentials, prompt text, and response bodies are not written to audit logs.
Browser-internal pages, extensions, DevTools, the Chrome Web Store, local files, and other restricted surfaces remain unavailable.
Background work is the default. Agents should not request foreground activation unless the application genuinely requires it.
Debugger access is tab-scoped and bounded. Persistent adapters release their lease on stop, reset, unlock, navigation, or crash cleanup.
IBB does not expose cookies, saved passwords, autofill data, arbitrary browser storage, unrestricted downloads, passive request/response bodies, traffic interception, OS-level trusted input, or remote control.
Read SECURITY.md and POLICY_CONFIGURATION.md before extending the action surface.
Architecture
AI agent
| MCP / CLI / TypeScript SDK / local control API
v
Desktop Authority :47820
| policy -> validation -> reservation -> audit -> cleanup
v
Native Host -> private loopback WebSocket :47821
v
Chrome MV3 extension -> typed page/CDP adapters -> authorized tabSee ARCHITECTURE.md for the trust boundaries and transport contracts.
Requirements
Windows 11 x64
Google Chrome 120+
Node.js 22+
pnpm 11
Git
The repository currently ships a source-based developer installation, not a signed Chrome Web Store package or a production installer.
Quick start
git clone https://github.com/invictumhr/ai-invictum-browser-bridge.git
Set-Location .\ai-invictum-browser-bridge
$env:CI = 'true'
pnpm install --frozen-lockfile
pnpm build
pnpm typecheck
pnpm test
pnpm lintLoad apps/extension/dist through chrome://extensions as an unpacked
extension, copy its generated extension ID, then register the Native Host:
.\scripts\register-native-host-dev.ps1 -ExtensionId "PASTE_EXTENSION_ID"
pnpm browser ping
pnpm browser capabilitiesSet the extension's Chrome Site access to On all sites. This avoids a manual toolbar approval for every new HTTP(S) origin; Chrome policy and the Bridge's own authorization model still apply.
Full instructions are in INSTALL_WINDOWS.md and EXTENSION_INSTALL.md.
Install with an AI agent on Windows
Copy the prompt below into a trusted AI coding agent that has PowerShell access to the Windows computer. The agent can install and build the local runtime, but Chrome requires a few visible user actions for an unpacked extension. The prompt therefore tells the agent exactly when to pause and guide the user.
Desktop Authority is the local process that accepts agent commands on
127.0.0.1:47820; the Native Host relays between it and the Chrome extension on
127.0.0.1:47821. The supported installation does not create a permanent
Windows Service. MCP and the CLI start Desktop Authority as a hidden local
daemon when needed, while Chrome starts the registered Native Host. Do not
expose either port or create a firewall rule.
Install Invictum Browser Bridge from the public repository on this Windows PC:
https://github.com/invictumhr/ai-invictum-browser-bridge.git
Your goal is to install the complete supported local chain:
AI client -> MCP/CLI -> Desktop Authority -> Native Host -> Chrome extension
Work autonomously wherever PowerShell can do the work. Guide me step by step
only for actions Chrome requires me to perform manually. Explain each manual
step in one short message, wait for my confirmation or the extension ID, and
then continue. Do not ask me to execute commands that you can safely execute.
Safety rules:
1. Use only the public repository above and the scripts checked into it.
2. Do not request, copy, print, or store Chrome passwords, cookies, tokens,
browser-profile files, or browsing data.
3. Do not disable Chrome security, install an unrelated extension, expose a
loopback port, create a firewall rule, or bind any service publicly.
4. Do not invent a Windows Service or Scheduled Task. This project intentionally
auto-starts Desktop Authority through MCP/CLI and lets Chrome start the Native
Host.
5. Do not overwrite an existing checkout. If the target directory exists,
inspect its Git remote and working tree first. Continue only if it is this
repository and existing changes are safe; otherwise choose a new directory.
6. Avoid administrator elevation unless a missing prerequisite genuinely
requires it. Native Host registration itself is per-user under HKCU.
7. Never work around a failed test, Chrome permission, or Native Messaging
error. Diagnose it and preserve the security model.
Perform these phases:
PHASE 1 — Preflight
- Use PowerShell.
- Check Windows version and availability/versions of Git, Google Chrome,
Node.js, npm/Corepack, and pnpm.
- Require Node.js 22 or newer and pnpm 11. Use the pnpm version declared in the
repository package.json.
- If a prerequisite is missing, explain what is missing. Install it through an
official source or winget only when installation is within my request; report
any UAC/manual step before continuing.
- Resolve a normal per-user installation directory. Default to
%USERPROFILE%\invictum-browser-bridge unless I already selected another path.
PHASE 2 — Clone, inspect, install, and build
- Clone the repository with:
git clone https://github.com/invictumhr/ai-invictum-browser-bridge.git
- Enter the repository and verify that origin points to that repository.
- Read README.md, INSTALL_WINDOWS.md, EXTENSION_INSTALL.md, SECURITY.md, and
AGENT_USAGE.md before installation.
- Run the repository secret scan before installation.
- Set CI=true for the install and run:
pnpm install --frozen-lockfile
pnpm build
pnpm typecheck
pnpm test
pnpm lint
- Stop and diagnose any failed gate. Do not continue with a partial build.
- Resolve and show me the exact absolute folder I will need in Chrome:
<repository>\apps\extension\dist
- Copy that folder path to the Windows clipboard if possible.
PHASE 3 — Guide me through loading the Chrome extension
Pause and ask me to do exactly this:
1. Open Google Chrome and go to chrome://extensions.
2. Turn on Developer mode in the top-right corner.
3. Click Load unpacked.
4. Select the exact apps\extension\dist folder you resolved above.
5. Confirm that Invictum Browser Controller appears and is enabled.
6. Copy its 32-character extension ID and send only that ID back to you.
Do not guess or hardcode the extension ID. Validate that the value I provide
matches Chrome's unpacked-extension ID format before using it.
PHASE 4 — Register the local Native Host
- From the repository root, run:
.\scripts\register-native-host-dev.ps1 -ExtensionId "THE_ID_I_PROVIDED"
- Confirm that the script created the per-user Native Messaging registration
for com.invictum.browser_bridge and did not expose a network port.
- If the Windows C# compiler needed by the checked-in launcher is unavailable,
report that exact blocker; do not download or execute an unverified launcher.
PHASE 5 — Finish Chrome configuration
Pause and guide me through these steps:
1. Return to chrome://extensions.
2. Click Reload on Invictum Browser Controller once.
3. Open Details for the extension.
4. Set Site access to On all sites.
5. Confirm the extension remains enabled and has no current error.
6. Optionally pin its toolbar icon so the ON/AI status and settings are easy to
see.
Explain that On all sites prevents a new manual approval for every HTTP(S)
domain, but does not bypass Chrome policy, restricted pages, User Stop, or IBB's
own authorization rules. Wait for my confirmation before testing.
PHASE 6 — Start and verify the bridge
- Run pnpm browser health.
- Run pnpm browser ping. The CLI should automatically start Desktop Authority
as a hidden local daemon if it is offline.
- Run pnpm browser capabilities.
- Verify that Desktop Authority is reachable only through 127.0.0.1:47820, the
private Native Host transport uses 127.0.0.1:47821, nativeConnected is true,
and the loaded extension returns its runtime capabilities.
- Treat runtime capabilities as authoritative. The current source expects 54
browser actions and the built MCP server expects 61 tools, but do not hide a
mismatch or force those numbers if the checked-out release differs.
- If the badge briefly shows ON and disconnects, diagnose Desktop Authority,
the HKCU Native Messaging manifest, its allowed extension ID, the built Native
Host paths, and extension errors. Rebuild/reregister/reload only the component
that is stale.
- Do not ask for a second extension reload unless extension files or its Native
Host registration actually changed.
PHASE 7 — Configure AI clients
- Ask whether I want global IBB/IBG discovery for installed AI clients. If yes,
run:
powershell -ExecutionPolicy Bypass -File
.\scripts\install-agent-discovery.ps1
- This should preserve unrelated Codex, Cursor, and Claude configuration.
- Tell me to start a new AI-agent session after MCP registration changes.
- Verify with a harmless request that performs only IBB ping and capabilities;
do not open a browser tab for this verification.
PHASE 8 — Final report
Report:
- repository installation path and checked-out revision;
- Node.js and pnpm versions;
- build/typecheck/test/lint results;
- Chrome extension ID and loaded dist path (the ID is not a secret);
- Native Host registration status;
- Desktop Authority health and nativeConnected state;
- runtime action count and MCP tool count;
- which AI clients were configured;
- whether any manual action or known limitation remains.
Do not claim success until ping and capabilities work through the normal local
authority. Do not use a temporary test harness that takes over port 47821.Configure AI agents
After pnpm build, install the MCP registrations and trigger rules for the
supported local agents:
powershell -ExecutionPolicy Bypass -File .\scripts\install-agent-discovery.ps1The phrases use IBB, use IBG, use Invictum Browser Bridge, and
use Invictum Browser Gate (plus their Croatian equivalents) all select this
Bridge. Start a new agent session after changing an MCP registration.
See MCP configuration, agent discovery, and the compact agent trigger contract.
Recommended agent workflow
ping -> capabilities -> open/navigate in background -> identify agent -> wait
-> outline/snapshot -> find -> typed action -> verify -> unlock in finallyPrefer typed actions and semantic references. Use screenshots for visual understanding, coordinates only as a fallback, and raw JavaScript only when the user explicitly authorized it and no safer typed action can solve the task.
The complete operating guide is AGENT_USAGE.md.
Documentation
Start with the documentation index. Important guides include:
Repository layout
apps/
cli/ JSON CLI and authority auto-start
desktop/ policy/audit authority and loopback control API
extension/ Manifest V3 Chrome controller
mcp/ stdio MCP adapter
native-host/ Native Messaging stdio <-> private local WebSocket
packages/
agent-sdk/ control client and reserved-tab lifecycle helpers
audit-log/ redacted audit contract and development sink
policy-engine/ fail-closed action classification
protocol/ strict IBP schemas and factories
shared-types/ transport-neutral contracts
tests/
fixtures/ deterministic local browser pages
integration/ emulated transport and real-Chrome smoke testsContributing
Issues and pull requests are welcome. Keep policy, validation, auditing, reservation, and cleanup in the Desktop Authority path; do not add a second control route to the extension. Run the complete local gates before opening a pull request and follow CONTRIBUTING.md.
변경 사항을 게시하기 전에 GIT_PUBLISHING.md의 비공개 데이터 체크리스트를 사용하세요.
License
Invictum Browser Bridge는 MIT License에 따라 라이선스가 부여된 오픈소스 소프트웨어입니다. 라이선스 조건에 따라 복사본을 사용, 복제, 수정, 병합, 게시, 배포, 서브라이선스 및 판매할 수 있습니다.
제작: invictum.hr
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
AI-powered browser automation — navigate, click, fill forms, and extract data from any website.
Operate Linux, macOS and Windows from your LLM. Every action runs through an auditable allowlist.
Let ChatGPT, Claude & Cursor use your Mac: email, calendar, iMessage, Teams, files. Local, free.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/invictumhr/ai-invictum-browser-bridge'
If you have feedback or need assistance with the MCP directory API, please join our Discord server