loading…
Search for a command to run...
loading…
Human-in-the-loop automation framework. Log them in, watch them run.
Human-in-the-loop automation framework. Log them in, watch them run.
CI PyPI License: MIT MCP Server Local First Glama Open in GitHub Codespaces

Give your AI agent a real browser, with a human in the loop.
Auto Browser is an MCP-native browser control plane for authorized workflows. It gives MCP clients, LLM agents, and operators a shared Playwright browser with human takeover, reusable auth profiles, approvals, audit trails, and local-first deployment.
Works with:
pip install auto-browser-client for the SDK, pip install auto-browser-langchain for the LangChain/LangGraph/CrewAI adapters, and uvx auto-browser-mcp to run the MCP stdio bridge with zero setup. Releases publish via PyPI trusted publishing (OIDC) on tag push.GET /sessions/{id}/witness/verify and the read-only browser.verify_witness MCP tool walk the full chain and report the first divergent receipt if the log was altered, reordered, or truncated.See CHANGELOG.md for the full release history.
| Browser Control | Operator Safety | Deployment and Integration |
|---|---|---|
| Playwright-backed sessions with screenshots, DOM summaries, OCR excerpts, tab controls, downloads, and network inspection | approval gates, operator identity headers, audit events, PII scrubbing, Witness receipts, and protection profiles | MCP over HTTP, bundled stdio bridge, REST API, Docker Compose, Codespaces, auth profiles, and optional per-session isolation |
git clone https://github.com/LvcidPsyche/auto-browser.git
cd auto-browser
docker compose up --build
That is enough for local development with the default settings.
Optional:
cp .env.example .env
make doctor
Run make doctor from a normal terminal with local Docker access and permission to open localhost sockets.
Open:
http://127.0.0.1:8000/docshttp://127.0.0.1:8000/dashboardhttp://127.0.0.1:6080/vnc.html?autoconnect=true&resize=scaleAll published ports bind to 127.0.0.1 by default.
Codespaces provisions the stack automatically. The dashboard and noVNC tabs are usually ready in about 90 seconds.
The highest-signal flow in this repo is:
Start here:
Minimal session creation:
curl -s http://127.0.0.1:8000/sessions \
-X POST \
-H 'content-type: application/json' \
-d '{"name":"demo","start_url":"https://example.com"}' | jq
Minimal observation:
curl -s http://127.0.0.1:8000/sessions/<session-id>/observe | jq
Auto Browser exposes:
http://127.0.0.1:8000/mcphttp://127.0.0.1:8000/mcp/tools and http://127.0.0.1:8000/mcp/tools/calluvx auto-browser-mcp from PyPI, or scripts/mcp_stdio_bridge.py in a repo checkoutThe default MCP tool profile is curated, which keeps the browser surface compact for better tool selection. If you want the full internal tool surface, set:
MCP_TOOL_PROFILE=full
Raw tool-call example:
curl -s http://127.0.0.1:8000/mcp/tools/call \
-X POST \
-H 'content-type: application/json' \
-d '{
"name":"browser.create_session",
"arguments":{
"name":"demo",
"start_url":"https://example.com"
}
}' | jq
Client setup guides:
Auto Browser ships a Stage 0 convergence harness for Agent Skill Induction. It runs a structured task contract, records tamper-checked traces, verifies completion, and writes a staged skill candidate with signed provenance. Generated skills are staged only — promotion stays explicit and reviewed.
Read-only inspection tools (harness.list_runs, harness.get_status, harness.get_trace) are exposed in the default curated MCP tool profile so agents can introspect harness state without elevated access. Convergence runs, drift checks, candidate management, and graduation require MCP_TOOL_PROFILE=full, or can be invoked directly over REST.
Start with docs/convergence-harness.md. A deterministic local smoke is:
python -m controller.harness.run --contract evals/contracts/example_read.json --mock-final-url https://example.com --mock-final-text "Example Domain"
For MCP clients, set MCP_TOOL_PROFILE=full to expose the harness.* tools.
For a real private deployment, set at least:
APP_ENV=production
API_BEARER_TOKEN=<strong-random-secret>
REQUIRE_OPERATOR_ID=true
AUTH_STATE_ENCRYPTION_KEY=<44-char-fernet-key>
REQUIRE_AUTH_STATE_ENCRYPTION=true
REQUEST_RATE_LIMIT_ENABLED=true
METRICS_ENABLED=true
STEALTH_ENABLED=false
COMPLIANCE_TEMPLATE can apply a preconfigured posture at startup:
| Preset | Auth Encryption | Operator ID | PII Scrub | Isolation | Max Session Age |
|---|---|---|---|---|---|
strict |
required | required | all layers | docker_ephemeral |
4h |
balanced |
- | required | network + text | shared | 24h |
Both presets require upload approvals and enable Witness receipts. Startup writes the applied policy to /data/compliance-manifest.json. The legacy names (HIPAA, SOC2, GDPR, PCI-DSS) still work as deprecated aliases and emit a warning at startup.
Example:
COMPLIANCE_TEMPLATE=strict docker compose up
For deployment details, hosted Witness notes, CLI auth modes, and reverse-SSH guidance, see:
flowchart LR
User[Human operator] -->|watch / takeover| noVNC[noVNC]
LLM[OpenAI / Claude / Gemini] -->|shared tools| Controller[Controller API]
Controller -->|Playwright protocol| Browser[Browser node]
noVNC --> Browser
Browser --> Artifacts[(screenshots / traces / auth state)]
Controller --> Artifacts
Controller --> Policy[Allowlist + approval gates]
Core components:
browser-node/ runs Chromium, Xvfb, x11vnc, and noVNCcontroller/ exposes the FastAPI controller, MCP transport, policy rails, and orchestration endpointsdata/ holds runtime artifacts, auth state, approvals, audit logs, and optional CLI cachesscripts/ contains local helpers for doctor, smoke tests, bridges, and release checks| Path | What It Contains |
|---|---|
| controller/ | controller API, MCP transport, tests, and packaging |
| browser-node/ | browser runtime and Playwright connection layer |
| examples/ | copy-paste flows and MCP client setup |
| integrations/langchain/ | LangChain, LangGraph, and CrewAI adapters |
| docs/ | architecture, deployment, hardening, and launch docs |
| scripts/ | doctor, smoke harnesses, stdio bridge, and auth helpers |
| ops/ | supporting service templates and operational assets |
| Command | Purpose |
|---|---|
make help |
list available repo commands |
make lint |
run Ruff checks on app, tests, and helper scripts |
make test |
run controller tests in Docker |
make test-local |
run controller tests on host Python 3.10+ |
make eval |
run deterministic provider/profile eval scoring |
make doctor |
run the local readiness smoke |
make release-audit |
run the fuller release-validation pass |
make smoke-isolation |
verify per-session Docker isolation |
make smoke-reverse-ssh |
verify reverse-SSH remote access |
| If You Want To... | Start Here |
|---|---|
| understand the system shape | docs/architecture.md |
| connect Claude Desktop or Cursor | docs/mcp-clients.md |
| run the curl-first examples | examples/README.md |
| deploy on a trusted host | docs/deployment.md |
| review production constraints | docs/production-hardening.md |
| run the convergence harness | docs/convergence-harness.md |
| inspect release history | CHANGELOG.md |
| see where the project is headed | ROADMAP.md |
If you want to help, start with:
If Auto Browser is useful, a star helps other people find it. Sponsorship and tip options live in TIPS.md.
Run in your terminal:
claude mcp add auto-browser -- npx Yes, Auto Browser MCP is free — one-click install via Unyly at no cost.
No, Auto Browser runs without API keys or environment variables.
Self-hosted: the server runs locally on your machine via the install command above.
Open Auto Browser on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Browser automation, scraping, screenshots
by MicrosoftBrowser automation and web scraping.
by modelcontextprotocolPlugin-based MCP server + Chrome extension that gives AI agents access to web applications through the user's authenticated browser session. 100+ plugins with a
by opentabs-dev1,500+ developer infrastructure deals, free tiers, and startup programs across 54 categories. Search deals, compare vendors, plan stacks, and track pricing chan
by robhunterNot sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All browse MCPs