Skip to main content
Glama

Server Details

Narrated demo and tutorial videos of your web app, from a guide or your coding agent.

Ownership verified
Status
Healthy
Uptime
98.8% over 22 days
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
screenbrowser/skill
GitHub Stars
0

TDQS

A4.1/5.0

Scored across 14 tools

Disambiguation5/5

Each tool targets a distinct resource or action: project CRUD, run lifecycle (start/get/list/cancel/report_failure), guide authoring (put/validate), variables, voices, and credits. Even the credit-related pair (get_credits vs top_up) is clearly separated into balance-reading versus purchase links. An agent can reliably select the right tool.

Naming Consistency4/5

The dominant pattern is verb_noun (create_project, list_projects, get_run, update_project, cancel_run, start_run, validate_guide), which is highly predictable. Minor deviations are put_guide/put_variables (using 'put' rather than create/update/save) and top_up (verb without a noun). Still highly readable overall.

Tool Count5/5

Fourteen tools is well within the sweet spot and each maps to a needed step in the record-a-demo-video workflow. Nothing feels redundant or padded; the surface is tightly scoped to project setup, guide authoring, run execution, and billing.

Completeness4/5

The lifecycle is well covered: create/list/update projects, put/validate guides, set variables, start/get/list/cancel runs, report failures, plus credits/voices/top-up. The main gap is the absence of any delete/removal operations (no delete_project, delete_guide, or variable removal), though agents can work around most of these. No get_project exists but list_projects covers inspection.

Available Tools

14 tools
cancel_runCancel runA
DestructiveIdempotent
Inspect

Stop a run that is queued or in progress. Nothing is charged for an incomplete run.

ParametersJSON Schema
NameRequiredDescriptionDefault
run_idYesThe run to stop (from start_run or list_runs).

Output Schema

