Skip to content

Web automation integration

Web automation equips Speedwave with a headless Chromium browser instance powered by Microsoft’s official @playwright/mcp server. Claude can navigate complex web applications, inspect dynamic client-rendered DOM trees, execute accessibility tree snapshots, interact with forms, evaluate JavaScript, and capture viewport screenshots. For workflow details, refer to Automated browser testing.

Web automation runs as an unprivileged compose service named speedwave_<project>_mcp_playwright. Because web automation operates directly against target URLs without requiring stored API credentials, no token volumes are attached.

The worker is shared among active skills and plugins, avoiding redundant Chromium processes.

The @playwright/mcp integration provides 21 operations:

Tool nameDescription
browser_navigateNavigate the active page to a target URL.
browser_navigate_backTraverse backward in browser session history.
browser_tabsEnumerate, spawn, switch, or close browser tabs.
browser_snapshotCapture the accessibility tree hierarchy of the active page.
browser_take_screenshotCapture full-page or viewport screenshots as base64 images.
browser_console_messagesRetrieve browser console log output.
browser_network_requestsInspect HTTP/HTTPS network request streams.
browser_evaluateExecute JavaScript expressions within page or element context.
browser_run_codeExecute Playwright automation code blocks.
browser_clickDispatch click events on target DOM elements.
browser_hoverDispatch mouse hover events.
browser_dragExecute drag-and-drop actions across elements.
browser_typeType text strings into input elements.
browser_press_keyDispatch specific keyboard keys or key combinations.
browser_select_optionSelect values in HTML dropdown menus.
browser_fill_formPopulate multiple form fields simultaneously.
browser_file_uploadAttach local files to HTML file input elements.
browser_handle_dialogAccept or dismiss JavaScript alerts and confirmation prompts.
browser_wait_forAwait element visibility, text rendering, or time delays.
browser_resizeModify browser viewport dimensions.
browser_closeClose the active browser page.

Screenshots and accessibility dumps are returned directly in tool payloads. Ephemeral browser caches and cookies are wiped on container restart.

To target local development servers running on your workstation, use http://host.docker.internal:<PORT> instead of localhost.

  1. Enable Beta features in the Speedwave tray menu.
  2. Toggle Web automation in your project’s integrations dashboard.
  3. Allow the container runtime to compile the Chromium worker image. Subsequent activations reuse cached image layers.

The worker container enforces full security sandboxing (cap_drop: ALL, no-new-privileges, read-only root filesystems, noexec,nosuid tmpfs). Chromium sandboxing is delegated to container isolation boundaries. Consult Isolation model for structural security specifications.