{"name":"io.github.feder-cr/invisible-playwright-mcp","slug":"feder-cr-invisible-playwright-mcp","title":"invisible_playwright_mcp","description":"AI browser agent: browses, clicks, types, and reads real web pages from plain-English instructions.","url":"https://mcp.market/server/feder-cr-invisible-playwright-mcp","rating":null,"grade":"A","score":92,"certified":false,"status":"active","category":"scraping","tags":["scraping","ai"],"presence":{"score":58,"stars":31637,"forks":4681,"downloads_week":null,"last_push_at":"2026-09-23T16:43:23.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"pypi","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/feder-cr/invisible_playwright_mcp","website":null,"version":"0.70.0","remotes":[],"packages":[{"registryType":"pypi","registryBaseUrl":"https://pypi.org","identifier":"invisible-playwright-mcp","version":"0.70.0","runtimeHint":"uvx","transport":{"type":"stdio"}}],"tools":[{"name":"browser_click","description":"Click the first element matching a CSS selector.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_click_at","description":"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 hold_seconds is set. Returns a screenshot taken right after release.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_close","description":"Close one browser and free what it was holding.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_evaluate","description":"READ from the page with JavaScript and get the result as JSON.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_list","description":"Which of the two browsers are open, where each one is, and which one you are working in.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_navigate","description":"Go to a url in this browser's page, opening it if none exists.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_open","description":"Open `main` or `support`, or reopen one as somebody else.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_press_key","description":"Press a key on whatever has focus: \"Enter\", \"Tab\", \"Escape\", \"ArrowDown\", \"Control+a\", or a single character.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_read_html","description":"The page's HTML, cleaned down to what is worth reading.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_read_text","description":"The visible text of an element, with the markup gone.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_select_option","description":"Choose an option in a dropdown (`<select>`), by its visible label or by its value.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_snapshot","description":"Title, url, and the interactive elements that are actually visible.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_status","description":"Who is browsing right now: the identity, the exit, the profile and the page.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_take_screenshot","description":"One screenshot of this browser's page, on demand.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_type","description":"Fill a field, replacing whatever it holds.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_watch","description":"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_take_screenshot for that.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":92,"grade":"A","scanned_at":"2026-09-23T17:13:20.290Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-23T17:13:20.297Z","components":{"code":{"score":25,"max":25,"notes":["51 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":15,"max":15,"notes":["last push 0 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"pypi","identifier":"invisible-playwright-mcp","version":"0.70.0","found":true,"license":"MIT","dependencyCount":13,"publishedAt":"2026-09-23T17:12:18.953588Z"}],"repo":{"found":true,"owner":"feder-cr","repo":"invisible_playwright_mcp","archived":false,"pushedAt":"2026-09-23T16:43:23Z","stars":31637,"forks":4681,"openIssues":4,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/85809106?v=4","ownerCreatedAt":"2021-06-12T21:46:33Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/85809106?v=4&s=128","source":"github"},"presence":{"stars":31637,"forks":4681,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-09-23T16:43:23.000Z","score":58}}}},"grade_history":[],"reviews":[]}