Remote Browser MCP Server from MCPBundles
What this MCP does
Automates cloud browser sessions for navigation, interaction, form submission, file upload, JavaScript execution, screenshots, PDFs, performance testing, and recordings.
Tools
Input schema
{'type': 'object', 'required': ['tool_name'], 'properties': {'input': {'type': 'object', 'description': "JSON object passed to the tool's input schema.", 'additionalProperties': True}, 'frame_id': {'type': 'string', 'description': 'Optional frame id from the list response. Omit when the tool is on the main frame.'}, 'tool_name': {'type': 'string', 'description': 'Registered WebMCP tool name from browser_list_webmcp_tools.'}, 'timeout_ms': {'type': 'integer', 'default': 30000, 'maximum': 120000, 'minimum': 1000, 'description': 'Maximum milliseconds to wait for the tool response.'}}}
Input schema
{'type': 'object', 'required': ['ref', 'element'], 'properties': {'ref': {'type': 'string', 'description': 'Opaque ref from the latest page snapshot (e.g. e12). Capture a fresh snapshot on the current page first — do not invent refs or CSS selectors. For CSS-based batch fills use the multi-field form fill tool.'}, 'button': {'enum': ['left', 'right', 'middle'], 'type': 'string', 'default': 'left', 'description': 'Button to click. One of: left, right, middle. Defaults to left'}, 'element': {'type': 'string', 'description': "Human-readable label from the same snapshot node as ref (the node's name field)."}, 'modifiers': {'type': 'array', 'items': {'enum': ['Alt', 'Control', 'ControlOrMeta', 'Meta', 'Shift'], 'type': 'string'}, 'description': 'Modifier keys to press. Array of: Alt, Control, ControlOrMeta, Meta, Shift'}, 'doubleClick': {'type': 'boolean', 'default': False, 'description': 'Whether to perform a double click instead of a single click'}}}
Input schema
{'type': 'object', 'required': [], 'properties': {'close_all': {'type': 'boolean', 'default': False, 'description': 'If true, close the entire browser session and release all resources. If false, close only the current tab.'}, 'restart_chrome': {'type': 'boolean', 'default': False, 'description': 'When close_all is true on Local Browser, stop and restart the desktop Chrome CDP service so a fresh process launches with --disable-extensions (needed before MCP app marketing captures).'}}}
Input schema
{'type': 'object', 'required': [], 'properties': {'level': {'enum': ['error', 'warning', 'info', 'debug'], 'type': 'string', 'default': 'info', 'description': "Minimum level to return. Each level includes more severe levels. 'error' = errors only, 'warning' = errors+warnings, 'info' = errors+warnings+info (default), 'debug' = all."}}}
Input schema
{'type': 'object', 'required': ['startRef', 'startElement', 'endRef', 'endElement'], 'properties': {'endRef': {'type': 'string', 'description': 'Opaque ref from the latest page snapshot (e.g. e12). Capture a fresh snapshot on the current page first — do not invent refs or CSS selectors. For CSS-based batch fills use the multi-field form fill tool.'}, 'startRef': {'type': 'string', 'description': 'Opaque ref from the latest page snapshot (e.g. e12). Capture a fresh snapshot on the current page first — do not invent refs or CSS selectors. For CSS-based batch fills use the multi-field form fill tool.'}, 'endElement': {'type': 'string', 'description': "Human-readable label from the same snapshot node as ref (the node's name field)."}, 'startElement': {'type': 'string', 'description': "Human-readable label from the same snapshot node as ref (the node's name field)."}}}
Input schema
{'type': 'object', 'required': [], 'properties': {'network': {'enum': ['No throttling', 'Offline', 'Slow 3G', 'Fast 3G', 'Slow 4G', 'Fast 4G'], 'type': 'string', 'description': "Network condition to emulate. 'No throttling' = normal connection (default), 'Offline' = no network, 'Slow 3G' = 400kbps download/400ms latency, 'Fast 3G' = 1.6Mbps download/150ms latency, 'Slow 4G' = 3Mbps download/100ms latency, 'Fast 4G' = 10Mbps download/50ms latency. Default: 'No throttling'."}, 'cpu_throttling': {'type': 'number', 'default': 1, 'maximum': 20, 'minimum': 1, 'description': 'CPU slowdown multiplier. 1 = no throttling (default), 2 = 2x slower, 4 = 4x slower, 6 = 6x slower (mobile). Higher values simulate slower devices. Range: 1-20.'}}}
Input schema
{'type': 'object', 'required': ['function'], 'properties': {'ref': {'type': 'string', 'description': 'Snapshot ref (role[name="..."]) or CSS selector (#id, .class, input[name=email], etc.). Omit for page-level evaluation.'}, 'element': {'type': 'string', 'description': 'Human-readable label. Required for snapshot refs; optional for CSS selectors (defaults to ref).'}, 'function': {'type': 'string', 'description': '() => { /* code */ } or (element) => { /* code */ } when element is provided'}}}
Input schema
{'type': 'object', 'required': ['ref', 'files'], 'properties': {'ref': {'type': 'string', 'description': 'Snapshot ref or CSS selector for the file input or upload button.'}, 'files': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'content_base64'], 'properties': {'name': {'type': 'string', 'description': 'Filename with extension, for example report.pdf.'}, 'mimeType': {'type': 'string', 'description': 'Optional MIME type. Guessed from the filename when omitted.'}, 'content_base64': {'type': 'string', 'description': 'Base64-encoded file bytes.'}}}, 'description': 'Files to upload as base64 payloads.'}}}
Input schema
{'type': 'object', 'required': ['fields'], 'properties': {'fields': {'type': 'array', 'items': {'type': 'object', 'required': ['ref', 'value'], 'properties': {'ref': {'type': 'string', 'description': 'Opaque ref from the latest page snapshot (e.g. e12) or a CSS selector such as input[name=email].'}, 'name': {'type': 'string', 'description': 'Human-readable field name. Optional when ref is a CSS selector.'}, 'type': {'enum': ['textbox', 'text', 'email', 'password', 'checkbox', 'radio', 'combobox', 'slider'], 'type': 'string', 'description': 'Field control type. Optional when ref is a CSS selector — the tool infers the type from the DOM.'}, 'value': {'type': 'string', 'description': 'Value to fill in the field. Checkbox values use true/false. Combobox values use visible option text.'}}}, 'description': 'Fields to fill in. Each field requires ref and value; name and type are optional when ref is a CSS selector.'}}}
Input schema
{'type': 'object', 'required': ['message_id'], 'properties': {'message_id': {'type': 'string', 'description': 'Message ID from the console messages list. Required to fetch specific message details.'}}}
Input schema
{'type': 'object', 'required': [], 'properties': {'name': {'type': 'string', 'description': "Filter to a single cookie by name (e.g. 'sid'). Returns all cookies if omitted."}, 'domain': {'type': 'string', 'description': "Filter cookies by domain (e.g. 'medium.com'). If omitted, returns cookies for the current page URL."}}}
Input schema
{'type': 'object', 'required': ['request_id'], 'properties': {'request_id': {'type': 'string', 'description': 'Request id from browser_network_requests (req-N) or stable uuid field.'}, 'capture_profile': {'enum': ['harvest', 'debug', 'full'], 'type': 'string', 'description': 'Payload budget for request/response bodies. Use full for httpx harvest templates.'}}}
Input schema
{'type': 'object', 'required': ['asset_id'], 'properties': {'asset_id': {'type': 'string', 'description': 'Capture asset UUID from the stop-recording response — not a placeholder. Stop recording first, then poll with the returned asset_id.'}}}
Input schema
{'type': 'object', 'required': ['job_id'], 'properties': {'job_id': {'type': 'string', 'description': 'Export job UUID from browser_submit_screencast_export.'}}}
Input schema
{'type': 'object', 'required': [], 'properties': {'key': {'type': 'string', 'description': 'Specific key to retrieve. If omitted, returns all key-value pairs.'}, 'storage_type': {'enum': ['localStorage', 'sessionStorage'], 'type': 'string', 'description': 'Which storage to read. Defaults to localStorage.'}}}
Input schema
{'type': 'object', 'required': [], 'properties': {'selector': {'type': 'string', 'description': 'Optional CSS selector to limit text to a specific element. If not provided, returns text from the entire page.'}}}
Input schema
{'type': 'object', 'required': ['accept'], 'properties': {'accept': {'type': 'boolean', 'description': 'Whether to accept the dialog.'}, 'promptText': {'type': 'string', 'description': 'The text of the prompt in case of a prompt dialog.'}}}
Input schema
{'type': 'object', 'required': ['ref', 'element'], 'properties': {'ref': {'type': 'string', 'description': 'Opaque ref from the latest page snapshot (e.g. e12). Capture a fresh snapshot on the current page first — do not invent refs or CSS selectors. For CSS-based batch fills use the multi-field form fill tool.'}, 'element': {'type': 'string', 'description': "Human-readable label from the same snapshot node as ref (the node's name field)."}}}
Input schema
{'type': 'object', 'required': ['iframeRef', 'element', 'ref'], 'properties': {'ref': {'type': 'string', 'description': 'Exact target element reference from the page snapshot (inside the iframe)'}, 'element': {'type': 'string', 'description': 'Human-readable element description used to obtain permission to interact with the element'}, 'iframeRef': {'type': 'string', 'description': "Element reference for the iframe from the latest page snapshot (e.g. iframe[name='...') or role selector)"}}}
Input schema
{'type': 'object', 'required': ['iframeRef', 'ref', 'value'], 'properties': {'ref': {'type': 'string', 'description': 'Exact target field reference from the page snapshot (inside the iframe)'}, 'value': {'type': 'string', 'description': 'Value to fill in the field'}, 'iframeRef': {'type': 'string', 'description': 'Element reference for the iframe from the latest page snapshot'}}}
Input schema
{'type': 'object', 'properties': {'wait_ms': {'type': 'integer', 'default': 2000, 'maximum': 30000, 'minimum': 0, 'description': 'Milliseconds to wait after enabling WebMCP before collecting tools. Use 2000+ on SPAs that register tools after mount.'}, 'include_schema': {'type': 'boolean', 'default': True, 'description': "Include each tool's JSON Schema input definition when available."}}}
Input schema
{'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'description': "The URL to navigate to. Must include protocol (http:// or https://). Example: 'https://example.com'. Required for navigation."}, 'timeout': {'type': 'integer', 'description': 'Maximum time in milliseconds to wait for navigation. Default: 5000 (5 seconds). Increase for slow-loading pages. If timeout exceeded, raises error.'}, 'wait_until': {'enum': ['load', 'domcontentloaded', 'networkidle', 'commit'], 'type': 'string', 'default': 'load', 'description': "When to consider navigation succeeded. 'load' = wait for load event (default, most common), 'domcontentloaded' = wait for DOMContentLoaded event (faster, good for SPAs), 'networkidle' = wait until no network connections for 500ms (best for dynamic content), 'commit' = wait for network response (fastest). Default: 'load'."}}}
Input schema
{'type': 'object', 'required': [], 'properties': {}}
Input schema
{'type': 'object', 'required': [], 'properties': {'filter': {'type': 'string', 'description': 'Optional regexp matched against request URL (e.g. "/graphql.*sunrise").'}, 'method': {'type': 'string', 'description': 'Optional HTTP method filter (GET, POST, ...).'}, 'resource_type': {'type': 'string', 'description': 'Optional Playwright resource type filter (fetch, xhr, document, script, ...).'}, 'include_static': {'type': 'boolean', 'default': False, 'description': 'If true, include successful static resources (images, fonts, scripts, CSS). Default false to reduce noise.'}, 'capture_profile': {'enum': ['harvest', 'debug', 'full'], 'type': 'string', 'description': 'Payload budget for previews and detail fetches. Defaults to the session profile (debug).'}, 'since_navigation': {'type': 'boolean', 'default': True, 'description': 'If true, return only requests captured since the most recent navigation to a URL. Default true.'}}}
Input schema
{'type': 'object', 'required': ['action'], 'properties': {'action': {'enum': ['start', 'stop'], 'type': 'string', 'description': "Action to perform. 'start' = begin recording performance trace, 'stop' = stop recording and return trace data. Required."}, 'categories': {'type': 'array', 'items': {'type': 'string'}, 'default': ['devtools.timeline'], 'description': "Chrome tracing categories to record. Common: 'devtools.timeline' (page events), 'blink.user_timing' (performance marks), 'v8' (JavaScript). Default: ['devtools.timeline']."}}}
Input schema
{'type': 'object', 'required': ['key'], 'properties': {'key': {'type': 'string', 'description': "Key or key combination to press. Single keys: 'Enter', 'Escape', 'Tab', 'Space', 'ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Backspace', 'Delete', 'Home', 'End', 'PageUp', 'PageDown', 'F1'-'F12', 'a'-'z', '0'-'9'. Combinations: 'Control+A' (select all), 'Meta+C' (copy), 'Shift+Insert' (paste), 'Alt+F4' (close). Required."}, 'delay': {'type': 'integer', 'description': 'Delay in milliseconds between keydown and keyup events. Default: 0 (instant). Increase for more realistic key press simulation or when testing key hold behaviors.'}, 'timeout': {'type': 'integer', 'description': 'Maximum time in milliseconds to wait for element (if selector provided). Default: 30000 (30 seconds).'}, 'selector': {'type': 'string', 'description': 'CSS selector for element to focus before pressing key. If provided, focuses this element first then presses key. If not provided, presses key on currently focused element or page. Use when targeting specific inputs or regions.'}}}
Input schema
{'type': 'object', 'properties': {'fps': {'type': 'number', 'default': 15, 'description': 'Target frames per second (1–30).'}, 'width': {'type': 'integer', 'default': 1280, 'description': 'Max capture width in pixels (320–1920).'}, 'height': {'type': 'integer', 'default': 720, 'description': 'Max capture height in pixels (240–1080).'}, 'seconds': {'type': 'number', 'default': 10, 'description': 'How long to record (1–25 seconds).'}, 'project_id': {'type': 'string', 'description': 'Optional marketing project UUID to link this capture.'}}}
Input schema
{'type': 'object', 'required': [], 'properties': {'width': {'type': 'integer', 'description': 'Window width in pixels. Required if device not specified. Example: 1920 (full HD), 1280 (HD), 768 (tablet), 375 (mobile).'}, 'device': {'enum': ['iPhone 13', 'iPhone 14', 'iPhone 15', 'iPad Pro 11', 'Pixel 7', 'Galaxy S24', 'Desktop Chrome'], 'type': 'string', 'description': 'Device preset for viewport and user-agent. Use instead of width/height. Options: iPhone 13, iPhone 14, iPhone 15, iPad Pro 11, Pixel 7, Galaxy S24, Desktop Chrome.'}, 'height': {'type': 'integer', 'description': 'Window height in pixels. Required if device not specified. Example: 1080 (full HD), 720 (HD), 1024 (tablet), 667 (mobile).'}, 'orientation': {'enum': ['portrait', 'landscape'], 'type': 'string', 'description': 'Device orientation when using device preset. Default: portrait.'}, 'deviceScaleFactor': {'type': 'number', 'maximum': 3, 'minimum': 1, 'description': "Device pixel ratio (DPR) for retina/HiDPI rendering. 1 = standard, 2 = retina, 3 = high-density mobile. Affects screenshot pixel dimensions: a 353-wide viewport at DPR=2 produces a 706-pixel-wide screenshot. Useful for app-store screenshot exports. When 'device' is set, defaults to that device's native DPR (iPhone=3, iPad=2, Pixel 7=2.625, Galaxy S24=3, Desktop Chrome=1). Range: 1-3."}}}
Input schema
{'type': 'object', 'required': ['code'], 'properties': {'code': {'type': 'string', 'description': "Python async code that receives 'page' (Playwright Page). Use 'page' for any Playwright operations. Example: await page.get_by_role('button', name='Submit').click()\\nreturn await page.title()"}}}
Input schema
{'type': 'object', 'required': [], 'properties': {'path': {'type': 'string', 'description': 'File path to save the PDF. Use absolute path. If not provided, returns base64-encoded PDF.'}, 'margin': {'type': 'object', 'properties': {'top': {'type': 'string', 'description': "Top margin (e.g. '1cm')"}, 'left': {'type': 'string', 'description': 'Left margin'}, 'right': {'type': 'string', 'description': 'Right margin'}, 'bottom': {'type': 'string', 'description': 'Bottom margin'}}, 'description': 'Page margins for the PDF'}}}
Input schema
{'type': 'object', 'required': [], 'properties': {'to': {'enum': ['top', 'bottom'], 'type': 'string', 'description': 'Scroll to the very top or bottom of the page. If provided, direction and amount are ignored.'}, 'amount': {'type': 'integer', 'description': 'Pixels to scroll. Defaults to one viewport height for vertical, viewport width for horizontal.'}, 'element': {'type': 'string', 'description': 'Element ref from snapshot to scroll into view. If provided, direction and amount are ignored.'}, 'direction': {'enum': ['up', 'down', 'left', 'right'], 'type': 'string', 'description': "Direction to scroll. Defaults to 'down'."}}}
Input schema
{'type': 'object', 'required': ['ref', 'values'], 'properties': {'ref': {'type': 'string', 'description': 'Snapshot ref (role[name="..."]) or CSS selector (#id, .class, input[name=email], etc.).'}, 'values': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Array of values to select in the dropdown. This can be a single value or multiple values.'}, 'element': {'type': 'string', 'description': 'Human-readable label. Required for snapshot refs; optional for CSS selectors (defaults to ref).'}}}
Input schema
{'type': 'object', 'required': [], 'properties': {'delete': {'type': 'array', 'items': {'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'description': 'Cookie name to delete'}, 'path': {'type': 'string', 'description': 'Cookie path'}, 'domain': {'type': 'string', 'description': 'Cookie domain'}}}, 'description': 'Array of cookies to delete by name/domain/path.'}, 'cookies': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'value'], 'properties': {'name': {'type': 'string', 'description': 'Cookie name'}, 'path': {'type': 'string', 'description': "Cookie path. Defaults to '/'"}, 'value': {'type': 'string', 'description': 'Cookie value'}, 'domain': {'type': 'string', 'description': "Cookie domain (e.g. '.medium.com')"}, 'secure': {'type': 'boolean', 'description': 'Whether the cookie requires HTTPS'}, 'expires': {'type': 'number', 'description': 'Unix timestamp for expiration. -1 for session cookie.'}, 'httpOnly': {'type': 'boolean', 'description': 'Whether the cookie is HttpOnly'}, 'sameSite': {'enum': ['Strict', 'Lax', 'None'], 'type': 'string', 'description': 'SameSite attribute'}}}, 'description': 'Array of cookies to set. Each must have name and value; domain defaults to current page domain.'}}}
Input schema
{'type': 'object', 'properties': {'width': {'type': 'integer', 'default': 1280, 'description': 'Capture width in pixels (320–1920).'}, 'height': {'type': 'integer', 'default': 720, 'description': 'Capture height in pixels (240–1080).'}, 'caption': {'type': 'string', 'description': "Short lower-third caption shown over this beat (e.g. 'Browse the catalog')."}}}
Input schema
{'type': 'object', 'required': [], 'properties': {'boxes': {'type': 'boolean', 'default': False, 'description': 'When true, attach viewport-relative bounding boxes (x, y, width, height in CSS pixels) to snapshot nodes.'}, 'depth': {'type': 'integer', 'minimum': 1, 'description': 'Limit accessibility tree depth. Omit to return the full tree.'}, 'interactive_only': {'type': 'boolean', 'default': False, 'description': 'When true, trim the tree to interactive nodes (buttons, links, fields, etc.) and return a flat interactive index.'}}}
Input schema
{'type': 'object', 'properties': {'fps': {'type': 'number', 'default': 15, 'description': 'Target frames per second (1–30).'}, 'width': {'type': 'integer', 'default': 1280, 'description': 'Max capture width in pixels (320–1920).'}, 'height': {'type': 'integer', 'default': 720, 'description': 'Max capture height in pixels (240–1080).'}}}
Input schema
{'type': 'object', 'properties': {'project_id': {'type': 'string', 'description': 'Optional marketing project UUID to link this capture.'}}}
Input schema
{'type': 'object', 'required': ['asset_id'], 'properties': {'preset': {'enum': ['hero_from_capture', 'product_hunt_kit'], 'type': 'string', 'default': 'hero_from_capture', 'description': 'Export preset.'}, 'asset_id': {'type': 'string', 'description': 'Ready capture UUID from browser_stop_recording after browser_get_recording_status reports status ready.'}, 'project_name': {'type': 'string', 'default': 'Screencast export', 'description': 'Name for the auto-created export project.'}}}
Input schema
{'type': 'object', 'required': ['action'], 'properties': {'index': {'type': 'integer', 'description': 'Tab index, used for close/select. If omitted for close, current tab is closed.'}, 'action': {'enum': ['list', 'new', 'close', 'select'], 'type': 'string', 'description': 'Operation to perform. One of: list, new, close, select'}}}
Input schema
{'type': 'object', 'required': [], 'properties': {'ref': {'type': 'string', 'description': 'Snapshot ref (role[name="..."]) or CSS selector (#id, .class, input[name=email], etc.). Omit for viewport screenshot.'}, 'type': {'enum': ['png', 'jpeg'], 'type': 'string', 'default': 'png', 'description': 'Image format for the screenshot. One of: png, jpeg. Default is png.'}, 'element': {'type': 'string', 'description': 'Human-readable label. Required for snapshot refs; optional for CSS selectors (defaults to ref).'}, 'filename': {'type': 'string', 'description': 'File name to save the screenshot to. Defaults to page-{timestamp}.{png|jpeg} if not specified.'}, 'fullPage': {'type': 'boolean', 'default': False, 'description': 'When true, takes a screenshot of the full scrollable page, instead of the currently visible viewport. Cannot be used with element screenshots.'}, 'includeBrowserChrome': {'type': 'boolean', 'default': False, 'description': 'When true, captures the browser window surface including Chrome UI overlays (password popups, notification bars, etc.) instead of just page content. Only works in headful mode. Default is false.'}}}
Input schema
{'type': 'object', 'required': ['ref', 'element', 'text'], 'properties': {'ref': {'type': 'string', 'description': 'Opaque ref from the latest page snapshot (e.g. e12). Capture a fresh snapshot on the current page first — do not invent refs or CSS selectors. For CSS-based batch fills use the multi-field form fill tool.'}, 'text': {'type': 'string', 'description': 'Text to type into the element'}, 'slowly': {'type': 'boolean', 'default': False, 'description': 'Whether to type one character at a time. Useful for triggering key handlers in the page. By default entire text is filled in at once.'}, 'submit': {'type': 'boolean', 'default': False, 'description': 'Whether to submit entered text (press Enter after)'}, 'element': {'type': 'string', 'description': "Human-readable label from the same snapshot node as ref (the node's name field)."}}}
Input schema
{'type': 'object', 'required': [], 'properties': {'text': {'type': 'string', 'description': 'Wait until this text is visible on the page.'}, 'time': {'type': 'number', 'description': 'Fixed delay in seconds (mutually exclusive with other modes).'}, 'timeout': {'type': 'number', 'description': 'Alias for time, in seconds.'}, 'js_probe': {'type': 'string', 'description': 'JavaScript expression returning {streaming: boolean, measure: number}. Waits until streaming is false and measure grew since the first poll (and is >= min_measure). Use for chat streams, progress bars, etc.'}, 'js_ready': {'type': 'string', 'description': 'JavaScript expression (e.g. () => boolean) polled until it returns a truthy value. Use for app-specific ready checks.'}, 'selector': {'type': 'string', 'description': 'CSS selector to wait until visible.'}, 'textGone': {'type': 'string', 'description': 'Wait until this text is no longer visible.'}, 'max_seconds': {'type': 'number', 'default': 30, 'description': 'Timeout in seconds for non-time waits (default 30, max 90). If a condition is not met, capture a fresh page snapshot and reassess — do not raise this above 60 without explicit user request.'}, 'min_measure': {'type': 'integer', 'default': 0, 'description': 'Minimum measure for js_probe completion (default 0).'}, 'stable_polls': {'type': 'integer', 'default': 1, 'description': 'Consecutive successful polls required (js_ready / js_probe).'}, 'tail_seconds': {'type': 'number', 'default': 0, 'description': 'Extra seconds to wait after the condition is met.'}, 'selector_gone': {'type': 'string', 'description': 'CSS selector to wait until hidden (e.g. loading spinner).'}, 'selectors_gone': {'type': 'array', 'items': {'type': 'string'}, 'description': 'CSS selectors that must all be hidden before continuing.'}}}
Input schema
{'type': 'object', 'required': ['asset_id'], 'properties': {'asset_id': {'type': 'string', 'description': 'Capture asset UUID from browser_stop_recording or browser_record_clip.'}, 'timeout_seconds': {'type': 'number', 'default': 600.0, 'description': 'Maximum seconds to wait (10-7200).'}, 'poll_interval_seconds': {'type': 'number', 'default': 4.0, 'description': 'Seconds between status polls (1-60).'}}}
Input schema
{'type': 'object', 'required': ['job_id'], 'properties': {'job_id': {'type': 'string', 'description': 'Export job UUID from browser_submit_screencast_export.'}, 'timeout_seconds': {'type': 'number', 'default': 1800.0, 'description': 'Maximum seconds to wait (10-7200).'}, 'poll_interval_seconds': {'type': 'number', 'default': 5.0, 'description': 'Seconds between status polls (1-60).'}}}
Recent tool changes
Similar MCP servers
TinyFn
Offers deterministic utility functions for mathematics, conversions, validation, hashing, encoding, arrays, dates, colors, and pa…
hyperion
Acts as a paid MCP tool marketplace and utility gateway with server discovery, HTTP and JavaScript tools, research, data conversi…
Andreax
Offers pay-per-call AI services for inference, agent and workflow design, OCR and transcription, code generation and review, clas…
Vee3
Manages Clerk authentication infrastructure, including users, organizations, domains, sessions, tokens, OAuth, SSO, machines, per…
Courier
Provides notification delivery infrastructure for users, tenants, lists, templates, preferences, journeys, automations, brands, a…
GripForge
Generates, rigs, animates, analyzes, and packages game characters, weapons, armor, effects, environments, and engine-ready assets.
IA-QA — 130+ QA & Dev Tools for AI Agents
Provides deterministic QA, evaluation, testing, code analysis, prompt and RAG checks, model comparison, and web security diagnost…
apis-io
Provides catalog search, comparison, scoring, enrichment, lists, and dataset exports for APIs, providers, specifications, workflo…