Tool reference

Every tool call costs 1 credit except reflex_auth (free). Reflex is designed so a whole task fits in 2-3 calls. Final tool names and schemas are owned by the MCP server; this page tracks them.

ToolWhat it doesTypical use
reflex_openNavigate and return a distilled snapshot with stable element refsFirst look at any page
reflex_actRun a batch of steps (click, fill, press, select, scroll, wait...) with expect guards checked inside the batch; stops at first failure with a forensic reportThe whole task, one call
reflex_readDelta since last look, or "(page unchanged)"Check what changed
reflex_extractFull table/list data from a ref (large output goes to a file)Scraping a folded table
reflex_checkVisual audit: overlap, contrast, clipped text, broken imagesQA passes
reflex_shotScreenshot (page or region), returned as an image plus file pathVisual confirmation
reflex_tabList, switch to, or close tabsPopups, multi-tab flows
reflex_flowFlow operations via its action enum (save, run, list, state_save): save this session as a replayable flow, replay deterministically with zero model tokens, list flows, save auth stateLogins, nightly checks
reflex_authSign in, sign out, or check auth status. action "login" opens your browser and saves a key locally (free, unmetered)First-time setup

Step types and expect guards

Each step in a reflex_act batch is one object. Action steps: goto, click, dblclick, hover, focus, fill, type, press, select, check, uncheck, scroll, wait, shot, eval. Assertion guards: expect.visible, expect.hidden, expect.text, expect.url_contains, expect.value. Put expect guards between actions to verify as you go.

A target is a ref from a snapshot (like a3f2) or a semantic name (button label, input label, placeholder, or id). Values may use the {{env:VAR}} pattern to pull secrets from the server environment, so credentials never appear in the model's context.

Worked example: login and verify

login-flow
// One look, then the whole login-and-verify flow in a single batch.
reflex_open { "url": "https://app.example.com/login" }

reflex_act {
  "steps": [
    { "fill": ["Email", "{{env:APP_EMAIL}}"] },
    { "fill": ["Password", "{{env:APP_PASSWORD}}"] },
    { "click": "Sign in" },
    { "wait": { "url_contains": "/dashboard" } },
    { "expect": { "visible": "Orders" } },
    { "expect": { "text": "Welcome back" } }
  ]
}

Stuck? nitaiaharoni1@gmail.com