{"name":"io.github.devinwang/cloak-browser-mcp","slug":"devinwang-cloak-browser-mcp","title":null,"description":"Playwright-compatible MCP server on CloakBrowser stealth Chromium: 86 tools, humanized input.","url":"https://mcp.market/server/devinwang-cloak-browser-mcp","rating":null,"grade":"B","score":75,"certified":false,"status":"active","category":"scraping","tags":["scraping"],"presence":{"score":29,"stars":2,"forks":1,"downloads_week":62,"last_push_at":"2026-10-21T02:54:02.000Z","license":"NOASSERTION"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/devinwang/cloak-browser-mcp","website":null,"version":"0.2.0","remotes":[],"packages":[{"registryType":"npm","identifier":"@devinwangd/cloak-browser-mcp","version":"0.2.0","transport":{"type":"stdio"},"environmentVariables":[{"description":"Optional CloakBrowser Pro license key. Leave unset to use the free binary.","isSecret":true,"name":"CLOAKBROWSER_LICENSE_KEY"}]}],"tools":[{"name":"browser_click","description":"Click an element by ref or selector.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_close","description":"Close the browser and discard all in-memory state. The next tool call will lazy-relaunch.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_console_messages","description":"Retrieve buffered console/pageerror output for the active tab.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_cookie_clear","description":"Erase ALL cookies in the active context.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_cookie_delete","description":"Delete a single cookie.","write_action":true,"price_micros":0,"input_schema":null},{"name":"browser_cookie_get","description":"Read a single cookie value.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_cookie_list","description":"List all cookies (optionally filtered by domain/path).","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_cookie_set","description":"Create or update a cookie at the context level.","write_action":true,"price_micros":0,"input_schema":null},{"name":"browser_drag","description":"Drag from one element to another.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_drop","description":"Drop files or data onto an element.","write_action":true,"price_micros":0,"input_schema":null},{"name":"browser_emulate_media","description":"Emulate CSS media features for the page, for example switch between the light and dark color scheme. Omitted parameters are left unchanged; null clears an override.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_evaluate","description":"Run a JavaScript function inside the page. Function source must be an arrow or function expression.","write_action":true,"price_micros":0,"input_schema":null},{"name":"browser_file_upload","description":"Upload files to the active file chooser. Paths must be inside --upload-allow-dir if set.","write_action":true,"price_micros":0,"input_schema":null},{"name":"browser_fill_form","description":"Populate multiple form fields in one call.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_find","description":"Search the accessibility snapshot of the current page for text or a regular expression. Returns matching snapshot nodes with a few lines of context, each under its path from the root, which is cheaper than a full snapshot when you only need to locate an element and its ref.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_generate_locator","description":"Generate Playwright-style locator code for an element by ref. Useful for codegen.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_get_config","description":"Print resolved server config (capabilities, profile, proxy, fingerprint, allow/block lists).","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_handle_dialog","description":"Respond to the next dialog (alert/confirm/prompt/beforeunload).","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_hide_highlight","description":"Remove highlight from a previously highlighted element, or all of them.","write_action":true,"price_micros":0,"input_schema":null},{"name":"browser_highlight","description":"Persistently outline an element so a human reviewer can see what the agent picked.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_hover","description":"Hover over an element.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_localstorage_clear","description":"Clear localStorage on the active page.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_localstorage_delete","description":"Remove a localStorage key.","write_action":true,"price_micros":0,"input_schema":null},{"name":"browser_localstorage_get","description":"Read a localStorage value.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_localstorage_list","description":"List all localStorage entries.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_localstorage_set","description":"Set a localStorage key on the active page.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_mouse_click_xy","description":"Click at pixel coordinates (bypasses accessibility tree).","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_mouse_down","description":"Press a mouse button at the current cursor position.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_mouse_drag_xy","description":"Drag from one coordinate pair to another.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_mouse_move_xy","description":"Move the cursor to pixel coordinates.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_mouse_up","description":"Release a mouse button at the current cursor position.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_mouse_wheel","description":"Scroll via mouse wheel by delta pixels.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_navigate","description":"Load a URL in the active tab. Returns a fresh snapshot after navigation.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_navigate_back","description":"Go back one entry in the active tab's history.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_network_request","description":"Inspect a single captured request by index (from browser_network_requests).","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_network_requests","description":"List captured HTTP requests for the active tab since last navigation.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_network_state_set","description":"Toggle online/offline simulation for the active context.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_pdf_save","description":"Save the current page as PDF (Chromium-only).","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_press_key","description":"Send a single key or key combination at page level.","write_action":true,"price_micros":0,"input_schema":null},{"name":"browser_resize","description":"Resize the viewport.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_resume","description":"Resume page execution if paused via debugger; statement or DevTools breakpoint.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_route","description":"Install a request mock. Matched requests are fulfilled with the given status/body/headers.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_route_list","description":"List active request mocks.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_run_code_unsafe","description":"Execute arbitrary JS in the server process. Only available when started with BOTH --caps config AND --enable-unsafe-eval.","write_action":true,"price_micros":0,"input_schema":null},{"name":"browser_scroll","description":"Scroll the page or an element by a pixel amount.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_select_option","description":"Select one or more options in a <select> dropdown.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_sessionstorage_clear","description":"Clear sessionStorage on the active page.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_sessionstorage_delete","description":"Remove a sessionStorage key.","write_action":true,"price_micros":0,"input_schema":null},{"name":"browser_sessionstorage_get","description":"Read a sessionStorage value.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_sessionstorage_list","description":"List all sessionStorage entries.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_sessionstorage_set","description":"Set a sessionStorage key on the active page.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_set_storage_state","description":"Import cookies + origin storage from a JSON file. Applied at context boot, so requires --profile-dir to persist beyond this session.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_snapshot","description":"Capture an accessibility-tree snapshot of the active page. Returns a structured outline with [eN] refs you can pass to interaction tools.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_start_recording","description":"Start recording actions that the user performs in the browser as Playwright code. Use it when the user wants to demonstrate a flow manually. Call browser_stop_recording when the user says they are done to retrieve the recorded actions.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_start_tracing","description":"Begin a Playwright trace recording. Stop with browser_stop_tracing to write the .zip.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_start_video","description":"Begin a video recording. Stop with browser_stop_video. Note: video must be configured at context creation; for ephemeral sessions, the next launched tab is recorded.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_stop_recording","description":"Stop the recording started with browser_start_recording and return the recorded actions as Playwright code.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_stop_tracing","description":"Stop tracing and write the .zip trace to the path passed in browser_start_tracing.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_stop_video","description":"Stop the video recording flag.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_storage_state","description":"Export cookies + origin storage to a JSON file.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_tabs","description":"List, create, switch between, or close tabs.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_take_screenshot","description":"Capture a screenshot of the page or a specific element.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_type","description":"Type text into an editable field. Use --humanize for natural per-character timing.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_unroute","description":"Remove a route mock (or all mocks if pattern is omitted).","write_action":true,"price_micros":0,"input_schema":null},{"name":"browser_verify_element_visible","description":"Assert that an element matching role+accessible name is visible.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_verify_list_visible","description":"Assert that a list element exists and contains each item.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_verify_text_visible","description":"Assert that text is visible on the page.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_verify_value","description":"Assert an input value or computed state.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_video_chapter","description":"Insert a chapter marker into the video buffer (no-op when video is off).","write_action":true,"price_micros":0,"input_schema":null},{"name":"browser_video_hide_actions","description":"Stop annotating actions performed on the page.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_video_show_actions","description":"Annotate subsequent actions performed on the page with a callout that names the action and, when styled, marks the action point and highlights the target element. Useful while video recording or screencasting.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_wait_for","description":"Wait for time, text appearance/disappearance, or selector state.","write_action":false,"price_micros":0,"input_schema":null},{"name":"cloak_binary_info","description":"Report installed CloakBrowser binary version, tier (free or pro), platform, and cache path.","write_action":false,"price_micros":0,"input_schema":null},{"name":"cloak_binary_update","description":"Force CloakBrowser to check for and download the latest Chromium build. May take several minutes (~200MB).","write_action":true,"price_micros":0,"input_schema":null},{"name":"cloak_detection_test","description":"Load a well-known bot-detection probe page and dump its key result fields.","write_action":false,"price_micros":0,"input_schema":null},{"name":"cloak_humanize_set","description":"Toggle humanized mouse/keyboard inputs and tune behavior. Takes effect on subsequent click/type calls when --caps humanize is on.","write_action":false,"price_micros":0,"input_schema":null},{"name":"cloak_persistent_profile_create","description":"Create a fresh persistent profile directory under ~/.cloak-browser-mcp/profiles/<name>. Use as --profile-dir on next launch.","write_action":true,"price_micros":0,"input_schema":null},{"name":"cloak_persistent_profile_delete","description":"Delete a profile directory. Requires confirm=true. The active session is unaffected.","write_action":true,"price_micros":0,"input_schema":null},{"name":"cloak_persistent_profile_list","description":"List all profile directories under ~/.cloak-browser-mcp/profiles/.","write_action":false,"price_micros":0,"input_schema":null},{"name":"cloak_request_signal_inspect","description":"Open the target URL in an ephemeral background tab and capture per-request connection signals: response status, security details (TLS protocol/issuer), response headers, and request headers (Accept-Language, User-Agent, Sec-CH-UA-*).","write_action":false,"price_micros":0,"input_schema":null},{"name":"cloak_set_fingerprint","description":"Apply a fingerprint profile to the active context. Some fields (seed, GPU, screen) require recreating the context — current pages will be reopened on the same URL.","write_action":false,"price_micros":0,"input_schema":null},{"name":"cloak_set_geolocation","description":"Set the geolocation reported by navigator.geolocation. Pass fromProxyIp=true to auto-resolve from proxy exit IP.","write_action":false,"price_micros":0,"input_schema":null},{"name":"cloak_set_locale","description":"Override navigator.language and Accept-Language for the active context.","write_action":false,"price_micros":0,"input_schema":null},{"name":"cloak_set_proxy","description":"Replace the current proxy. This recreates the BrowserContext (state is preserved if --profile-dir was used; otherwise cookies are lost).","write_action":false,"price_micros":0,"input_schema":null},{"name":"cloak_set_timezone","description":"Live-override the timezone for the active context via CDP (no relaunch).","write_action":false,"price_micros":0,"input_schema":null},{"name":"cloak_stealth_audit","description":"Programmatic stealth audit. Reports navigator.webdriver, plugin count, WebGL vendor/renderer, languages, user agent, hardwareConcurrency, deviceMemory, permissions, chrome.runtime presence, and a canvas fingerprint hash.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":75,"grade":"B","scanned_at":"2026-10-26T05:01:42.488Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-10-26T05:01:42.370Z","components":{"code":{"score":20,"max":25,"notes":["26 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":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":15,"max":15,"notes":["last push 5 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":"dist/tools/config.js: …on.rawBrowser }; const fn = new Function(\"cloak\", `return (async () => { ${args.c…"}],"inputs":{"packages":[{"registryType":"npm","identifier":"@devinwangd/cloak-browser-mcp","version":"0.2.0","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":4,"publishedAt":"2026-10-21T02:55:53.168Z","repositoryUrl":"git+https://github.com/devinwang/cloak-browser-mcp.git","weeklyDownloads":62}],"repo":{"found":true,"owner":"devinwang","repo":"cloak-browser-mcp","archived":false,"pushedAt":"2026-10-21T02:54:02Z","stars":2,"forks":1,"openIssues":1,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/197692?v=4","ownerCreatedAt":"2010-02-05T13:26:09Z","license":"NOASSERTION"},"icon":{"url":"https://avatars.githubusercontent.com/u/197692?v=4&s=128","source":"github"},"presence":{"stars":2,"forks":1,"downloadsWeek":62,"license":"NOASSERTION","lastPushAt":"2026-10-21T02:54:02.000Z","score":29}}}},"grade_history":[],"reviews":[]}