Deploy the Hub (or the full Grid in Hub-Distributor-Router mode) using the official selenium/hub Docker image; expose the event bus ports (4442 and 4443) alongside the Grid UI port (4444)
Configure the Node to use the dynamic execution mode by providing Docker daemon URI and a mapping of browser name to Docker image (for example, selenium/node-chrome) in the node's TOML or environment variables
Start the Node container pointing at the Hub's event bus address; the Node self-registers by sending a registration event through the event bus, and the Distributor verifies it via an HTTP health check
When a test session is requested, the Grid provisions an ephemeral container for that browser, routes the session to it, and tears the container down when the session ends
Scale the number of concurrent sessions by adjusting the max-sessions flag on the Node or by deploying multiple Node replicas behind a load balancer
Known gotchas
The Docker daemon socket must be mounted into the Node container (/var/run/docker.sock) for the dynamic grid to provision browser containers; this grants significant host privileges and should be restricted in production
Ephemeral browser containers are created and destroyed per session — startup latency per test is higher than with pre-warmed static nodes; use session queuing and timeouts to account for this
As of Grid 4.41, the dynamic grid runs natively on Kubernetes as well; the Docker-based and Kubernetes-based setups use different configuration keys — consult the current release notes for your version
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp