Skip to main content
These are Verify beta features, available to the closed beta cohort only. They may change or move out of the core MCP without notice.
The live browser tools give your agent full control over a cloud-hosted Chromium browser — navigating pages, interacting with elements, inspecting the network, running scripts, and emulating devices. Every tool operates on a named connection and, within that connection, a specific view (tab). Start with live-connect to open a connection, use the snapshot and interaction tools to do your work, and call live-disconnect when you’re done.
UIDs used in all live-act-* interaction tools come from the component tree returned by live-view-snapshot. Always call live-view-snapshot first to get fresh UIDs before interacting with elements.

Connection & Views

These tools establish the browser session and manage open views (tabs) within it. live-connect — Opens a new hosted browser connection and loads the given URL in the initial view. Returns the connection ID and an initial sightmap upload URL. Call this before any other live-* tool. live-disconnect — Closes the connection, terminates the hosted browser process, and releases all associated cloud resources. Call this when your task is complete to avoid resource leaks. live-view-list — Returns all currently open views (tabs) in the active connection, including their IDs and current URLs. live-view-select — Switches the active view to the one matching the given view ID. Subsequent interaction tools operate on the newly selected view. live-view-new — Opens a new tab in the current connection and navigates it to a URL. Returns the new view’s ID. live-view-close — Closes the view identified by the given ID. Use live-view-list to enumerate IDs beforehand. live-view-navigate — Navigates the current view to a new URL without opening a new tab. live-view-resize — Resizes the current view’s viewport to the specified width and height in pixels.

Snapshots & Inspection

These tools let you observe the state of a page — its element tree, visual appearance, CSS properties, and load readiness — before or after interactions. live-view-snapshot — Returns the full component tree for the current view. Each node carries a unique UID, semantic component name (if a Sightmap is present), and element metadata. Use the UIDs as arguments to live-act-* tools. live-view-screenshot — Captures a PNG screenshot of the current view. Pass an element UID to clip the screenshot to that element’s bounding box. live-view-inspect — Returns detailed CSS selectors, HTML attributes, and class names for every component in the view. Useful for building selectors or verifying styles. live-act-wait-for — Blocks until a condition is met: a URL pattern match, a selector becoming visible, or the page reaching a given load state (e.g. networkidle). Use this after navigation or interactions that trigger async work.

Interaction

These tools drive the browser — clicking, typing, dragging, uploading files, and handling dialogs. All element-targeted tools accept a UID from live-view-snapshot. live-act-click — Clicks the element identified by a UID. Supports left, right, and double-click variants. live-act-hover — Moves the pointer over the element identified by a UID, triggering hover states and tooltips without clicking. live-act-fill — Types a value into a text input identified by UID. Pass an array of {uid, value} objects to fill multiple inputs in a single call. live-act-drag — Drags the element identified by a UID by a pixel offset in the x and y directions. Useful for sliders, drag-and-drop interfaces, and canvas interactions. live-act-upload — Provides a file to a <input type="file"> element identified by UID. The file content is supplied as base64. live-act-keypress — Sends a keyboard event for a named key (e.g. Enter, Tab, Escape). Optionally scoped to an element by UID; otherwise dispatched to the focused element. live-act-dialog — Accepts or dismisses the currently pending browser dialog (alert, confirm, prompt). Call this immediately after triggering the action that opens the dialog.

Network & Console

These tools surface the HTTP traffic and JavaScript console output your browser session generates, giving you observability into what the page is doing behind the scenes. live-net-list — Returns a summary list of all network requests captured for the current view since the connection opened, including URL, method, and status code. live-net-get — Returns the complete details of a single network request by its index in the list — headers, request body, response body, timing, and status. live-log-list — Returns all console messages (log, warn, error, info) recorded for the current view, in order. live-log-get — Returns the full content of a single console message by its index, including any serialized arguments or stack traces.

Scripting & Emulation

These tools let you run arbitrary JavaScript in the page and reconfigure the browser’s device profile. live-eval-script — Executes a JavaScript expression or block in the current page’s context and returns the serialized result. Use this to read DOM state, trigger functions, or set up test fixtures. live-emulate — Sets the viewport dimensions and user-agent string to match a named device profile (e.g. iPhone 14, Pixel 7). Call this before navigating to ensure the page loads with the correct responsive breakpoint.

Signals

Signals let your agent stay in sync with operator instructions and real-time comments during a live session. live-signal — Polls the active trace for new operator messages, pause/resume signals, and comment notifications. Call this periodically in long-running automation loops to check whether a human operator has left instructions or requested a stop.

Tunnel

The tunnel tools allocate a relay so the cloud-hosted browser can reach a server running on your local machine. live-tunnel runs on the hosted browser side; tunnel-connect, tunnel-disconnect, and tunnel-status come from the separate subtext-tunnel local MCP server. live-tunnel — Allocates a hosted browser connection and returns the tunnel relay URL. Use this URL as the target when navigating to a localhost dev server from the hosted browser. tunnel-connect — Opens a reverse tunnel from your local machine to Subtext’s relay so the cloud-hosted browser can reach your dev server. Pass your local server URL (e.g. http://localhost:3000). Provided by the subtext-tunnel local MCP server. tunnel-disconnect — Closes a specific active tunnel by ID, or all active tunnels if no ID is given. Provided by the subtext-tunnel local MCP server. tunnel-status — Returns the current status of all active tunnels — relay URLs, connection state, and local target URLs. Provided by the subtext-tunnel local MCP server.
The hosted browser cannot reach your machine directly. Use the subtext-tunnel local MCP server to bridge the gap. Add it to your MCP config alongside your session-review server:
See Tunnel for the full setup guide and the Skills page for the /subtext:tunnel skill that automates tunnel setup.