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.
Run a real flow on our server
Real Chromium · results in a few secondsLoading…
Press "Run flow" to start a real browser.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.
{
"mcpServers": {
"browser-flows": {
"command": "npx",
"args": ["-y", "@tirthlabs/browser-flow-mcp",
"serve", "/path/to/flows"],
"env": { "PORTAL_PASSWORD": "…" }
}
}
}# 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.