MCP 服务器

Remote Browser MCP Server from MCPBundles

com.mcpbundles/remote-browser
开发者工具 公开且可连接 MCP 2026-07-28

此 MCP 可以做什么

Automates cloud browser sessions for navigation, interaction, form submission, file upload, JavaScript execution, screenshots, PDFs, performance testing, and recordings.

browser-call-webmcp-tool-743
Call a WebMCP tool on the current page by name. Navigate first, list tools, then invoke with JSON input matching the tool 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.'}}}
browser-click-743
Click a web page element. Capture a page snapshot first, then copy opaque ref (e.g. e12) and element from the target node → click. Unknown or invented refs are rejected.
输入模式
{'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'}}}
browser-close-743
Close the current page or the entire browser session. Use to release resources when done with browser automation.
可能执行破坏性操作
输入模式
{'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).'}}}
browser-console-messages-743
Returns console messages. Note: Only messages logged AFTER browser session started are available.
只读
输入模式
{'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."}}}
browser-drag-743
Perform drag and drop between two elements
输入模式
{'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)."}}}
browser-emulate-743
Emulate network conditions and CPU throttling to test performance on slow connections or devices
输入模式
{'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.'}}}
browser-evaluate-743
Evaluate JavaScript expression on page or element
输入模式
{'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'}}}
browser-file-upload-743
Upload files to a file input or upload button using base64-encoded file payloads.
输入模式
{'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.'}}}
browser-fill-form-743
Fill multiple form fields. Each field ref can be an opaque handle from the latest page snapshot (e.g. e12) or a CSS selector.
输入模式
{'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.'}}}
browser-get-console-message-743
Get detailed information about a captured console message including structured arguments, stack trace, and source location.
只读 幂等
输入模式
{'type': 'object', 'required': ['message_id'], 'properties': {'message_id': {'type': 'string', 'description': 'Message ID from the console messages list. Required to fetch specific message details.'}}}
browser-get-cookies-743
Get browser cookies including HttpOnly cookies. Returns name, value, domain, path, expires, httpOnly, secure, and sameSite for each cookie. Useful for extracting auth tokens (session IDs, API keys) from authenticated browser sessions.
只读
输入模式
{'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."}}}
browser-get-network-request-743
Get detailed information about a captured network request: status, request/response headers, POST body (when captured), timing, and a truncated text response body when available.
只读 幂等
输入模式
{'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.'}}}
browser-get-recording-status-743
Poll a browser capture asset until S3 flush completes. When status is ready, call browser_submit_screencast_export, then poll browser_get_screencast_export_status for presigned MP4 URLs when the user asked for a video file.
只读 幂等
输入模式
{'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.'}}}
browser-get-screencast-export-status-743
Poll a screencast export job. When status is completed, outputs include presigned MP4 download URLs — give those links to the user.
只读 幂等
输入模式
{'type': 'object', 'required': ['job_id'], 'properties': {'job_id': {'type': 'string', 'description': 'Export job UUID from browser_submit_screencast_export.'}}}
browser-get-storage-743
Read localStorage or sessionStorage from the current page. Returns all key-value pairs or a specific key. Useful for extracting auth tokens, user preferences, cached API data, and app state.
只读
输入模式
{'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.'}}}
browser-get-visible-text-743
Get the visible text content of the current page. Lighter than a full accessibility snapshot when you only need text. Hidden elements (display:none, visibility:hidden) are excluded.
只读
输入模式
{'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.'}}}
browser-handle-dialog-743
Handle a dialog
输入模式
{'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.'}}}
browser-hover-743
Hover over a web page element. Capture a page snapshot first, then copy opaque ref (e.g. e12) and element from the target node → hover.
输入模式
{'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)."}}}
browser-iframe-click-743
Click an element inside an iframe. Capture a page snapshot to get iframeRef and element ref.
输入模式
{'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)"}}}
browser-iframe-fill-743
Fill an input field inside an iframe. Capture a page snapshot to get iframeRef and field ref.
输入模式
{'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'}}}
browser-list-webmcp-tools-743
List WebMCP tools exposed by the current page via document.modelContext (after navigate). Returns tool names, descriptions, and optional input schemas.
只读 幂等
输入模式
{'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."}}}
browser-navigate-743
Navigate to a URL in the browser. Returns final URL (after redirects), page title, and HTTP status. For cloud-hosted sessions and SPAs, prefer wait_until=domcontentloaded (default on Remote Browser) and timeout=30000 for slow pages.
输入模式
{'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'."}}}
browser-navigate-back-743
Go back to the previous page
输入模式
{'type': 'object', 'required': [], 'properties': {}}
browser-network-requests-743
List captured network requests for the current page with stable UUIDs, optional URL/method/resource filters, and POST body previews. Use browser_get_network_request for full bodies.
只读
输入模式
{'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.'}}}
browser-performance-trace-743
Start or stop performance tracing to analyze page performance, Core Web Vitals (LCP, FID, CLS), and identify bottlenecks
只读
输入模式
{'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']."}}}
browser-press-key-743
Press a key or key combination on the keyboard. Supports special keys (Enter, Escape, Tab) and modifiers (Control, Shift, Alt, Meta). Optionally focus an element first. Useful for keyboard shortcuts and navigation.
输入模式
{'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.'}}}
browser-record-clip-743
Record a short screencast on the current browser tab via CDP (Local or Remote Browser; start → wait → stop in one call). Returns asset_id; poll recording status until ready, then export with preset=hero_from_capture. For streaming UI screencasts, start recording, navigate, wait for a JS probe or hidden selector while recording, then stop recording — not wait-then-record_clip on an already-finished reply.
输入模式
{'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.'}}}
browser-resize-743
Resize the browser window
输入模式
{'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."}}}
browser-run-code-743
Run a Playwright Python code snippet. The code receives 'page' (Playwright Page object) and can perform any page interaction. Use 'return' to return a value. 30 second timeout. Navigate or capture a page snapshot first — no active page causes a session error.
输入模式
{'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()"}}}
browser-save-as-pdf-743
Save the current page as a PDF file. Returns base64-encoded PDF if path not provided.
输入模式
{'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'}}}
browser-scroll-743
Scroll the page by direction/amount, scroll to top/bottom, or scroll a specific element into view. Essential for lazy-loading pages and content below the fold.
只读
输入模式
{'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'."}}}
browser-select-option-743
Select an option in a dropdown
输入模式
{'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).'}}}
browser-set-cookies-743
Set or delete browser cookies including HttpOnly cookies. Use 'cookies' to add/update cookies (name+value required, domain defaults to current page). Use 'delete' to remove cookies by name. Useful for session replay, auth injection, and testing.
输入模式
{'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.'}}}
browser-snap-beat-743
Capture one crisp keyframe of the current page as a film beat, with an optional caption. Call once per scene (navigate/scroll, then snap). Finish by stopping recording, then export preset=cinematic for a polished product tour.
输入模式
{'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')."}}}
browser-snapshot-743
Capture accessibility snapshot of the current page. Nodes include opaque refs (e1, e2, …). Set interactive_only=true for a compact flat index of clickable elements. Copy ref and name into click/type/hover/drag/fill_form.
只读
输入模式
{'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.'}}}
browser-start-recording-743
Start screen recording on the active browser tab via CDP screencast (Local Browser or Remote Browser). Navigate and interact, then stop recording to upload frames to S3.
输入模式
{'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).'}}}
browser-stop-recording-743
Stop the active browser screencast and enqueue upload of JPEG frames to S3. Returns asset_id immediately; poll recording status until ready.
输入模式
{'type': 'object', 'properties': {'project_id': {'type': 'string', 'description': 'Optional marketing project UUID to link this capture.'}}}
browser-submit-screencast-export-743
Turn a ready browser screencast capture into an async MP4 export. Returns job_id immediately; poll browser_get_screencast_export_status until completed for presigned download URLs.
输入模式
{'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.'}}}
browser-tabs-743
List, create, close, or select a browser tab.
输入模式
{'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'}}}
browser-take-screenshot-743
Take a screenshot of the current page. You can't perform actions based on the screenshot; capture an accessibility snapshot for element interactions.
只读
输入模式
{'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.'}}}
browser-type-743
Type text into an editable element. Capture a page snapshot first, then copy opaque ref (e.g. e12) and element from the target field → type.
输入模式
{'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)."}}}
browser-wait-for-743
Wait for a page condition: visible/hidden text, CSS selector(s), a polled JavaScript ready check, a streaming probe ({streaming, measure}), or a fixed delay. Pick one mode per call.
只读
输入模式
{'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.'}}}
browser-wait-for-recording-743
Poll browser_get_recording_status until status is ready or failed. Use after browser_stop_recording or browser_record_clip returns asset_id.
只读 幂等
输入模式
{'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).'}}}
browser-wait-for-screencast-export-743
Poll browser_get_screencast_export_status until status is completed, failed, or cancelled. When completed, outputs include presigned MP4 download URLs.
只读 幂等
输入模式
{'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).'}}}
已添加
browser-list-webmcp-tools-743
2026年9月17日 12:36
已添加
browser-call-webmcp-tool-743
2026年9月17日 12:36
已添加
browser-type-743
2026年9月17日 12:36
已添加
browser-run-code-743
2026年9月17日 12:36
已添加
browser-click-743
2026年9月17日 12:36
已添加
browser-fill-form-743
2026年9月17日 12:36
已添加
browser-get-console-message-743
2026年9月17日 12:36
已添加
browser-start-recording-743
2026年9月17日 12:36
已添加
browser-drag-743
2026年9月17日 12:36
已添加
browser-record-clip-743
2026年9月17日 12:36
已添加
browser-stop-recording-743
2026年9月17日 12:36
已添加
browser-hover-743
2026年9月17日 12:36
已添加
browser-take-screenshot-743
2026年9月17日 12:36
已添加
browser-iframe-fill-743
2026年9月17日 12:36
已添加
browser-iframe-click-743
2026年9月17日 12:36
已添加
browser-get-network-request-743
2026年9月17日 12:36
已添加
browser-snap-beat-743
2026年9月17日 12:36
已添加
browser-network-requests-743
2026年9月17日 12:36
已添加
browser-scroll-743
2026年9月17日 12:36
已添加
browser-get-cookies-743
2026年9月17日 12:36
已添加
browser-resize-743
2026年9月17日 12:36
已添加
browser-get-storage-743
2026年9月17日 12:36
已添加
browser-tabs-743
2026年9月17日 12:36
已添加
browser-navigate-back-743
2026年9月17日 12:36
已添加
browser-wait-for-743
2026年9月17日 12:36
已添加
browser-close-743
2026年9月17日 12:36
已添加
browser-emulate-743
2026年9月17日 12:36
已添加
browser-performance-trace-743
2026年9月17日 12:36
已添加
browser-console-messages-743
2026年9月17日 12:36
已添加
browser-handle-dialog-743
2026年9月17日 12:36