upload_file - kubed-io/selenium-flow GitHub Wiki

upload_file

Attach a file to a file input (selector). Give exactly one source:

MCP tool upload_file
HTTP POST /browser/upload
  • text, for anything you wrote (JSON, CSV, markdown), with a filename;
  • file, any file this workspace has, by its uri from workspace://files โ€” a screenshot, a download or a file in Files โ€” without its bytes passing through you;
  • content, base64, for other binary.

The page reads the type from the filename's extension, so name it report.csv, not report; without one, mime_type picks it.

Parameters

Name Type Required Default
selector Selector no โ€”
text string no โ€”
filename string no โ€”
mime_type string no โ€”
content string no โ€”
url string no โ€”
wait_timeout integer no 30
file string no โ€”

Every call names its workspace: an X-Workspace header, or ?workspace=<name>. Sending both is refused. See Workspaces.

Returns

Field Type Notes
filename string The name the page sees for the attached file.
bytes integer Size of the file that was sent.
url string Current URL after the action.
title string Page title after the action.
site_data object Present only when site data was restored, skipped or forgotten in this call.
page object Present only when this browser was opened with capture=true and the page reported a failure while the call ran: what it caused, and where to read it.

Errors

Status Means
400 The request cannot succeed as sent โ€” a missing field, a value that was rejected, or a locator that matched nothing before the wait ran out. Do not retry it unchanged.
401 Missing or wrong bearer token.
404 No such browser session. It ended, the Grid reaped it, or the id was never real. Open a new one and retry.
413 The body is over its cap: 1 MiB of JSON, 64 MiB of upload, 1 MiB of flow YAML. Send less; retrying it unchanged will fail again.
500 Something failed that this server did not expect.
503 The Grid could not serve this โ€” unreachable, or no free slot for a new browser. Worth retrying after a wait.

Over MCP the same failures arrive as a tool error.

Example

MCP

upload_file()

HTTP

curl -X POST $SELENIUM_FLOW/browser/upload \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-Workspace: $WORKSPACE"

โ† All actions ยท Installing ยท Deployment

โš ๏ธ **GitHub.com Fallback** โš ๏ธ