A browser agent that reports success is hard to audit. Streaming the session over VNC turns "it says it clicked the button" into something you can look at while it happens.
A server that wraps the browser-use agent framework. You describe a task in natural language, the agent drives a real Chromium browser to do it, and the result comes back through MCP.
- Browser automation driven by an AI agent rather than by a script of selectors
- Both transports: SSE for clients that speak it, and stdio through `mcp-proxy` for those that do not
- VNC streaming, so the browser session can be watched in real time rather than inferred from the final answer
- Asynchronous task execution, with `PATIENT=true` making API calls wait for completion instead of returning early
- A Docker image that publishes both the server port and the VNC port, with the VNC password readable from a mounted secret file rather than baked into the image
`uv`, Playwright, and `mcp-proxy` — required for stdio mode and installed with `uv tool install mcp-proxy`. Create a `.env` with `OPENAI_API_KEY`, optionally `CHROME_PATH` and `PATIENT`. Install with `uv sync`, `uv pip install playwright` and `uv run playwright install --with-deps --no-shell chromium`. SSE mode runs as `uv run server --port 8000` and clients connect to `http://localhost:8000/sse`; stdio mode builds and installs the wheel as a global tool, then runs `browser-use-mcp-server run server --port 8000 --stdio --proxy-port 9000`. The Docker route publishes 8000 for the server and 5900 for VNC, with a default VNC password of `browser-use` unless you mount your own password file.
One command plus a key — browser-use-mcp-server run server --port 8000 --stdio --proxy-port 9000, then supply credentials
