Screen Browser
Screen Browser records narrated demo and tutorial videos of your deployed web app.
What it can do
- List Projects: List the organisation's projects: id, name, target URL, login gate, which guides exist, and whether the target host is attested. Use the id with the other tools.
- Create Project: Create a project for one web app: the target URL, the login-success URL fragment (the address bar contains it after signing in), the legal attestation that the customer may record this
- Update Project: Change a project's login gate, extra hosts, target URL, name, narration or default device — typically after a run failed with "Login gate failed" and the gate needs a selector or text
What data it sees
Do you need an account
No: the server works without sign-in
Screen Browser records narrated demo and tutorial videos of your deployed web app. You describe the walkthrough in plain language, or let your coding agent write it from your source code. A real browser signs in with a demo account, follows the guide step by step, records the screen, narrates it and adds on-screen effects. You get an MP4 plus a GIF, subtitles, chapters and a thumbnail, and a webhook or the API can deliver them wherever you publish. When the app changes, edit a line and rerun.
For coding agents, Screen Browser is an MCP server with a companion skill. The skill teaches the agent how to write guides that work on the first run; the server creates the project, validates the guide, starts the recording and returns the video. Claude Code, Codex, Cursor or any MCP client can use it. Sign-in happens in the browser; there is no key to paste.
What it needs: a web app reachable over the internet, and a demo user that signs in with email and password (no OAuth, no two-factor codes, no captcha). Mobile means the app's mobile layout, not native apps. Videos are capped at five minutes. There is no free plan.
Plans start at $49 a month, sized in minutes of finished video. A run that fails is not charged, and checking a guide before recording is free.
See it work: https://screenbrowser.com/guides/claude-code-demo-video/
How to connect
How to connect Screen Browser to Claude
The server address to paste into Claude settings:
https://screenbrowser.run.tools
- Open Claude (claude.ai or the desktop app).
- Go to Settings → Connectors.
- Click Add custom connector.
- Paste the server address copied below into Remote MCP server URL and click Add.
- In a chat, click + → Connectors and switch the new connector on.
Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.
Authorization
After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.
How to connect Screen Browser to ChatGPT
The server address to paste into ChatGPT settings:
https://screenbrowser.run.tools
- Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
- Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
- Open Settings → Connectors and click Create.
- Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
- Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
- In a new chat open + → Apps/Connectors and enable the connector.
OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.
Authorization
On first use ChatGPT opens the service's sign-in window. Sign in and approve access.
How to connect Screen Browser to Cursor
The server address to paste into Cursor settings:
https://screenbrowser.run.tools
Fastest: click Open in Cursor below and confirm the prompt.
Manually:
- In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
- Paste the JSON copied below into
~/.cursor/mcp.json(per project:.cursor/mcp.jsonin the repo root). - Save the file. The server appears in the MCP list; authorize it there if asked.
Authorization
If the service needs sign-in, an authorize button appears next to the server in the MCP list.
Server tool list (14)
Raw names from tools/list. Only developers need these.
| list_projects | List the organisation's projects: id, name, target URL, login gate, which guides exist, and whether the target host is attested. Use the id with the other tools. |
| create_project | Create a project for one web app: the target URL, the login-success URL fragment (the address bar contains it after signing in), the legal attestation that the customer may record this app, extra hosts the app talks to, and the demo user's credentials stored as encrypted variables. Do this once per app; reuse the returned project id. |
| update_project | Change a project's login gate, extra hosts, target URL, name, narration or default device — typically after a run failed with "Login gate failed" and the gate needs a selector or text instead of a URL fragment. Only the fields given are changed; passing all three gate fields empty is refused. |
| put_guide | Save a guide on a project as a new version. kind "auth" is the login flow (never recorded, may use {USERNAME}/{PASSWORD}); kind "main" is the walkthrough that becomes the video. Run validate_guide first. |
| put_variables | Add or update a project's variables (demo credentials and other values guides reference as {NAME}). Values are stored encrypted and are never returned or sent to any model. Existing variables not named here are kept. |
| validate_guide | Check a guide before saving it: unknown [DIRECTIVES], undefined {VARIABLES}, secrets typed literally, steps that cannot execute, missing "Go to" start, length versus the 5-minute cap. Returns problems with line numbers, an estimated video length and an estimated credit cost. Costs nothing. |
| start_run | Start recording a video for a project (its newest main guide, or a specific guide_id), on the desktop or as a phone/tablet (device). Returns the run id; poll get_run until is_terminal. Credits are charged only when the video completes. |
| get_run | Status of a run: phase, whether it is finished, credits so far, the customer-visible activity, the error with a hint when it failed, and signed URLs for the video and other artifacts (GET only, valid ~15 minutes; call again for fresh ones). |
| list_runs | The organisation's most recent runs (optionally for one project): id, state, phase, guide, credits, video length. |
| list_voices | The narration languages and voices, with tier and credits per minute. Pass a language code to see only the voices that speak it. Use a voice id with create_project, update_project or start_run; the organisation's own ElevenLabs voices appear as custom:… ids. |
| cancel_run | Stop a run that is queued or in progress. Nothing is charged for an incomplete run. |
| get_credits | The organisation's credit balance, credits reserved by runs in progress, what is available, the rate (credits per minute of video), and top-up links to hand to the user when the balance is short. |
| top_up | Links to buy more credits: a one-click top-up link for a pack (opens Stripe Checkout, no login) plus the billing page. Give the link to the user; the tool never charges anything itself. Omit `pack` to get the suggested one. |
| report_run_failure | Send a failed run's evidence (screenshot, page structure, logs; never credentials) to Screen Browser so the recorder can be fixed. Only for runs that failed on our side; nothing is retried and the guide is not changed. Ask the user before calling: it shares their app's page with us. We reply on the run. |