Invisible Playwright MCP AI Agent

by feder-cr• 888•• Scanned•Claim this listing•Request removal
Browser Automationai toolsantidetect browserautonomous agentsbrowser agentbrowser automation

Playwright MCP server undetected by anti-bots and captchas: AI agent browses the web on anti-detect stealth Firefox, Python, undetected browser automation, scraping, computer use.

Invisible Playwright MCP is an open-source ai agent by feder-cr, written mainly in Python, with 888 GitHub stars and the MIT license. Its code was last updated Oct 21, 2026.

Scan summary: scanned Nov 5, 2026 at commit 0df2a15. Seen able to run dynamic code, read environment and secrets, control a web browser, connect to the internet. Scan policy

Scanned
Full scan at 0df2a15 · Nov 5, 2026
Scanned Builds Boots Reproducible
Static code scanwarn
Secrets scanpass
Dependency audit0 known vulnerabilitiespass
Manifestserver.jsonpass
Buildpass
Boot & handshake17 toolspass
Network egressfail
Reproducible (×3)pass

Findings (8)

  • high
    dropper issue
    Details are available to the maintainer after claiming this listing.
  • high
    dropper issue
    Details are available to the maintainer after claiming this listing.
  • high
    dropper issue
    Details are available to the maintainer after claiming this listing.
  • high
    dropper issue
    Details are available to the maintainer after claiming this listing.
  • high
    dropper issue
    Details are available to the maintainer after claiming this listing.
  • high
    network issue
    Details are available to the maintainer after claiming this listing.
  • low
    Possible example credential in docs/tests: generic-api-key
    tests/test_cli_surface.py:31
  • low
    Reads environment variables not listed in the manifest
    GITHUB_REPOSITORY, GITHUB_TOKEN, GH_TOKEN, STEALTHFOX_MCP_TRANSPORT, STEALTHFOX_MCP_HOST, STEALTHFOX_MCP_PORT, APPDATA, XDG_DATA_HOME

Network activity

During install
files.pythonhosted.orgpypi.org
While running
github.comrelease-assets.githubusercontent.com

Tools exposed (17)

  • browser_open

    Open `main` or `support`, or reopen one as somebody else. `support` is yours to manage: open it when the task needs a second identity, and close it with browser_close as soon as the task no longer needs it, before you answer. It is not saved. Called on a browser that is already up,

  • browser_close

    Close one browser and free what it was holding. The page it had is gone with it. The other browser is not touched. Who it was is kept: browser_open with no arguments brings the same person back. To be somebody else, pass a seed, a proxy or a profile.

  • browser_list

    Which of the two browsers are open, where each one is, and which one you are working in. Answers JSON: `focus`, the browser your last command acted in, or "" when none is open; `note`, which says how many are open and that a command naming no browser goes to `main`; and `browsers` -

  • browser_status

    Who is browsing right now: the identity, the exit, the profile and the page. Ask whenever you need to know which person the browser currently is, or from where its traffic leaves. The seed is what you would pass to `browser_open` to become this person again, so this is also how you

  • browser_navigate

    Go to a url in this browser's page, opening it if none exists. Answers with the HTTP status the server gave and the url actually landed on, which is not always the one asked for: a redirect to a login wall or a regional domain shows up here. Read the status before trusting the page -

  • browser_read_text

    The visible text of an element, with the markup gone, whole. The cheapest way to read a page. Narrow the selector when you know where the answer is; use browser_read_html instead when the structure matters, or browser_snapshot when you need something to click.

  • browser_snapshot

    Title, url, and the interactive elements that are actually visible. Each element carries a `selector` when one can reach it: pass that string to browser_click or browser_type VERBATIM rather than writing your own. It is built to match exactly ONE element, which the obvious selector ofte

  • browser_read_html

    The page's HTML, cleaned down to what is worth reading. Use this when the STRUCTURE matters - a form and its labels, a table, what a control is wired to. `browser_snapshot` gives a flat inventory of things to click; this keeps the markup and the relationships inside it. mode="form"

  • browser_take_screenshot

    One screenshot of this browser's page, on demand.

  • browser_watch

    The whole browser window as a person at the machine sees it: tab strip, address bar, the page and the pointer, from a live capture kept running on that page. For watching the work, not for acting on it: the picture is window pixels, so do not feed its coordinates to browser_click_at; use

  • browser_click

    Click the first element matching a CSS selector. Scrolls it into view and waits for it to be clickable. When no selector can describe the target, use browser_click_at with coordinates from browser_snapshot.

  • browser_click_at

    Click (or press-and-hold) a raw viewport coordinate instead of a selector - for targets a selector cannot reliably reach: a slider track, a canvas-drawn captcha, a precise point inside a wider element. Moves the pointer there first (no teleport), then down, then up, holding first if

  • browser_type

    Type into a field, replacing what it holds, key by key at a human pace. The answer says what the field kept: all of it, a maxlength's cut, the page's reformatting, nothing (the page took it out), or one box of a code the page spreads over several. Nothing is retyped on its own. Text too

  • browser_select_option

    Choose an option in a dropdown (`<select>`), by its visible label or by its value. Use this rather than clicking the dropdown and pressing arrow keys: a click plus arrows cannot tell you which row it landed on, and setting the value through browser_evaluate changes it without the pa

  • browser_upload_files

    Attach local files to a file input, the way a person picks them. `selector` is the `<input type=file>` itself, or the button or label that opens its chooser: that is clicked with the real pointer and the chooser answered with `paths`. A hidden input is opened through its label; with

  • browser_press_key

    Press a key on whatever has focus: "Enter", "Tab", "Escape", "ArrowDown", "Control+a", or a single character.

  • browser_evaluate

    READ from the page with JavaScript and get the result as JSON. Last, for what other tools cannot see: a computed style, a value held in a framework's state, the length of a list. Text, a heading or a price is browser_read_text's, markup browser_read_html's, a control browser_snapsho

Automated result for the commit shown. See our scan policy. View the scan log

Maintainers can claim the listing to rescan, or dispute a result.

Invisible Playwright MCP alternatives

View more →

Similar ai agents in Browser Automation, ranked by GitHub stars. Compare licence, recent activity and scan status before you choose.

NameStarsLicenceLast updatedScan
Invisible Playwright MCP (this page)
feder-cr
888MITOct 21, 2026Scanned, no flagged issues
Browser Use
browser-use
120kMITOct 31, 2026Scanned, no flagged issues
CloakBrowser
CloakHQ
33kMITOct 31, 2026Scanned, no flagged issues
Invisible Dots
feder-cr
32kMITOct 31, 2026Scanned, no flagged issues
OpenCLI
jackwener
31kApache-2.0Oct 26, 2026Scanned, no flagged issues
Stagehand
browserbase
26kMITOct 30, 2026Scanned, no flagged issues