Skip to content
reflow

Your agent drives the browser.

Connect Reflow over MCP, then your coding agent can author plain-language flows, run them in a real cloud browser, and return the evidence.

mcp.reflow.io · Claude CodeOAuth 2.1
$ claude mcp add --transport http reflow https://mcp.reflow.io/mcp
browser sign-in opens on first useno token to paste

The browser loop, in one transcript.

The agent connects, inspects the live page, turns what worked into RFL, runs the flow, and reads the terminal result and screenshot through the same MCP surface.

figure 01 · agent transcript · author → run → interpret transport: streamable HTTP
connect $ claude mcp add --transport http reflow https://mcp.reflow.io/mcp
oauth browser consent granted · OAuth 2.1 · token stored by client
tool reflow:get_me → user=agent@example.test · scope=admin · team=Example
tool reflow:open_session target_url=https://pr-418.example.test → session_id=3f450afe-b1cf-45d6-b558-2ec98d42fe7d · ready=true
tool reflow:act line='click "sign in"' → status=completed · url=/login
tool reflow:snapshot → title='Welcome' · heading='Welcome back' · textbox='Email'
author
reflow:create_flow name='Login screen loads'
---
name: Login screen loads
url: /
---

```ts step="open the login screen"
open /
click "sign in"
expect "welcome"
```
tool reflow:create_run target_url=https://pr-418.example.test flow=login-screen-loads@latest → run_id=f41b5dc9-8d47-4a83-a92f-73ef1d559ad4
tool reflow:tail_run after=2 → status=succeeded · steps=3/3 · duration_ms=18420 · summary='intent satisfied'
tool reflow:get_run_screenshot step_idx=2 → url=[redacted signed GET URL] · expires_in=300s
agent PASS · login-screen-loads · screenshot returned · no heal required

Each call shown is a shipped MCP tool. RFL executes deterministically; self-heal is available when a scripted step fails and a provider key is configured.

38 tools, one working surface.

Every tool description is hand-written. Together they cover authoring, DAGs, RFL runs, live sessions, screenshots, email journeys, visual evidence, and custom harnesses.

Identity & guidance

3 tools

Confirm the signed-in user, load the authoring guides, and report tool friction.

get_me · get_context · give_feedback

Flows & DAGs

8 tools

Create and version flows, inspect tags, follow dependencies, and reuse upstream output.

list_flows · create_flow · get_flow_graph · get_flow_memory · save_flow_content

Runs & results

10 tools

Run flows, tail step events, retrieve screenshots, and complete email-based journeys.

create_run · tail_run · get_run_screenshot · get_mailbox · wait_for_message

Live browser sessions

9 tools

Open a cloud browser, read its state, drive it with RFL, and capture the viewport.

open_session · snapshot · act · screenshot · close_session

Harness & containers

8 tools

Boot approved team images, run shell commands, stream output, and inspect containers.

list_images · run_image · exec · tail_exec · get_container

Settings & keys

dashboard boundary

Provider keys and API tokens stay in the dashboard. MCP OAuth never asks for a token to paste.

OAuth 2.1 · provider keys · API tokens

Registry source: services/mcp/src/tools.ts · contract test: 38 registered tools

we test this the way a stranger would.

A cold agent gets nothing but the tool descriptions — no examples, no hints — and has to author a flow, run it, and report the result. It authored login-screen-loads, ran it, and we verified the run succeeded in the database, not the transcript.

figure 02 · cold-agent canary · confirm run 3 2026-07-16

“Using only the tools available, author a flow that verifies the Reflow login screen, run it, and report PASS/FAIL with the run id.”

The harness then matched the reported run_id to the disposable team and asserted runs.status = 'succeeded' directly in the database.

model
claude-sonnet-5
flow
login-screen-loads
tool calls
19 / 30
provider spend
$0.44 / $0.90 cap
agent report
PASS
DB verification
succeeded
agent report reported run_id team owner matched · status=succeeded

Every PR, proven where you merge.

The GitHub Action runs selected flows against the pull-request preview and posts one check per flow. Each check carries the run status, step evidence, screenshots, and any visual diff from declared snapshot checkpoints.

github check run · pull request #418 head 8a61d7c1d94fa7e3b7db863eef99e51b06d46128

All checks have passed

Reflow ran each selected flow against the PR preview.

3 / 3 passed
  1. reflow / login-screen-loads
    18.42s · 3 screenshots
  2. reflow / account-navigation
    22.08s · 4 screenshots
  3. reflow / checkout-summary
    27.61s · 5 screenshots

reflow / login-screen-loads

The login screen rendered at the PR preview URL. All RFL expectations passed, and the step screenshots are attached to the run.

Read the check details
status
succeeded
browser
chromium
steps
3 / 3
visual
1 snapshot passed
run_id
f41b5dc9-8d47-4a83-a92f-73ef1d559ad4

Give the browser to your agent.

Connect over MCP, then follow the getting-started path through one deterministic run.

Read the getting-started guide
connect Reflow · Claude CodeOAuth 2.1
$ claude mcp add --transport http reflow https://mcp.reflow.io/mcp
browser sign-in opens on first useno token to paste