{"name":"io.github.cherchyk/mcpbrowser","slug":"cherchyk-mcpbrowser","title":"MCP Browser","description":"Browser automation using the user's Chromium session — JS execution, auth, and anti-bot support.","url":"https://mcp.market/server/cherchyk-mcpbrowser","rating":null,"grade":"B","score":80,"certified":false,"status":"active","category":"scraping","tags":["scraping","security"],"presence":{"score":33,"stars":9,"forks":1,"downloads_week":133,"last_push_at":"2026-08-12T00:40:44.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/cherchyk/MCPBrowser","website":"https://github.com/cherchyk/MCPBrowser#readme","version":"0.4.6","remotes":[],"packages":[{"registryType":"npm","identifier":"mcpbrowser","version":"0.4.6","transport":{"type":"stdio"}}],"tools":[{"name":"accept_eula","description":"CRITICAL: You MUST ask the user 'Do you accept the MCPBrowser EULA?' and wait for their explicit 'Yes' response BEFORE calling this tool. Set userExplicitlyConfirmed=true ONLY if the user explicitly said 'Yes' or 'I accept'. If the user has not responded or said 'No', DO NOT call this tool. Calling this tool without user consent violates the EULA terms.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_click_element","description":"Click buttons, links, or any element on a browser-loaded page. Use when: you need to navigate a website, submit a form, press a button, follow a link, or interact with any clickable UI element. Targets by CSS selector or visible text. Returns updated page HTML after click. PREREQUISITE: Page must be loaded with browser_fetch_webpage first.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_close_tab","description":"Close a browser tab to free resources. Use when: you are done with a page and want to release memory, or need to reset session state for a hostname. Uses exact hostname match.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_detect_forms","description":"Scan a browser-loaded page and return all forms as structured JSON — fields, types, validation rules, submit buttons, and orphaned inputs. Use when: you need to understand a form before filling it, discover what fields exist on a page, or map form structure for automation. PREREQUISITE: Page must be loaded with browser_fetch_webpage first.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_execute_javascript","description":"Run JavaScript on a browser-loaded page and get the result. Use when: you need to extract structured data from a page, manipulate the DOM, read page state, run custom queries on page content, or perform UI actions that CSS selectors cannot reach. Returns the script result as JSON, text, or void. PREREQUISITE: Page must be loaded with browser_fetch_webpage first.","write_action":true,"price_micros":0,"input_schema":null},{"name":"browser_fetch_webpage","description":"Load any URL and return its content using a real browser with full JavaScript execution. Use whenever a webpage needs to be loaded — whether to read content, interact with a web app, or access any HTTP/HTTPS resource. Connects to the user's existing browser session with all cookies, logins, and SSO sessions available automatically. Handles JavaScript rendering, authentication, and anti-bot protect","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_get_current_html","description":"Re-read HTML from an already-loaded page without reloading it. Use when: you need to check page state after a click or form fill, re-extract content from the current page, or get updated HTML after dynamic changes. Much faster than browser_fetch_webpage since it skips navigation. PREREQUISITE: Page must be loaded with browser_fetch_webpage first.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_navigate_history","description":"Go back or forward in browser history. Use when: you clicked a link and need to return to the previous page, or want to go forward after going back. PREREQUISITE: Page must be loaded with browser_fetch_webpage first.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_plugin_action","description":"Execute a site-specific plugin action. Call browser_plugin_info first to discover available plugins and their actions.","write_action":true,"price_micros":0,"input_schema":null},{"name":"browser_plugin_info","description":"List available site-specific plugins and their actions. Use when: browser_fetch_webpage suggests a plugin in nextSteps, or you want to check what optimized actions are available for the current site. Call with no arguments to list all plugins, or with a plugin name for details.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_scroll_page","description":"Scroll within a browser-loaded page. Automatically detects scrollable containers inside SPAs (e.g., ADO, Jira, Gmail) where the main content scrolls inside an inner div rather than the window. Use when: you need to see more content below the fold, bring an element into view before clicking, scroll to a specific section, or navigate long pages. Supports scroll by direction, to a CSS selector, or to","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_take_screenshot","description":"Capture a screenshot of a browser-loaded page as PNG. Set fullPage=true to capture the entire scrollable page in one shot — this avoids multiple scroll+screenshot cycles. Only use fullPage=false when you specifically need just the current viewport (rare). Use when: you need to see what a page looks like, analyze visual layout, view charts/images/graphs, debug UI issues, or when HTML alone is insuf","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_type_text","description":"Type text into input fields on a browser-loaded page. Use when: you need to fill a form, enter a search query, type into a text box, or input data into any editable field. Supports filling multiple fields in a single call. PREREQUISITE: Page must be loaded with browser_fetch_webpage first.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":80,"grade":"B","scanned_at":"2026-09-23T17:17:51.709Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-23T17:17:51.730Z","components":{"code":{"score":20,"max":25,"notes":["63 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":12,"max":15,"notes":["last push 43 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[{"id":"exec.eval","severity":"medium","component":"code","title":"eval / new Function used","evidence":"src/actions/execute-javascript.js: …t wrap = async () => { const fn = new Function(`return (async () => { ${userScript} })(…"}],"inputs":{"packages":[{"registryType":"npm","identifier":"mcpbrowser","version":"0.4.6","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":2,"publishedAt":"2026-08-12T00:40:42.165Z","repositoryUrl":"git+https://github.com/cherchyk/MCPBrowser.git","weeklyDownloads":133}],"repo":{"found":true,"owner":"cherchyk","repo":"MCPBrowser","archived":false,"pushedAt":"2026-08-12T00:40:44Z","stars":9,"forks":1,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/1703275?v=4","ownerCreatedAt":"2012-05-03T17:32:34Z","license":"MIT"},"icon":{"url":"https://raw.githubusercontent.com/cherchyk/MCPBrowser/main/VSCodeExtension/icon.png","source":"registry","width":128,"height":128},"presence":{"stars":9,"forks":1,"downloadsWeek":133,"license":"MIT","lastPushAt":"2026-08-12T00:40:44.000Z","score":33}}}},"grade_history":[],"reviews":[]}