ParametersJSON Schema
NameRequiredDescription
stateYesCustomer-visible state after the request.
run_idYes
cancel_requestedYestrue once the stop has been recorded; a run in progress stops at its next step.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and idempotentHint=true, covering safety and idempotency. The description adds the billing implication ('Nothing is charged for an incomplete run'), which is valuable behavioral information beyond annotations. No contradiction detected.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no filler. The primary action and condition are front-loaded, and the billing note adds value without redundancy. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter cancellation tool, the description covers purpose, usage condition, and a key consequence (billing). With annotations covering destructive and idempotent behavior and an output schema present, nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the parameter run_id is well documented in the schema. The tool description does not add additional parameter semantics, but since the schema fully covers it, the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Stop' and resource 'run', and explicitly restricts to queued or in-progress runs. This clearly distinguishes it from sibling tools like start_run, get_run, and list_runs, leaving no ambiguity about its function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states when the tool applies (queued or in-progress runs), which provides clear usage context. It does not explicitly mention alternatives or exclusions, but the scope is obvious given the sibling set. Slight deduction for not naming alternatives, though the condition is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_projectCreate projectAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesProject name shown in the dashboard, e.g. the app's name.
frameNoDefault frame for phone/tablet videos: portrait (9:16, default), landscape (widescreen 16:9) or none (full screen).
voiceNoNarration voice id from list_voices (default: the language's default voice).
deviceNoDefault device for this project's videos: desktop (default) or a phone/tablet preset (desktop, iphone, iphone-max, android, android-large, ipad, ipad-pro, android-tablet). Any run can override it.
backdropNoDefault backdrop behind the phone frame: neutral (default) or brand.
languageNoNarration language code from list_voices (default en).
variablesNoDemo credentials, e.g. [{name: "USERNAME", value: "demo@example.com"}, {name: "PASSWORD", value: "…"}], referenced in guides as {USERNAME}. Stored encrypted and never returned by any tool. A value passed here goes through the conversation; to keep it out of chat, leave variables out and set them on the project's page in the Screen Browser dashboard.
app_localeNoBCP-47 code of the app's interface language (de, pt-BR). Guides can be in any language; the recorder looks for the words the page shows. Omit for English.
target_urlYesThe app's login or home page, e.g. https://app.example.com/login
allow_hostsNoOther hosts the app loads or calls (API, CDN, auth). The recording browser can reach only the target host plus these.
attestation_typeYesLegal basis for recording this app: {"self_owned":"I own or operate this application.","client_authorized":"My client has authorised me to record this application on their behalf.","internal_tool":"This is an internal tool and I have authority to record it."}
login_success_textNoLogin gate: visible text present only when signed in, e.g. "Sign out".
login_success_selectorNoLogin gate: a CSS selector visible only when signed in, e.g. nav a[href="/campaigns"].
login_success_url_containsNoLogin gate: URL fragment present only after a successful login, e.g. /dashboard. If the app lands on the root URL after login, use login_success_selector or login_success_text instead. At least one gate is required; recording never starts before it passes.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameYes
nextYesWhat to do now.
attestedYes
hostnameYesThe attested host.
variablesYesVariable names stored; values are never returned.
project_idYesUse with put_variables, put_guide, validate_guide and start_run.
target_urlYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, idempotentHint=false and destructiveHint=false, and the description's 'do this once per app' is consistent with non-idempotency. It adds that credentials are 'stored as encrypted variables' and that recording gates on login success, but says nothing about auth scopes, quotas, or what the returned id unlocks beyond reuse.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core action and ending with the persistence rule. The second sentence is long and packs five concepts into one clause chain, but nothing is redundant with the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 14-param creation tool with an output schema and full annotations, the description covers the workflow-critical concepts (login gate, legal attestation, extra hosts, encrypted credentials) and the reuse rule. The presentation defaults it omits are safely documented in the schema, so the gaps are minor.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all 14 parameters including enums and defaults. The description narrates only the salient subset (target_url, login gate, attestation, allow_hosts, variables) in prose; frame, voice, device, backdrop, language and app_locale are left entirely to the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource: 'Create a project for one web app', then enumerates the substantive content the project holds (target URL, login gate, attestation, hosts, credentials). It does not name update_project explicitly, but 'Do this once per app; reuse the returned project id' implicitly separates it from the update path.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Do this once per app; reuse the returned project id' gives real context on expected call frequency and post-creation behavior. There are no explicit exclusions or named alternatives, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_creditsGet creditsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
top_upYes
balanceYesCredits on the account.
availableYesbalance minus in_flight, never below 0.
in_flightYesCredits reserved by runs in progress.
credits_per_video_minuteYesBase rate for a standard voice.

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, so the description does not need to repeat safety. It adds value by indicating the tool reports the rate and top-up links, and suggests handing those to the user when balance is low. This is useful behavioral guidance but not extensive. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, free of filler, and front-loaded with the primary purpose. It packs several relevant details (balance, reserved, available, rate, top-up links) without excessive length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter tool with an output schema that presumably documents the return structure, the description is complete. It covers what the agent needs to know to call it and what to do with the results (hand top-up links to user). No gaps in calling or interpretation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there is nothing to document. The baseline for this case is 4, and the description adds no conflict. It focuses on output content rather than parameters, which is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the resource (credits) and enumerates specific aspects (balance, reserved, available, rate, top-up links). It is distinct from sibling top_up, which is for adding credits, and from other tools like get_run or list_projects. The verb is implicit but the noun phrase is precise.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies it is used to check credit-related information, and the mention of 'hand to the user when the balance is short' gives a usage cue. However, it does not explicitly contrast with alternatives like top_up or state when not to use this tool. Why an agent would choose this over other tools is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_runGet runA
Read-onlyIdempotent
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
run_idYesThe run to describe (from start_run or list_runs).

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYesrecord produces a video; check only verifies the guide.
errorNoPresent only when the run failed.
guideNoDisplay name of the guide that was recorded.
phaseYesCustomer-facing phase label (Queued, Preparing, Recording, Finishing, Completed, Failed, Paused).
stateYesMachine-readable state; done means the video is ready.
outputNoDevice settings the run recorded with (device, frame, backdrop).
run_idYes
attemptYesAttempt number; the recorder retries some failures itself.
activityYesCustomer-visible activity lines, oldest first, each prefixed with its time.
warningsYesThings that stayed on top of the page during the walkthrough; fix the guide and run again.
artifactsYes
video_urlNoSigned download link for the video, valid about 15 minutes; null until the video is ready.
phase_noteYesOne line explaining the phase.
project_idYes
started_atNoISO 8601
is_terminalYestrue when nothing more will happen; stop polling.
completed_atNoISO 8601
output_labelYesHuman label of the output, e.g. Desktop or iPhone, Vertical 9:16.
video_secondsNoLength of the finished video.
credits_so_farYesCredits owed so far; 0 until the video completes.
estimated_creditsNoEstimate made when the run started.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (readOnlyHint, idempotentHint), the description discloses that this is GET-only, that signed artifact URLs expire after ~15 minutes, and that fresh URLs require a subsequent call. This adds meaningful runtime behavior not captured by the schema or annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, dense sentence organizes status components as a list and tucks the expiration behavior into a parenthetical. Every word adds information and the key action is front-loaded. No redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read tool with an output schema, the description covers all essential runtime concerns: what data is returned, the read-only nature, and the temporary URL behavior. An agent can safely and correctly invoke it without additional documentation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the description contributes no additional run_id semantics beyond what the schema already states ('from start_run or list_runs'). Baseline 3 is appropriate because the schema fully carries parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description begins 'Status of a run' which precisely states the resource (run) and the action (retrieve status). It enumerates specific status fields (phase, finish flag, credits, activity, error, signed URLs), making it immediately distinct from sibling tools like list_runs (all runs) or cancel_run (mutation).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies clear usage: when you have a run_id and need its current status, call this tool. It adds that repeated calls are expected ('call again for fresh ones') but does not explicitly compare against siblings or state exclusions. Context is clear enough, but no alternatives are named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_projectsList projectsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
projectsYesNewest first, at most 50.

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, covering the safety profile. The description adds the scope ('organisation's projects') and field details, but does not disclose additional behavioral traits like pagination or auth requirements. This is acceptable but not exceptional given the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence states the action and resource, lists the output fields, and ends with a practical usage tip. Every word earns its place; no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With zero parameters and an output schema present, the description provides all necessary context: what is listed, what fields are returned, and how to use the result. Nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the description has no parameter burden. Schema coverage is 100% and the empty input schema is unambiguous. Baseline 4 for zero-parameter tools applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List') and resource ('the organisation's projects'), and enumerates the exact fields returned (id, name, target URL, login gate, guides, attestation). This clearly distinguishes it from siblings like list_runs and list_voices.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly tells the agent to use the returned id with other tools, which is clear usage guidance. It does not name alternatives or exclusions, but for a list operation with no sibling doing the same thing, this is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_runsList runsA
Read-onlyIdempotent
Inspect

The organisation's most recent runs (optionally for one project): id, state, phase, guide, credits, video length.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoHow many runs to return, 1–50; default 20.
project_idNoOnly runs of this project (from list_projects); omit for the whole organisation.

Output Schema

ParametersJSON Schema
NameRequiredDescription
runsYesNewest first.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, so safety is covered. The description adds useful behavioral context: results are ordered by recency, can be project-scoped or org-wide, and include a specific set of attributes. The output schema covers return shape, so no major behavioral gap remains.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single compact sentence that front-loads the most important scoping information and then lists the returned attributes. Every part of the description earns its place, with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no required parameters, a fully documented input schema, an output schema, and read-only/idempotent annotations, the description supplies the remaining essentials: ordering and optional scope. An agent has enough information to select and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and both parameters already have meaningful descriptions (limit range/default and project_id semantics). The tool description mainly reinforces the optional project scope without adding new parameter-level information, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('list') and resource ('runs'), and immediately anchors scope with 'organisation's most recent runs (optionally for one project)'. The field list distinguishes it from single-run tools like get_run and from mutation tools like cancel_run or start_run.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Clear context is provided: the tool lists recent runs, optionally scoped to a project, and the schema adds 'omit for the whole organisation'. It does not explicitly say when not to use it versus siblings, but the resource and scope make the intended use fairly obvious.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_voicesList voicesA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
languageNoBCP-47 code such as en or de; omit for every voice.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteYes
voicesYes
languagesYes
default_languageYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint, covering the safety profile. The description adds filtering behavior (language code) and the format of custom ids, providing context beyond the annotations without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with the core purpose, then usage guidance. No wasted words, and the structure supports quick scanning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with an output schema and read-only annotations, the description covers purpose, filtering, and downstream usage. Nothing essential is missing for an agent to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the language parameter is fully described in the schema. The description reinforces the filtering behavior but does not add significant new meaning beyond what the schema already states, so a baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool lists narration languages and voices with tier and credits per minute, and mentions optional language filtering. This distinguishes it from sibling tools like list_projects or list_runs, and the verb 'list' is implied by the resource and behavior.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance on using a voice id with create_project, update_project, or start_run, and notes custom:… ids for organisation voices. It does not explicitly contrast with alternatives, but there is no overlapping sibling tool for listing voices, so the context is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

put_guideSave guideAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindYesauth = the login steps, run before recording and never shown; main = the walkthrough that becomes the video.
nameNoDisplay name for a main guide, e.g. "Create your first campaign".
contentYesThe guide text, one step per line (see screenbrowser://guide-syntax); up to 20000 characters.
project_idYesThe project (from create_project or list_projects).
video_titleNoTitle shown on the video's opening (main guides). Empty uses the guide name.

Output Schema

ParametersJSON Schema
NameRequiredDescription
kindYes
nameYes
linesYesNon-empty lines saved.
versionYesVersions count up per guide; earlier versions are kept.
guide_idYesPass as guide_id to start_run to record exactly this version.
project_idYes
video_titleNo

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only mark readOnly=false, destructive=false, and idempotent=false; the description adds meaningful behavior beyond that: saving creates a new version, the auth flow is never recorded and may use credentials, and the main kind becomes the video. This gives the agent useful context about side effects and credential handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three succinct sentences, each earning its place: purpose, kind semantics, and prerequisite. There is no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers purpose, the auth/main distinction, and the validate_guide prerequisite; the input schema covers all parameter semantics at 100%, and an output schema exists, so return values need no description. It might have named project_id's source, but that is already in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description reinforces the kind distinction already in the schema but introduces no new meaning for name, content, project_id, or video_title beyond their schema descriptions; therefore it stays at baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description opens with a specific verb and resource: 'Save a guide on a project as a new version,' which clearly identifies the mutation and distinguishes it from read/list siblings like list_runs. It further clarifies the two kinds, so an agent can tell it apart from validate_guide without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly instructs 'Run validate_guide first,' which establishes the workflow context and the validation prerequisite. It does not enumerate alternative tools or state when not to use, but no sibling performs a guide save, so the 'Save a guide' statement plus validator prerequisite is clear context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

put_variablesSave variablesA
Idempotent
Inspect

Add or update a project's variables (demo credentials and other values guides reference as {NAME}). Values are stored encrypted and never returned by any tool. Values sent here pass through the conversation; customers who want to keep credentials out of chat can set them on the project's page in the Screen Browser dashboard instead. Existing variables not named here are kept.

ParametersJSON Schema
NameRequiredDescriptionDefault
variablesYesVariables to add or overwrite; the ones not listed are kept.
project_idYesThe project (from create_project or list_projects).

Output Schema

ParametersJSON Schema
NameRequiredDescription
variablesYesEvery variable name now defined on the project.
project_idYes

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond annotations by disclosing that values are stored encrypted, never returned by any tool, pass through the conversation, and that existing variables not named are kept (merge semantics). These are non-obvious behavioral traits an agent needs to reason about safety and repeat invocations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tightly written sentences, front-loaded with the core action, then security behavior, then merge behavior. No filler and every sentence carries distinct information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained, and the description covers the security and merge semantics an agent needs. Nothing essential is missing for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so both parameters and the nested name/value objects are fully documented in the schema. The description adds the {NAME} reference convention but little else beyond what the schema already provides, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Add or update) and resource (a project's variables), and clarifies what variables are (demo credentials and other values guides reference as {NAME}). An agent can easily distinguish this from siblings like update_project or put_guide.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains a meaningful usage consideration: credentials can be kept out of chat by setting them on the dashboard page instead. It gives clear context for when to use this tool, but does not name a sibling tool or a hard exclusion condition.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

report_run_failureReport run failureA
Idempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNoWhat the user noticed or expected, in their words; optional.
run_idYesThe failed run (get_run shows error.failure_report.available = true).

Output Schema

ParametersJSON Schema
NameRequiredDescription
run_idYes
statusYes
messageYes
report_idYes

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes beyond annotations by revealing that the call shares the user's app page with Screen Browser, explicitly excludes credentials from evidence, and states that a reply comes on the run. It also clarifies side effects (nothing retried, guide unchanged). These are critical behavioral disclosures not covered by readOnlyHint/idempotentHint/destructiveHint. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with no filler. The core action is front-loaded, followed by scope limitations and a critical user-consent warning. Every sentence adds value, and the structure leads with the most important information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a privacy-sensitive mutation tool, the description covers purpose, usage conditions, side effects, data-sensitivity, and the response location. An output schema exists, so return format need not be described. Nothing essential is missing for an agent to call this safely and correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and both parameters (run_id, note) are already well documented in the schema. The description does not add extra meaning about the parameters themselves; it focuses on the overall behavior. Baseline 3 is appropriate since the schema carries the parameter burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Send'), a precise resource ('a failed run's evidence'), and the destination ('to Screen Browser'). It also explicitly scopes what it is not (no retry, no guide change), distinguishing it from other run-related tools. Clear and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-to-use ('Only for runs that failed on our side') and what it does not do (no retry, no guide change). Also adds a mandatory prerequisite ('Ask the user before calling') and a privacy caveat. It doesn't explicitly name alternative tools, but the schema for run_id references get_run, providing the needed context. Strong guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

start_runStart runAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
frameNoPhones: portrait (9:16 in a phone frame, default), landscape (16:9 widescreen with the phone upright and centred, for YouTube) or none (the bare screen). Tablets: landscape or none.
voiceNoNarrate this video with a specific voice id from list_voices; default is the project's voice.
deviceNoRecord as a phone or tablet instead of the desktop: desktop, iphone, iphone-max, android, android-large, ipad, ipad-pro, android-tablet. One run is one device; for a desktop and a phone version start two runs with the same guide. Default is the project's device.
backdropNoBehind the phone frame: neutral (grey, default) or brand (the organisation's brand kit colour).
guide_idNoA specific main guide id (from put_guide or list_projects); default is the newest.
languageNoNarrate in this language (code from list_voices); default is the project's language.
project_idYesThe project to record (from create_project or list_projects).

Output Schema

ParametersJSON Schema
NameRequiredDescription
nextYesWhat to do now.
stateYes
outputNoDevice, frame and backdrop the video will use.
run_idYesPoll get_run with this id.
narrationNoLanguage and voice the video will use.
estimated_creditsNoExpected cost; charged only when the video completes.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate non-read-only and non-idempotent nature. The description adds crucial behavioral context: the run is asynchronous (you must poll get_run until is_terminal), credits are charged only on completion, and device selection constrains the output. It discloses the charging condition and the need for polling, which are not in annotations, making the side effects transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact: two sentences pack the purpose, the return value, the polling requirement, and the charging rule. It is front-loaded with the primary action, and every clause contributes new information. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 7 parameters, an output schema, and complex side effects, the description covers all essential operational aspects: how to start, what to do with the returned id, device multiplicity, and when billing occurs. The existence of an output schema relieves the description from detailing return structure, and the description is complete enough for correct usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers 100% of parameters with meaningful descriptions, so the baseline is 3. The description adds value by explaining relationships: the default guide is the newest, device variants (desktop/phone/tablet) and the rule that one run equals one device, plus how to handle multiple devices. This goes slightly beyond the schema's per-parameter explanations.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb ('Start recording') and a specific resource ('a video for a project'), and further specifies the object through guide_id and device. It differentiates from siblings by describing its role in the run lifecycle (creating a run, returning an id to poll) and mentions the asynchronous nature. This leaves no ambiguity about what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides direct usage guidance: it explains that one run per device must be started separately for desktop and phone versions, and instructs to poll get_run until is_terminal. It implies the context of starting a recording but does not explicitly state exclusions or alternative tools. The instruction on when to use (when you want to record) is implicit but clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

top_upTop up creditsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
packNosmall = 100 credits ($27), medium = 300 ($75), large = 1000 ($249). Default: the suggested pack.

Output Schema

ParametersJSON Schema
NameRequiredDescription
packsYes
messageYesReady-to-show sentence with the links.
top_up_urlYesOne-click Stripe Checkout link; opens without a login. Hand it to the user.
billing_urlYesThe billing page in the app.
upgrade_urlNoSet when a plan upgrade would be cheaper than packs.
suggested_packYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark this as read-only and idempotent. The description adds useful behavioral detail beyond that: the checkout link opens Stripe Checkout, requires no login, and the tool never charges anything itself. This helps an agent set user expectations correctly.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences deliver all essential information with no filler. The main purpose is front-loaded, and the key caveat about not charging is stated directly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-optional-parameter tool with a rich schema and an output schema present, the description sufficiently explains what the tool returns, how to handle the response, and what side effects (none, besides opening Stripe) the user should expect.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already fully documents the single `pack` parameter, including enum values, credit amounts, prices, and default. The description adds only the general 'omit pack for suggested' behavior, which is already reflected in the schema's default note, so it provides marginal extra semantic value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool's function: it returns links to buy more credits, including a Stripe Checkout link and the billing page. It is distinct from siblings like get_credits, which reads balance, and other run/project tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear usage context: give the link to the user when they need to top up credits. It also clarifies that the tool itself never charges, and explains the default behavior when `pack` is omitted. It does not explicitly name alternatives, but no other sibling serves this top-up purpose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_projectUpdate projectA
Idempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
fadeNoHalf-second fade in at the start and out at the end.
nameNoNew project name.
frameNoDefault frame for phone/tablet videos: portrait, landscape (widescreen 16:9) or none (full screen).
voiceNoNarration voice id from list_voices.
deviceNoDefault device for this project's videos: desktop, or a phone/tablet preset (desktop, iphone, iphone-max, android, android-large, ipad, ipad-pro, android-tablet).
backdropNoDefault backdrop behind the phone frame: neutral or brand.
cta_textNoCall to action on the ending for this project; empty uses the Brand one.
languageNoNarration language code from list_voices.
app_localeNoBCP-47 code of the app's interface language; empty string clears it.
project_idYesThe project to change (from list_projects).
target_urlNoNew login or home page URL (https). The host must be attested; create_project attests a new host.
title_lineNoWhat the narrator says over the opening, up to 100 characters of plain words; {title} is replaced by each guide's video title. Empty speaks the title.
allow_hostsNoReplaces the list of extra hosts the app talks to.
ending_styleNoEnding style. "clip" needs a clip uploaded in the app.
bookends_modeNoOpening and ending: "default" uses the workspace Brand settings, "custom" uses the values below (Pro and up).
narrate_titleNoThe narrator speaks a line over the opening (Pro and up); by default the video title.
opening_styleNoOpening style. "clip" needs a clip uploaded in the app.
ending_secondsNoEnding length, 3 to 10 seconds.
opening_secondsNoOpening length, 3 to 10 seconds.
login_success_textNoVisible text present only when signed in.
login_success_selectorNoCSS selector visible only when signed in.
login_success_url_containsNoURL fragment seen only after login.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameYes
outputYesDefault device settings after the change.
bookendsYesOpening and ending settings after the change (mode, opening, ending, cta_text, narrate_title, title_line, fade).
login_gateNourl_contains, text and/or selector now in force.
project_idYes
target_urlYes
allow_hostsYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, idempotentHint=true, destructiveHint=false. The description adds valuable behavior: only fields given are changed (partial update) and the refusal condition when all gate fields are empty. It does not disclose any side effects beyond that, but none are expected beyond the schema. This complements the annotations well without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the action, then the typical use case, then a critical constraint. No wasted words. Every clause adds information that the agent needs, and the structure is easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 22 parameters and an output schema, the description does not need to enumerate every field; the schema covers that. It does mention the key gate constraint and the typical failure recovery context. It omits none of the essential call-time behavior or prerequisites beyond what the schema already states. A slightly higher score is withheld because it doesn't hint at any side effects on video or narration beyond what the parameters imply, but that's minor.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so each parameter already has a description. The tool description adds cross-parameter meaning: it groups 'login gate' (three fields) and 'extra hosts' (allow_hosts) and clarifies that the gate fields cannot all be empty. This is beyond what the schema individually provides and helps understand the intent of those parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Change'), a resource ('a project'), and a concrete list of what changes (login gate, extra hosts, target URL, name, narration, default device). It also gives a motivating scenario that distinguishes it from create_project and other tools. This is clear and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides a strong usage context ('typically after a run failed with "Login gate failed"') and a constraint ('passing all three gate fields empty is refused'). It does not explicitly name an alternative tool, but the scenario effectively tells when to call this tool. No exclusions are given, but the guidance is adequate for an agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_guideValidate guideA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindYesauth = login steps; main = the walkthrough that becomes the video.
deviceNoCheck for a phone or tablet run (a preset such as iphone or ipad): warns about hover steps and large zooms. Default: the project's device.
contentYesThe guide text to check, one step per line.
project_idNoWhen given, {VARIABLES} are checked against the project and a credit estimate is returned.

Output Schema

ParametersJSON Schema
NameRequiredDescription
passedYestrue when there are no problems; warnings alone do not fail a guide.
problemsYesMust be fixed before put_guide.
warningsYesWorth fixing; the guide still records.
action_stepsYesSteps the browser performs (directive-only lines excluded).
estimated_lengthYesRough video length, e.g. "2:10".
estimated_creditsNoPresent for main guides when project_id is given.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint, and the description adds significant context: it costs nothing, returns problems with line numbers, estimated video length, and credit cost. It also details the checks performed. No contradiction with annotations; adds substantial behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single paragraph with two sentences. It front-loads the purpose ('Check a guide before saving it') and packs the checks into a list. It's moderately concise but not overly verbose; every clause earns its place. Slightly longer than necessary but well structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity, the existing output schema (which likely describes the returned problems and estimates), and the read-only annotations, the description covers all essential behavior: checks performed, return types (line numbers, length, cost), and the cost-free nature. Nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all four parameters. The description adds no parameter-specific meaning beyond what's in the schema; it discusses content checks but doesn't elaborate on how parameters influence behavior. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Check') and resource ('a guide'), and enumerates the exact validation checks (unknown DIRECTIVES, undefined VARIABLES, secrets, step executability, missing start, length cap). It clearly distinguishes from siblings like put_guide by positioning itself as a pre-save validation step.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'before saving it' gives a clear temporal context for when to use the tool. It implicitly contrasts with put_guide, but doesn't explicitly name alternatives or state when not to use it. The guidance is clear enough for an agent to infer the intended workflow.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updates
    • Changedcreate_project2 fields changed
      • changedInput schema / properties / variables / description
        Previous value: -"Demo credentials, e.g. [{name: \"USERNAME\", value: \"demo@example.com\"}, {name: \"PASSWORD\", value: \"…\"}]. Stored encrypted; referenced in guides as {USERNAME}."New value: +"Demo credentials, e.g. [{name: \"USERNAME\", value: \"demo@example.com\"}, {name: \"PASSWORD\", value: \"…\"}], referenced in guides as {USERNAME}. Stored encrypted and never returned by any tool. A value passed here goes through the conversation; to keep it out of chat, leave variables out and set them on the project's page in the Screen Browser dashboard."
      • changedInput schema / properties / variables / items / properties / value / description
        Previous value: -"Stored encrypted; typed by the recorder, never shown to a model."New value: +"Stored encrypted, typed only by the recorder and never returned by any tool."
    • Changedput_variables1 field changed
      • changedInput schema / properties / variables / items / properties / value / description
        Previous value: -"The value to store encrypted; typed by the recorder, never shown to a model."New value: +"The value to store encrypted; typed only by the recorder and never returned by any tool."
  2. 1 tool update
    • Changedget_run2 fields changed
      • addedOutput schema / properties / warnings
        Added value: +{
        +  "description": "Things that stayed on top of the page during the walkthrough; fix the guide and run again.",
        +  "items": {
        +    "properties": {
        +      "code": {
        +        "description": "page_furniture",
        +        "type": "string"
        +      },
        +      "kind": {
        +        "enum": [
        +          "cookie_banner",
        +          "chat_widget",
        +          "dialog"
        +        ],
        +        "type": "string"
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "suggestion": {
        +        "description": "The guide line to add, e.g. If visible, click \"Accept all\".",
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "when": {
        +        "description": "Seen from the first frame, or still there at the end.",
        +        "enum": [
        +          "start",
        +          "end"
        +        ],
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "code",
        +      "kind",
        +      "when",
        +      "message"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "run_id",
        -  "project_id",
        -  "state",
        -  "mode",
        -  "phase",
        -  "phase_note",
        -  "is_terminal",
        -  "attempt",
        -  "credits_so_far",
        -  "output_label",
        -  "activity",
        -  "artifacts"
        -]New value: +[
        +  "run_id",
        +  "project_id",
        +  "state",
        +  "mode",
        +  "phase",
        +  "phase_note",
        +  "is_terminal",
        +  "attempt",
        +  "credits_so_far",
        +  "output_label",
        +  "activity",
        +  "warnings",
        +  "artifacts"
        +]
  3. 14 tool updates
    • First observedcancel_run
    • First observedcreate_project
    • First observedget_credits
    • First observedget_run
    • First observedlist_projects
    • First observedlist_runs
    • First observedlist_voices
    • First observedput_guide
    • First observedput_variables
    • First observedreport_run_failure
    • First observedstart_run
    • First observedtop_up
    • First observedupdate_project
    • First observedvalidate_guide

Publisher details

Operator
Screen Browser · Publisher source
Vendor relationship
First-party · Publisher source
Trust center
Not available
Restrictions
Requires a Screen Browser account on a paid plan (from $49/month, no free plan). Sign-in is OAuth 2.1 with dynamic client registration; no custom OAuth app or admin approval needed. No regional limits. · Publisher source

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.