-
Notifications
You must be signed in to change notification settings - Fork 0
Actions
Every action is an MCP tool and an HTTP endpoint with the same parameters. A test fails the build if one exists without the other.
Everything you can do to a page.
| Tool | Endpoint | Does |
|---|---|---|
open_session |
POST /browser |
Open this session's browser, or pick up the one it was using. |
current_session |
GET /browser |
What this session is, and whether it holds a browser. |
navigate |
POST /browser/navigate |
Go to a URL. Returns the resulting URL and page title. |
interact |
POST /browser/interact/{action} |
Perform a mouse action on an element. |
drag |
POST /browser/drag |
Drag one element onto another, or by an offset in pixels. |
write |
POST /browser/write |
Type text into an input, textarea or contenteditable. |
press_key |
POST /browser/press-key |
Press a key, at an element or wherever focus currently is. |
extract |
POST /browser/extract |
Read an element's visible text and innerHTML. |
assert |
POST /browser/assert |
Assert that the page is what you expect, with JavaScript that must return true. |
outline |
POST /browser/outline |
Map what is on the page: every element worth acting on, with a selector for it and whether it can actually be used. |
screenshot |
POST /browser/screenshot |
Capture a PNG of the page and return it as an image you can see. |
save_pdf |
POST /browser/pdf |
Print the current page to PDF and keep it with the session's files. |
execute_script |
POST /browser/script |
Run JavaScript in the page and return its result. |
frame |
POST /browser/frame |
Move into an iframe, or back out of it. |
dialog |
POST /browser/dialog |
Answer a native alert, confirm or prompt dialog. |
resize |
POST /browser/resize |
Resize the browser window. |
upload_file |
POST /browser/upload |
Attach a file to a file input. |
end_browser |
DELETE /browser |
Quit the browser, keeping the session and its context. |
A sequence of the actions above, saved under a name and run in one call. See Flows for what a flow document looks like.
| Tool | Endpoint | Does |
|---|---|---|
list_flows |
GET /flows |
Every flow this session can run. |
get_flow |
GET /flows/{name} |
One saved flow, with its steps. |
flow_schema |
GET /schemas/flow |
The shape of a flow document. |
save_flow |
PUT /flows/{name} |
Create or replace a flow. |
run_flow |
POST /flows/{name}/runs |
Run a saved flow. |
delete_flow |
DELETE /flows/{name} |
Delete one of this session's flows. |
What a session has produced, and how to keep one past the browser that made it. See Files.
| Tool | Endpoint | Does |
|---|---|---|
session_files |
GET /files |
Every file this session has. |
keep_file |
PUT /files/{name}/kept |
Keep one download beyond its browser. |
Every call names its session — an X-Session-Key header or ?session= on the
URL. There is no session id anywhere; see Sessions.
The action pages are generated from openapi.yaml, which is itself generated from the live MCP tool schemas — so they describe the server that shipped, not the one someone remembered. Prose belongs in wiki-notes/<tool>.md in the repo.
selenium-flow · MIT
Start here
Guides
Lifecycle
Going places
Doing things
Getting things out