Actions are coordinate-based rather than selector-based, which pairs with the screenshot returned after each step — the model looks, then aims. That is coarser than an accessibility-tree approach, but it needs no extension and no store approval, which is why it still works in a locked-down environment or a container where those are not options.
A browser-automation server that connects to a Chrome instance started in debugging mode. Because it attaches to your existing browser rather than launching a clean one, the sessions you are already logged into stay logged in.
- launch_browser to attach to the debugging port and open a session, close_browser to release it
- navigate_to with tab reuse — the same domain reuses its tab instead of piling up new ones
- click and hover by coordinates, type_text for input, scroll_down and scroll_up a viewport at a time
- resize_browser to change the window size, and get_page_content for the current page's HTML
- A screenshot after each operation for visual feedback, and an automatic wait for network activity to settle
Node, and a Chrome started in debugging mode with its own user data directory. It works the same against a Chrome running in a container, which the server discovers on its own.
One command — npx chrome-debug-mcp
