The Greasemonkey API and unpacked-extension loading are what set it apart from the usual browser servers: you can inject a userscript, keep values across page loads, and make cross-origin requests from inside the page. The same properties make it a poor fit for untrusted pages, since it is your real profile behind the wheel.
A server that launches Chrome with your own executable path and profile, then exposes navigation, evaluation and debugging over MCP.
- launch_chrome starts the browser at a URL, optionally with a custom executablePath, a userDataDir profile, and the automation banner suppressed
- evaluate runs JavaScript in the page and returns the value — reading the DOM, filling a form, or extracting a list
- get_console_logs captures console output, with an option to clear it as you read
- Tab handling — list open tabs with their IDs and URLs, open new ones, switch and close
- Userscript injection with a Greasemonkey-style API: GM_setValue and GM_getValue, GM_addStyle, GM_xmlhttpRequest, GM_openInTab, GM_registerMenuCommand
- Unpacked extensions loaded into the session, with their state preserved
- Page automation — click, type, handle dropdowns, hover, wait for elements, screenshot, and set viewport or device emulation
Node.js and a local Chrome install; the client launches the built server with node and the path to build/index.js. Building from the clone is the install path — npm install then npm run build. Because it can open your default profile, the browser it drives is the one already signed in to your accounts.
Build from source — clone the repository and build it, then point your client at the binary
