Screen Browser is an MCP server. An agent that knows your codebase already knows what every button is called, which makes it the best guide author you have.
Setup, once per machine
Install the plugin — it carries both the skill (how to write guides that work on the first run) and the MCP server:
claude plugin marketplace add screenbrowser/skill
claude plugin install screenbrowser@screenbrowser
The first time the agent uses a Screen Browser tool, Claude Code opens your browser to sign in, pick
the organisation the agent may work in and approve — no key to paste. If it does not prompt, run
/mcp and choose screenbrowser → Authenticate. You can disconnect the agent at any time under
Settings → API keys → Connected agents. Cursor and other MCP clients that support OAuth sign in
the same way.
Then ask for what you want in plain words: "make a tutorial video of creating a campaign". The Claude Code guide shows one real session from that sentence to the finished video, with the exact prompt and what the agent did with it.
A client with no plugin system registers the server directly and signs in the same way:
claude mcp add --transport http screenbrowser https://mcp.screenbrowser.com
If the agent cannot open a browser, use a key from Settings → API keys instead:
claude mcp add --transport http screenbrowser https://mcp.screenbrowser.com \
--header "Authorization: Bearer sb_live_…"
What the agent does
get_credits: is there balance?list_projects, orcreate_projectwith the deployed URL, the login gate read from the post-login redirect in the code, the hosts the frontend calls, and the demo user's credentials as variables.- Writes the auth guide from the login form and the main guide from the feature, in plain language, naming things as the templates label them.
validate_guideuntil it passes,put_guidefor both,start_run, thenget_runevery 15–30 seconds until the run is terminal.- Hands you the video link and the credits charged.
Tools
| Tool | Does |
|---|---|
list_projects, create_project, update_project |
projects, login gates, allowed hosts, app language, narration language and voice, the project's opening and ending (style, 3–10 s length, call to action, fade, narrated title) |
put_variables |
the demo user's credentials, encrypted |
put_guide, validate_guide |
the auth guide and named main guides with an optional video_title for the opening; problems with line numbers |
start_run, get_run, list_runs, cancel_run |
recordings; start_run takes an optional voice and language for one video |
list_voices |
languages, voices, tiers and their relative cost |
get_credits, top_up |
balance, and a one-click top-up link when it runs short |
report_run_failure |
send us the evidence of a run that failed on our side, with your consent |
A failed run is free, and get_run reports how every step resolved and what was learned, so the fastest way to find out what the page really calls things is to run.
When it says no
insufficient_credits: the response carries a top-up link. The agent relays it; once you have paid it continues.requires_attestation:create_projectattests for you when you say the app is yours, a client's, or internal.check_limit_reached: today's free checks are used up; record instead, a failed recording costs nothing.