Tools/browser-flow-mcp

Browser tasks in YAML.
For you and your AI agents.

Log in to a portal, download a report, check a price, fill the same form every week. Write the steps once and browser-flow-mcp runs them from the terminal, on a schedule, or as an MCP tool that Claude, Cursor and VS Code can call with typed inputs. The agent can only run the flows you wrote, so results are fast, repeatable and safe.

$npx @tirthlabs/browser-flow-mcp init
MIT licencePlaywrightMCP server (stdio)Cron + webhooksSaved login sessions

Run a real flow on our server

Real Chromium · results in a few seconds
flows/hn_top_stories.yml
Loading…
result.json
Press "Run flow" to start a real browser.
Screenshot appears here

The same file is an AI tool

Point your MCP client at a folder of flows. Every file becomes a tool, its inputs become the tool's schema, and results come back as JSON with screenshots. Edit flows while it runs and clients pick up the change.

claude_desktop_config.json · .cursor/mcp.json
{
  "mcpServers": {
    "browser-flows": {
      "command": "npx",
      "args": ["-y", "@tirthlabs/browser-flow-mcp",
               "serve", "/path/to/flows"],
      "env": { "PORTAL_PASSWORD": "…" }
    }
  }
}
Terminal and cron
# run once
npx @tirthlabs/browser-flow-mcp run flows/orders.yml date=2026-10-17

# every hour, results to Slack / n8n / Zapier
npx @tirthlabs/browser-flow-mcp run flows/prices.yml \
  --every 1h --webhook https://hooks.slack.com/…

# Claude Code
claude mcp add browser-flows -- \
  npx -y @tirthlabs/browser-flow-mcp serve ./flows

What it does

23 step types

goto, click, fill, select, upload, download, extract (text, attributes, tables), screenshot, PDF, assert, if/else, repeat for pagination, and JavaScript when you need it.

Logins that stick

session: portal saves cookies after the first run, so later runs skip the login. Secrets come from ${ENV}, never from the file.

Errors you can act on

A failed step reports the step, the error, the page URL and a screenshot, to you or to the agent that called it.

Typed tool inputs

String, number, boolean, enum and array inputs with defaults turn into JSON Schema, so agents call tools correctly.

Schedules and webhooks

--every 1h --webhook <url> turns any flow into a small monitoring or reporting job. No extra service needed.

One browser, many calls

The MCP server keeps one browser warm and gives every call a clean context, so tools answer in seconds.

Have a portal, a supplier site or a weekly report you're tired of doing by hand? I can automate it.

Talk to me