Skip to main content
Glama
CapMonsterCloud

capmonster-mcp-patchright

Official

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
STEALTH_PLAYWRIGHT_USER_DATA_DIRNoOverride the default persistent profile directory path. Defaults to ~/.maestro/stealth-playwright-mcp/profiles/default~/.maestro/stealth-playwright-mcp/profiles/default

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
browser_startB

Start a browser session. Defaults to patchright chromium headed Chrome with a persistent profile.

browser_statusB

Return current browser status.

browser_navigateC

Navigate the active page to a URL.

browser_new_pageA

Open a new page/tab and make it active. Optionally navigate to a URL.

browser_pagesA

List open pages/tabs with ids, active state, URL, and title.

browser_switch_pageA

Switch the active page/tab by pageId from browser_pages.

browser_close_pageA

Close a page/tab by pageId, or the active page if omitted.

browser_snapshotA

Return a distilled AI-oriented aria snapshot (verbose /url lines dropped and data: URLs collapsed to save tokens). Use [ref=eN] values with browser_click/fill/type/hover/press/wait_for.

browser_findA

Search the current page's aria snapshot for text or a regex. Returns matching nodes with their [ref] and a few lines of surrounding context — cheaper than a full browser_snapshot when you only need to locate an element.

browser_take_screenshotB

Take a screenshot. Returns base64 if path is omitted.

browser_clickC

Click an element by CSS selector or aria ref from browser_snapshot.

browser_fillC

Fill an input by CSS selector or aria ref from browser_snapshot.

browser_typeA

Type text into an element (CSS selector or aria ref) with human-like input: real per-key events, real Shift keyDown/up for capitals & symbols, variable dwell and inter-key gaps. Verifies the result against the request for input/textarea and errors on mismatch.

browser_hoverA

Hover an element by CSS selector or aria ref from browser_snapshot.

browser_press_keyC

Press a keyboard key, optionally focused on a selector or aria ref first.

browser_wait_forB

Wait for time or for selector/ref state. If no selector/ref, waits timeout milliseconds.

browser_evaluateA

