What it is
Browser automation built on nodriver over CDP rather than Puppeteer or Playwright, with profile management that keeps your logins between sessions and flag filtering that strips the Chrome arguments which give automation away.
Requirements
Python 3.11 or newer, plus Chrome, Chromium or Microsoft Edge on the machine. uvx stealth-chrome-devtools-mcp is the documented launch. Headed browsing needs a real desktop session: sessions share one backend keyed by display context, and a spawn with headless=False raises rather than handing back an invisible window when no backend can show one — stealth-chrome-devtools doctor reports which contexts have a backend, and headless spawns work from SSH, CI and services. Profiles live under STEALTH_MCP_BROWSER_SESSION_ROOT, which defaults to C:\stealth-mcp-browser-sessions on Windows and ~/.stealth-mcp-browser-sessions elsewhere; on a shared Windows machine move that inside your user profile so the OS permissions cover your cookies. Storage stays bounded by STEALTH_MCP_CLONE_STORAGE_CAP_GB, default 10, and STEALTH_MCP_BROWSER_SESSION_STORAGE_CAP_GB, default 20, with evicted clones recoverable from sessions/.trash for 24 hours. Crash reports go to the maintainers by default with machine name, username and local variables stripped; STEALTH_MCP_NO_ERROR_REPORTING=true turns that off.
Setup effort
One command — pip install stealth-chrome-devtools-mcp==2.0.6