Evaluate JavaScript in the active page. Pass 'function' for a function body, 'expression' for a plain expression, or 'script' (deprecated). By default JS runs in an isolated stealth world (DOM is shared, but the page's own window globals are NOT visible). Set world:'main' to run in the page's real world — required to read or call globals the page defined (e.g. a page-registered callback). Pass frameSelector to run inside a specific iframe (including cross-origin ones, e.g. a captcha widget hosted on a different domain) instead of the top-level page — same CSS selector browser_click/browser_fill/browser_type already accept.

browser_fingerprint_checkB

Collect browser fingerprint diagnostics from the active page.

browser_navigate_backB

Navigate back in browser history.

browser_select_optionA

Select options from a element by CSS selector or aria ref.

browser_handle_dialogB

Accept or dismiss a JavaScript dialog (alert / confirm / prompt).

browser_file_uploadA

Upload files to a by CSS selector or aria ref.

browser_network_requestsA

List captured network requests. Set activeOnly=true for in-flight only.

browser_network_requestA

Get details for a single network request by stable id from browser_network_requests. Legacy zero-based index is also accepted.

browser_console_messagesB

List captured console messages (log / warn / error etc.).

browser_resizeA

Resize the active page viewport.

browser_dragB

Drag an element from source to target by CSS selector or aria ref.

browser_fill_formB

Fill multiple form fields at once. Each field needs selector or ref, and value.

browser_run_code_unsafeB

Execute arbitrary JavaScript in page context. Prefer browser_evaluate when possible. Runs in the isolated stealth world by default; set world:'main' to run in the page's real world (page-defined window globals visible/callable).

browser_add_init_scriptA

Register JavaScript that runs before any page script, on every navigation (Playwright's page.addInitScript — always in the page's main world). Unlike browser_evaluate, this is proactive: it wins the race against a site's own inline (e.g. Cloudflare/Turnstile checks that run synchronously on document parse), which a reactive evaluate call issued over the MCP connection cannot. Call this BEFORE browser_navigate to the target URL — it has no effect on a page already loaded, only on the page it's called on and future navigations of that same page. Scoped to the current page only.

browser_network_state_setA

Set network state: pass offline=true to simulate offline, offline=false to restore connectivity.

browser_api_requestA

Make an HTTP request reusing the browser session's cookies/storage (authenticated API calls without re-login). Returns status, headers, and body.

browser_get_visible_textA

Get the visible text (document.body.innerText) of the active page. Lighter than a full aria snapshot.

browser_get_visible_htmlB

Get page HTML, optionally scoped to a selector. Strips script/style/svg by default for token efficiency.

browser_iframe_clickA

Shorthand for clicking inside an iframe. (Most tools now accept a frameSelector directly — prefer browser_click with frameSelector.)

browser_iframe_fillA

Shorthand for filling inside an iframe. (Most tools now accept a frameSelector directly — prefer browser_fill with frameSelector.)

browser_route_blockA

Block requests by resource type and/or URL pattern (e.g. block images/fonts/media to speed up loads and shrink fingerprint surface). Applies to all pages in the context.

browser_route_mockA

Mock matching requests with a canned response (fulfill). Useful for stubbing APIs or bypassing endpoints.

browser_route_clearA

Remove all active block/mock routes.

browser_storage_saveA

Export current session (cookies + localStorage) as a Playwright storageState. Saves to path, or returns the state JSON if path omitted.

browser_storage_loadA

Restore a session from a storageState (cookies + localStorage). Provide a file path or an inline state object. Note: localStorage restore navigates to each origin.

browser_cookie_listA

List cookies in the current session, optionally filtered by domain and/or path.

browser_cookie_getA

Get a single cookie by name. Returns null if not present.

browser_cookie_setA

Set a cookie with optional flags. Provide url, or domain (path defaults to /). If neither given, the active page's origin is used.

browser_cookie_deleteC

Delete cookies by name, optionally narrowed by domain/path.

browser_cookie_clearA

Clear all cookies in the current session.

browser_localstorage_listA

List all localStorage key-value pairs for the active page's origin.

browser_localstorage_getB

Get a localStorage item by key. Returns null if absent.

browser_localstorage_setB

Set a localStorage item on the active page's origin.

browser_localstorage_deleteB

Delete a localStorage item by key.

browser_localstorage_clearA

Clear all localStorage for the active page's origin.

browser_sessionstorage_listA

List all sessionStorage key-value pairs for the active page's origin.

browser_sessionstorage_getB

Get a sessionStorage item by key. Returns null if absent.

browser_sessionstorage_setC

Set a sessionStorage item on the active page's origin.

browser_sessionstorage_deleteB

Delete a sessionStorage item by key.

browser_sessionstorage_clearA

Clear all sessionStorage for the active page's origin.

browser_passkey_installA

Install Patchright's virtual WebAuthn authenticator in the current browser context. Call before a page first uses navigator.credentials.

browser_passkey_createA

Generate or import a virtual passkey. To import, provide all four key-material fields. Private keys are omitted unless includePrivateKey=true.

browser_passkey_listA

List virtual passkeys, optionally filtered by rpId or credential id. Private keys are omitted unless includePrivateKey=true.

browser_passkey_deleteA

Delete one virtual passkey by its base64url credential id.

browser_video_saveA

Direct the active page's session recording to a specific output path (requires the session to have been started with recordVideo). The .webm finalizes when the page or browser closes. Without a path, returns the pending video location.

browser_highlightA

Draw a persistent highlight overlay around an element (by CSS selector or aria ref). Useful for screenshots and video recording to show what the agent is focusing on. Does not affect page behavior.

browser_hide_highlightA

Remove highlight overlays. Pass label/selector/ref to remove a specific one, or omit all to clear every highlight.

browser_save_blobA

Evaluate JavaScript in the page and write the result straight to a file on disk — the value itself never passes through this tool's response. Use this instead of browser_evaluate whenever you need to get a large/opaque blob (base64 image(s), a full page's HTML, a big JSON dump) out of the live page and into a request body: reading it via browser_evaluate and then re-typing/pasting it into another tool call's arguments (e.g. create_task's imagesBase64/htmlPageBase64) risks silently corrupting it — a dropped character or an unclosed quote partway through a multi-KB string merges what should be several array elements into one, with no clear error. Pass 'function' or 'expression' (same as browser_evaluate); pass encoding:'base64' when the value is a base64 string (a data:...;base64, prefix is stripped automatically) to write raw decoded bytes, or omit it to write the value as UTF-8 text (non-strings are JSON-stringified).

browser_save_pdfB

Render the active page to PDF via CDP (works in headed/stealth mode). Saves to path, or returns base64 if path omitted.

browser_closeB

Close the browser session.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.2/5.0

Scored across 66 tools

Disambiguation3/5

Most tools fall into clear categories (navigation, input, storage, network), but several pairs overlap: browser_run_code_unsafe duplicates browser_evaluate, and browser_iframe_click/browser_iframe_fill are legacy shorthands for browser_click/browser_fill with frameSelector. The detailed descriptions mitigate confusion, so boundary issues are limited to a handful of cases.

Naming Consistency4/5

All tools share a consistent browser_ prefix and most follow a verb-object or area-action pattern (cookie_get, storage_save, navigate, click). However, some query tools are noun-named instead of verb-named (browser_status, browser_pages, browser_network_requests) and browser_new_page breaks the verb pattern, so it is not fully uniform.

Tool Count2/5

66 tools is far beyond the 3-15 sweet spot and well past the 25+ threshold for too many, making the server heavy for an agent to navigate. The tools are at least organized into coherent families, but the sheer number and 15 near-identical CRUD micro-tools for cookies/localStorage/sessionStorage inflate the surface.

Completeness3/5

The browser automation surface is extensive, covering navigation, input, network interception, storage, and passkeys, with only minor browser gaps like reload/forward/scroll. However, the server is branded capmonster and browser_save_blob explicitly references create_task, yet no CapMonster task-creation or result-retrieval tools exist, leaving a notable dead end for the intended captcha workflow.

Maintenance

ActivityMaintained
ResponsivenessNo issues