Skip to main content
Glama
sa2web

sa2web-mcp

by sa2web

# SA2WEB MCP

Languages: English | 中文 | 日本語 | Français | Español | Русский

This project exposes a DOM-based remote browser as MCP tools through Playwright.

The remote browser shell renders the target website inside iframe#rbi-frame. browser_snapshot always starts from that iframe and recursively includes descendant iframe nodes. DOM tools such as browser_extract_text, browser_click, browser_type, and browser_wait operate inside that iframe tree by default.

For agents, the recommended path is intentionally small:

sa2_help
  -> sa2_list_available_targets   # only when opening saved SaaS/workspace/inner sites
  -> sa2_open_target
  -> browser_snapshot or browser_extract_text
  -> browser_click / browser_type / browser_press / browser_wait

Use sa2_open_target directly for arbitrary public websites:

{
  "type": "cloud",
  "url": "https://example.com"
}

Use sa2_list_available_targets first for saved SaaS, workspace, and inner-site entries. It returns stable targetId values such as saas:12, workspace:34, and inner:56; pass one of those to sa2_open_target.

The lower-level browser_* list/enter/navigate tools are still available for compatibility and advanced control, but normal agents should prefer the sa2_* tools above.

browser_navigate opens target URLs through cloud browsing. The remote browser origin is inferred from SA2_LOGIN_URL.

So browser_navigate({ "url": "https://example.com" }) opens:

https://www.test7878.com/?surf=direct&_d=https%3A%2F%2Fexample.com

Install

After the package is published to npm, normal users can install it globally so sa2, sa2-browser, and sa2-mcp are available on PATH:

npm install -g @sa2web/mcp
npx playwright install chromium --with-deps

If you are installing from a local checkout instead of npm, build first and then install the current folder globally:

npm install
npx playwright install chromium --with-deps
npm run build
npm install -g .

Plain npm install only installs dependencies for the current checkout; it does not put this package's own commands on your global PATH. For development, npm link is also fine after npm run build.

Related MCP server: Playwright MCP

Run

npm start

Development mode:

npm run dev

CLI:

npm run build
npm run cli -- help
npm run cli -- shell
npm run cli -- targets
npm run cli -- open https://example.com
npm run cli -- open --target-id workspace:123
npm run cli -- open workspace 123
npm run cli -- saas GitHub
npm run cli -- inner 7
npm run cli -- snapshot --url https://example.com --headless true
npm run cli -- snapshot --url https://example.com --filter 'main article'
npm run cli -- click --url https://example.com --ref e3
npm run cli -- type --url https://example.com --selector '#email' --text hello@example.com

After global install or link, the package exposes sa2 and sa2-browser CLI commands, plus sa2-mcp for MCP clients. The CLI starts the MCP server over stdio internally and supports shell, open, targets, saved-target shortcuts (workspace, saas, inner), snapshot, text, click, type, paste, scroll, device, press, wait, screenshot, back, forward, reload, close, and raw tool commands. Use sa2 shell for a persistent browser session. Single-command invocations still start their own server process and close it when the command finishes, so pass --url, --target-id, or another target selector for commands that need page state. If no target is provided, the CLI opens SA2_LOGIN_URL.

Inside sa2 shell, refs from snapshot stay available for later commands:

sa2> open https://example.com
sa2> targets
sa2> open --target-id workspace:123
sa2> open saas GitHub
sa2> inner 7
sa2> snapshot
sa2> click --ref e3
sa2> type --selector '#email' --text hello@example.com
sa2> screenshot --output page.png
sa2> exit

MCP Client Config

The repository includes .mcp.json for local development. MCP clients can run sa2-mcp only after the package is globally installed or linked:

npm install
npm run build
npm install -g .

Use npm link instead of npm install -g . if you want changes in the checkout to be reflected immediately during development.

The important values are:

{
  "SA2_LOGIN_URL": "https://www.test7878.com/agent/login?clientId=...&clientSecret=...",
  "SA2_LOGIN_REDIRECT_PATH": "/app/login",
  "SA2_LOGIN_REDIRECT_WAIT_MS": "8000",
  "SA2_RBI_FRAME_SELECTOR": "#rbi-frame",
  "SA2_RBI_FRAME_WAIT_MS": "5000",
  "SA2_RBI_FRAME_CONTENT_WAIT_MS": "15000",
  "SA2_AUTO_LOGIN_BEFORE_NAVIGATE": "true",
  "SA2_LOGIN_SETTLE_MS": "1500",
  "SA2_IGNORE_HTTPS_ERRORS": "true",
  "SA2_LOG_LEVEL": "info",
  "SA2_LOG_STDERR": "true",
  "SA2_LOG_FILE": "/tmp/sa2-browser.log"
}

Logging uses a log4js-style timestamp, level, and category layout. Levels are trace, debug, info, warn, error, fatal, and off. Logs go to stderr by default because stdout is reserved for the MCP stdio protocol; SA2_LOG_FILE optionally appends the same redacted logs to a file. URL secrets, tokens, passwords, cookies, and authorization values are redacted.

For real use, keep clientSecret outside source control and inject it through your MCP client's environment configuration.

Different AI clients use different MCP config shapes. Ready-to-copy templates are available in configs/README.md, including Claude Desktop, Claude Code, Cursor, Windsurf, VS Code Copilot, Cline, Roo Code, opencode, Gemini CLI, and Zed.

Tools

Recommended high-level tools:

  • sa2_help: return the intended agent workflow and examples.

  • sa2_list_available_targets: list proxy options plus all saved SaaS, workspace, and inner-site targets with stable targetId values.

  • sa2_open_target: open any target. Use { "type": "cloud", "url": "https://example.com" } for public websites, or { "targetId": "workspace:34" } for saved targets.

Page inspection and interaction tools:

  • browser_snapshot: return a flat semantic snapshot for models with interactable refs, readable text ids, media elements, descendant iframes, hidden raw URLs, and compact context=[t1,t2] references for controls. Optional filter accepts a CSS selector; omit it for the default full snapshot. Use ref=eN values for actions. id=tN and context=[tN] are snapshot-only text references, not DOM ids, CSS selectors, or actionable refs.

  • browser_extract_text: return visible page text from the iframe tree. Its optional selector must be a real CSS selector; do not pass snapshot text ids such as t7, #t7, or text[id='t7'].

  • browser_click: click by snapshot ref, selector, role/name, text, or x/y coordinates.

  • browser_type: type/fill by snapshot ref, selector, role/name, or currently focused element, preserving multiline textarea and contenteditable input.

  • browser_press / browser_press_key: press a keyboard key.

  • browser_wait: wait for milliseconds, text, selector, or URL substring.

  • browser_hover / browser_drag: mouse hover and drag.

  • browser_fill_form / browser_select_option / browser_check / browser_uncheck: form operations.

  • browser_file_upload: upload files through file inputs.

  • browser_paste: paste plain text, HTML, RTF, and local files (including images) through clipboard data; file inputs use setInputFiles directly.

  • browser_scroll: scroll the root page or an element by direction/distance, to coordinates or edges, or bring a ref/selector target into view.

  • browser_list_devices: list every Playwright device preset accepted by device emulation.

  • browser_toggle_device: toggle desktop/mobile emulation using Playwright device presets and Chromium CDP without recreating the browser context.

  • browser_handle_dialog: accept or dismiss alert/confirm/prompt dialogs.

  • browser_navigate_back / browser_navigate_forward / browser_reload: click the shell buttons #btn-back, #btn-forward, and #btn-reload.

  • browser_screenshot / browser_take_screenshot: return a PNG screenshot.

  • browser_resize: resize the viewport.

  • browser_evaluate / browser_run_code: run debugging code against iframe#rbi-frame.

  • browser_close: close the browser session.

Advanced compatibility tools:

  • browser_open_login: open SA2_LOGIN_URL.

  • browser_list_proxies: list cloud browsing proxy options from /api/v1/home/freebrowse.

  • browser_navigate: open a target URL through cloud browsing; optional surf is validated against /api/v1/home/freebrowse.

  • browser_list_saas_sites / browser_enter_saas_site: list and enter SaaS sites.

  • browser_list_workspaces / browser_enter_workspace: list workspace accounts and enter an account-level workspace.

  • browser_list_inner_sites / browser_enter_inner_site: list and enter internal sites.

Agent usage

See docs/AGENT_USAGE.md for detailed instructions on connecting this MCP server to an AI agent, recommended tool workflows, publishing safeguards, and troubleshooting.

For opencode-specific setup notes, see docs/OPENCODE_USAGE.md.

Manual test

npm run build
npm run manual-test -- https://example.com

Keep the browser open while debugging:

npm run manual-test -- https://example.com --keep-open

Available Tools

19 tools
browser_checkB

Check a checkbox or radio by ref, selector, role/name, or text.

ParametersJSON Schema
NameRequiredDescriptionDefault
refNo
nameNo
roleNo
textNo
selectorNo

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavior. It only states the action, omitting details like whether it waits for the element, scrolls into view, toggles vs ensures checked, or handles errors.

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 concise sentence, front-loading the action and target. However, it lacks structure (e.g., separating parameter explanations) that would improve clarity without added length.

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

Completeness2/5

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

For a tool with 5 parameters, no output schema, and no annotations, the description is incomplete. It does not address return values, error messages, or behavior when no parameter is provided.

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

Parameters2/5

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

With 0% schema description coverage, the description should explain the five parameters. It barely lists them by name but provides no details on usage, defaults, or interactions (e.g., whether multiple can be used together). The enum for 'role' is in the schema but not mentioned.

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 action (check) and the target resource (checkbox or radio), and lists multiple identification methods (ref, selector, role/name, text). This distinguishes it from sibling tools like browser_uncheck or browser_select_option.

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 usage for checking checkbox/radio elements, but provides no explicit guidance on when to use this tool versus alternatives (e.g., browser_uncheck) or when not to use it.

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

browser_closeB

Close the current Playwright browser session.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior2/5

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

The description merely states 'close' without detailing implications (e.g., whether the browser process exits, if unsaved work is discarded, or prerequisites). With no annotations, the description carries the full burden but fails to disclose side effects or required state.

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 extremely concise with a single sentence. It earns its place, but could include more nuance without becoming verbose.

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

Completeness3/5

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

The tool is simple with no parameters and no output schema, so the description is adequate for basic understanding. However, it lacks behavioral details and usage context, feeling incomplete for a tool that terminates a session.

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 no parameter documentation is needed. The description adds no extra information beyond the schema, but the baseline for zero parameters is 4.

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 action ('close') and the resource ('current Playwright browser session'), using a specific verb+noun pair that distinguishes it from sibling tools which perform other browser actions.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., closing a specific page vs. the whole session). The description does not provide context for invocation.

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

browser_file_uploadC

Upload files through a file input by ref or selector.

ParametersJSON Schema
NameRequiredDescriptionDefault
refNo
pathNo
pathsNo
selectorNo

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations provided, the description must fully disclose behavior. It only states what the tool does, but omits critical details such as file size limits, permissions needed, side effects (e.g., overwriting existing files), or return behavior. This leaves the agent guessing.

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 extremely concise at one sentence with no extraneous words. It is front-loaded with the verb and resource. However, it could include more information without losing conciseness, such as parameter roles.

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

Completeness2/5

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

Given the tool has 4 parameters, no output schema, and 0% schema coverage, the description is insufficient. It does not explain parameter interactions, required fields (none are required but that is only in schema), or any constraints. The agent lacks enough context to use this tool reliably.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It mentions 'ref or selector' but does not explain the 'path' and 'paths' parameters, nor does it clarify how these parameters relate to each other (e.g., mutual exclusivity, required combinations). The agent cannot infer proper usage beyond the names.

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?

The description clearly states the action ('Upload files') and the target ('a file input'), and mentions two methods ('by ref or selector'). It distinguishes itself from sibling tools like browser_fill_form and browser_paste, which handle different operations. However, it lacks specificity on what 'ref' and 'selector' mean exactly.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or constraints. Sibling tools like browser_fill_form or browser_check could be confused for similar actions, but no differentiation is given.

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

browser_fill_formB

Fill multiple form fields at once.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsYes

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations provided, the description bears full responsibility for behavioral disclosure. It fails to mention key traits like whether existing field values are cleared, if missing fields cause errors, or if form submission occurs. This leaves significant uncertainty.

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 extremely concise (one sentence) and front-loaded with the core action. However, it sacrifices essential details, making it too brief for practical use. A little more structure (e.g., brief parameter hints) would improve clarity.

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

Completeness2/5

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

Given the tool's complexity (nested array parameter, no annotations, no output schema), the description is insufficient. It provides no information on success/failure behavior, error handling, or return format, leaving the agent without critical context for robust invocation.

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

Parameters2/5

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

The input schema defines a complex 'fields' array with multiple identification properties (ref, name, role, text, selector) and required 'value'. The description offers no explanations for these fields, leaving the agent to infer how to target form elements despite 0% schema description coverage.

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 'Fill multiple form fields at once' clearly states the action (fill) and resource (form fields), specifying it handles multiple fields simultaneously. This distinguishes it from sibling tools like browser_check (single checkbox) or browser_select_option (single dropdown).

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 use for batch form filling, and sibling tool names suggest alternatives for individual interactions. However, no explicit guidance on when to use or avoid this tool is provided, leaving some ambiguity.

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

browser_handle_dialogC

Accept or dismiss the current JavaScript dialog.

ParametersJSON Schema
NameRequiredDescriptionDefault
acceptNo
timeoutMsNo
promptTextNo

TDQS

C2.4/5.0
Behavior2/5

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

No annotations exist, so the description must fully explain behavior. It only says 'accept or dismiss' without detailing how each parameter (accept, timeoutMs, promptText) affects behavior, what happens on timeout, or error conditions.

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

Conciseness3/5

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

The description is extremely concise (one sentence), which is efficient, but it is underspecified. A slightly longer description with parameter details would improve usability without sacrificing conciseness.

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

Completeness2/5

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

For a tool with three optional parameters and no output schema, the description should explain each parameter's role and the tool's overall behavior. It fails to do so, leaving significant gaps for the agent.

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

Parameters1/5

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

Schema description coverage is 0%, and the description adds no information about the three parameters. The agent must infer meaning solely from parameter names (accept, timeoutMs, promptText), which is insufficient for correct invocation.

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?

The description clearly states the tool handles JavaScript dialogs with accept or dismiss actions, distinguishing it from other browser tools like navigate or fill form. However, it could specify dialog types (alert, confirm, prompt) for greater precision.

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

Usage Guidelines2/5

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

No usage guidance is provided. The description does not indicate when to use this tool versus other sibling tools, nor does it mention prerequisites like ensuring a dialog is present.

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

browser_list_devicesA

List all Playwright device presets available to browser_toggle_device. Returns each preset's viewport, screen, device scale factor, touch/mobile flags, and default browser type. Desktop is included as the restore target.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

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

Describes return content and mentions desktop as restore target, but no annotations exist and description is minimal on behavioral aspects.

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 focused sentences, front-loaded with primary action, no wasted words.

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?

Fully covers the tool's purpose and outputs with no parameters, no output schema needed given simplicity.

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?

No parameters; baseline 4 is appropriate as description adds no param info beyond empty schema.

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?

Clearly states it lists Playwright device presets, specifies what each preset returns, and distinguishes from sibling browser_toggle_device.

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?

Implies usage as companion to browser_toggle_device but lacks explicit when-to-use or exclusions.

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

browser_navigateA

Advanced compatibility tool. Navigate to a public URL through cloud browsing. Prefer sa2_open_target with type=cloud for simpler agent behavior.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe target website URL to open through the remote browser.
surfNoOptional proxy name from /api/v1/home/freebrowse proxies. Defaults to direct.
waitUntilNodomcontentloaded

TDQS

A4/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden of behavioral transparency. It labels itself as 'Advanced compatibility tool' but does not disclose specific behaviors such as error handling, authentication requirements, or what happens after navigation. Minimal behavioral context beyond the basic action.

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 wasted words. The first sentence states the purpose, and the second provides usage guidance. Efficient and front-loaded.

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?

Given the three parameters, no output schema, and no annotations, the description covers the essential purpose and provides an important usage hint about an alternative. However, it does not describe what happens after navigation (e.g., page load behavior) which could be relevant for an agent. Sufficient but not exhaustive.

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 67% (2 out of 3 parameters have descriptions). The tool description adds no additional meaning beyond what the schema already provides. Baseline is 3 because schema does the heavy lifting; no extra value added.

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?

Clearly states it navigates to a public URL via cloud browsing. Distinguishes itself by specifying a preferred alternative (sa2_open_target with type=cloud) for simpler agent behavior, which differentiates it from sibling tools like browser_navigate_back or browser_reload.

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

Usage Guidelines5/5

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

Explicitly tells when to use an alternative tool: 'Prefer sa2_open_target with type=cloud for simpler agent behavior.' This provides clear guidance on when not to use browser_navigate.

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

browser_navigate_backA

Go back by clicking the remote browser toolbar button #btn-back.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description must carry the behavioral burden. It explains the mechanism (clicking a button) but does not disclose what happens if already at the first page or potential errors. Adequate for a simple action.

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?

Single sentence with clear verb and target, no wasted words.

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 zero-parameter, no-output tool, the description covers the primary action and UI target. Missing details like edge cases (already at start) but otherwise sufficient.

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?

No parameters exist, so baseline is 4. The description correctly implies no inputs are needed, adding no further 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 clearly states the action ('go back') and the specific UI element ('#btn-back'), distinguishing it from sibling tools like browser_navigate_forward or browser_navigate.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., browser_navigate for URL-based back), nor any mention of prerequisites or context.

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

browser_navigate_forwardA

Go forward by clicking the remote browser toolbar button #btn-forward.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It discloses the action of clicking a specific button, but lacks details on behavior like whether it waits for page load or fails if no forward history.

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?

Single sentence, no wasted words. The description is efficiently front-loaded.

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?

Given zero parameters and no output schema, the description is largely complete. It explains the action and mechanism, though it could note preconditions (e.g., forward history exists).

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?

There are zero parameters, and schema coverage is 100%. The description adds no parameter info, but with no parameters, the baseline for 0 params is 4.

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 specifies the action ('go forward') and the mechanism ('clicking the remote browser toolbar button #btn-forward'). It distinguishes from siblings like browser_navigate_back (go back) and browser_navigate (go to URL).

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?

No explicit guidance on when to use or when not to use. The usage is implied from context (browser navigation), but no alternatives or exclusions are mentioned.

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

browser_open_loginA

Advanced compatibility tool. Open the configured remote browser login URL from SA2_LOGIN_URL; most agents should prefer sa2_open_target, which logs in automatically.

ParametersJSON Schema
NameRequiredDescriptionDefault
waitUntilNodomcontentloaded

TDQS

A4.1/5.0
Behavior3/5

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

No annotations provided; description mentions it's an 'advanced compatibility tool' and opens a URL, but does not disclose potential side effects, state changes, or prerequisites beyond the env variable.

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 that efficiently convey purpose and usage guidance without wasted words.

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?

Given the simple nature (open a URL) and no output schema, the description covers the core intent and alternative, though it omits explicit mention of return value or confirmation that the action is safe.

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

Parameters2/5

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

The only parameter (waitUntil) is documented in the schema with enum and default but the description adds no explanation of its meaning or impact, and schema coverage is 0%.

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?

Clearly states it opens the remote browser login URL and distinguishes from the preferred alternative sa2_open_target.

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

Usage Guidelines5/5

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

Explicitly advises most agents to use sa2_open_target instead, reserving this tool for advanced compatibility scenarios.

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

browser_pasteA

Paste clipboard-style text and/or files into a target by snapshot ref, selector, or role/name. Supports text/plain, text/html, text/rtf, and local file paths such as images. If no target is provided, the focused editable element is used, then the root document body.

ParametersJSON Schema
NameRequiredDescriptionDefault
refNo
rtfNoOptional text/rtf clipboard content.
htmlNoOptional text/html clipboard content.
nameNo
pathNoSingle local file path convenience alias.
roleNo
textNoOptional text/plain clipboard content.
pathsNoOptional local file paths to add to clipboardData.files.
selectorNo

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It covers targeting logic and supported content types, but does not explain whether pasting replaces or appends content, error behavior, or permission requirements. This is sufficient but not thorough.

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 two sentences, front-loaded with the core action and supported content types, followed by fallback behavior. No redundant words; every sentence earns its place.

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

Completeness3/5

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

Given no output schema and moderate complexity (9 parameters), the description covers main use cases and fallback but omits return value, error handling, and clarification of whether pasting appends or replaces content. It is adequate but not fully self-contained.

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 description explains the role of key parameters (ref, selector, role, name as targeting mechanisms) and lists supported content types, adding meaning beyond the input schema. Schema coverage is 56%, so the description compensates for undocumented parameters like ref and selector.

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?

The description clearly states the tool pastes clipboard-style text and/or files into a target, specifying supported content types. It is distinct from sibling tools like browser_file_upload or browser_fill_form, but does not explicitly differentiate itself, which keeps it from a 5.

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 explains fallback target behavior (focused element then document body), providing some usage context. However, it lacks explicit guidance on when not to use this tool or mention of alternatives among siblings, such as browser_file_upload for file inputs.

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

browser_reloadA

Reload by clicking the remote browser toolbar button #btn-reload.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior2/5

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

No annotations provided; the description only mentions clicking a button without disclosing side effects (e.g., data loss on forms). Minimal transparency.

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?

Single sentence with no unnecessary words; efficiently communicates the action and mechanism.

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

Completeness3/5

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

Sufficient for a simple action but lacks details on resulting page state or potential post-action wait. Minimal but adequate given no output schema.

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?

No parameters exist; schema coverage is 100% by absence. Baseline score of 4 applies for zero-parameter tools.

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 action ('Reload') and the resource ('remote browser'), and distinguishes from sibling navigation tools like browser_navigate_forward and browser_navigate_back.

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?

No explicit guidance on when to use this tool versus alternatives. Usage is implied but not described.

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

browser_resizeC

Resize the browser viewport.

ParametersJSON Schema
NameRequiredDescriptionDefault
widthYes
heightYes

TDQS

C2.6/5.0
Behavior1/5

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

No annotations provided, and the description does not disclose any behavioral traits or side effects (e.g., triggers resize event, may affect layout).

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?

A single, front-loaded sentence that states the core action, but could be enhanced with additional context without significant bloat.

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

Completeness2/5

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

No output schema and no description of return value or behavior after resize. For a tool with no annotations, this is insufficient.

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

Parameters1/5

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

The description does not explain the meaning of width and height parameters (units, pixel interpretation), despite 0% schema coverage. Relies entirely on schema's implicit integer constraints.

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 ('Resize') and resource ('browser viewport'), clearly distinguishing it from sibling tools like browser_screenshot or browser_navigate.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., when to resize vs take screenshot). The description is purely functional.

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

browser_run_codeC

Run an async JavaScript snippet with Playwright page and iframe#rbi-frame helpers.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes

TDQS

C2.9/5.0
Behavior2/5

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

Given no annotations, the description must fully disclose behavioral traits. It mentions the snippet is async and uses page and iframe helpers but omits critical details: return values, error propagation, timeouts, side effects on page state, and security implications. This is insufficient for a powerful code execution tool.

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 concise sentence that front-loads the core purpose. Every word adds value: 'Run', 'async JavaScript snippet', 'with Playwright page and iframe#rbi-frame helpers'. No redundant or unnecessary text.

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

Completeness2/5

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

For a tool that executes arbitrary code, the description is too brief. It fails to explain important aspects like what the snippet can access, whether there is a return value, how errors are handled, or any limitations. With no output schema and no annotations, the agent lacks essential information to use the tool correctly and safely.

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?

With 0% schema coverage, the description adds some meaning by specifying the code is an 'async JavaScript snippet'. However, it does not clarify whether the code expects specific variables (e.g., page), any constraints (e.g., not to use require), or how to reference the helpers. The description partially compensates but lacks depth.

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?

The description clearly states the tool runs an async JavaScript snippet with Playwright page and helpers, distinguishing it from sibling browser tools focused on navigation, selection, and other interactions. It uses a specific verb and resource, though 'helpers' could be elaborated.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. For instance, there is no mention of scenarios where executing JavaScript is preferable to using other browser tools like fill_form or click. This lack of context limits effective tool selection.

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

browser_screenshotC

Take a PNG screenshot of the current page.

ParametersJSON Schema
NameRequiredDescriptionDefault
fullPageNo

TDQS

C2.2/5.0
Behavior2/5

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

No annotations provided. Description only states a read operation is performed, but does not disclose any behavioral traits such as side effects, permissions, or limitations.

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

Conciseness3/5

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

Single sentence is concise but fails to provide necessary information. It could earn its place by including parameter or usage details.

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

Completeness2/5

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

With only one parameter, no output schema, no annotations, and a confusing sibling name, the description is insufficient. It does not explain what happens with the screenshot or how 'fullPage' affects behavior.

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

Parameters1/5

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

Parameter 'fullPage' has 0% schema description coverage and is not mentioned in the description. The description adds no meaning beyond the raw schema.

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

Purpose3/5

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

Description states verb 'Take' and resource 'PNG screenshot of current page', but is ambiguous due to sibling tool 'browser_take_screenshot' with nearly identical name. Does not differentiate between them.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like 'browser_take_screenshot'. Lacks any usage context or exclusions.

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

browser_select_optionC

Select dropdown option values by ref or selector.

ParametersJSON Schema
NameRequiredDescriptionDefault
refNo
indexNo
labelNo
valueNo
valuesNo
selectorNo

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description should fully disclose behavioral traits. It only states that the tool selects dropdown options, but does not mention behavior for multi-select, error handling (e.g., missing option), or whether it has side effects like custom events. Significant gaps remain.

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

Conciseness2/5

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

While extremely short, the description is underspecified for a tool with six parameters. Conciseness is not a virtue here as critical information is omitted. A more structured description with parameter hints or usage patterns would be appropriate.

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

Completeness1/5

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

Given the complexity (six parameters, no output schema, no annotations), the description is severely incomplete. It does not explain parameter interactions, multiple ways to specify the option, or what the tool returns or fails on. It leaves the agent guessing.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must add meaning to the six parameters. It only mentions 'ref' and 'selector', leaving 'index', 'label', 'value', and 'values' unexplained. The agent cannot infer how to properly combine or prioritize these parameters.

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?

The description clearly states the action ('Select') and resource ('dropdown option values'), and mentions the methods 'by ref or selector'. It distinguishes the tool from siblings like browser_fill_form which handles input fields. However, it does not explicitly call out when to prefer this over other tools.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool versus alternatives like browser_fill_form or browser_check. The description lacks any context about specific use cases, prerequisites, or exclusions.

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

browser_take_screenshotC

Take a PNG screenshot of the current page.

ParametersJSON Schema
NameRequiredDescriptionDefault
fullPageNo

TDQS

C2.4/5.0
Behavior2/5

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

No annotations exist, so the description must carry behavioral disclosure. It fails to mention default behavior (fullPage true), output format, or any side effects. The agent cannot infer what happens beyond taking a screenshot.

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

Conciseness3/5

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

The description is very concise but sacrifices necessary details. It should at least mention the parameter's effect and output type.

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

Completeness2/5

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

Without output schema or annotations, the description should explain return value and behavior. The current text is insufficient for an agent to use the tool reliably.

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

Parameters1/5

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

The sole parameter 'fullPage' has no schema description (0% coverage) and the tool description does not explain its meaning. Agents must guess that it controls whether to capture the full page or viewport.

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?

The description clearly states the tool takes a PNG screenshot of the current page. However, it does not distinguish itself from sibling 'browser_screenshot', which may cause confusion.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs 'browser_screenshot' or other tools. No prerequisites or context provided.

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

browser_toggle_deviceA

Toggle the current browser page between desktop and mobile device emulation without recreating the browser context. Uses Playwright device descriptors and Chromium CDP for dynamic mobile metrics, touch, device scale factor, orientation, and user agent. On Firefox/WebKit only viewport resizing is available. Omit enabled to toggle the current state.

ParametersJSON Schema
NameRequiredDescriptionDefault
widthNo
deviceNoPlaywright device name such as Pixel 7, iPhone 13, or iPad Mini. Desktop disables emulation.
heightNo
reloadNoReload after applying emulation so subsequent requests use the new user agent.
enabledNoEnable mobile emulation when true, restore desktop mode when false. Omit to toggle.
hasTouchNo
userAgentNo
orientationNo
deviceScaleFactorNo

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description provides good transparency by explaining that the tool preserves the browser context, uses Playwright device descriptors and CDP on Chromium, and has limited functionality (viewport only) on Firefox/WebKit.

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 concise with three front-loaded sentences, each providing essential information without redundancy.

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

Completeness3/5

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

While the description covers core functionality and limitations, it does not explain the interplay between parameters (e.g., when custom width/height override device presets) or the return value, leaving some gaps given the tool's complexity.

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 description adds meaning to many parameters not covered by the schema descriptions (e.g., device, hasTouch, orientation, userAgent, and the behavior of omitting 'enabled'), compensating for the low 33% schema description coverage.

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 action ('Toggle') and the resource ('device emulation'), differentiating it from sibling tools like browser_resize by emphasizing that it toggles between desktop and mobile without recreating the context.

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 usage for switching emulation modes and notes browser-specific limitations, but does not explicitly state when to use this tool versus alternatives like browser_resize or browser_list_devices.

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

browser_uncheckB

Uncheck a checkbox by ref, selector, role/name, or text.

ParametersJSON Schema
NameRequiredDescriptionDefault
refNo
nameNo
roleNo
textNo
selectorNo

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are present, so the description bears the full burden. It fails to disclose behavior when the checkbox is already unchecked, error conditions, or required page state. This is a significant gap for a mutation tool.

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 that front-loads the verb and resource, and lists all locator strategies concisely with no wasted words.

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

Completeness3/5

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

For a simple checkbox uncheck operation, the description is adequate but lacks details on error handling, side effects, or prerequisites. No output schema exists, so the agent has no information on return values.

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?

With 0% schema description coverage, the description adds some meaning by listing the locator strategies, but it doesn't explain how they work together, if they are exclusive, or the specifics of each (e.g., that 'role' only allows 'checkbox').

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 action 'uncheck' and the resource 'checkbox', and lists multiple locator strategies (ref, selector, role/name, text), making the purpose unambiguous and distinguishing it from sibling tools like browser_check.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like browser_check, nor any prerequisites or context for using the different locator strategies.

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. Dates show when Glama detected each change.

  1. 19 tool updatesv1.0.3
    • First observedbrowser_check
    • First observedbrowser_close
    • First observedbrowser_file_upload
    • First observedbrowser_fill_form
    • First observedbrowser_handle_dialog
    • First observedbrowser_list_devices
    • First observedbrowser_navigate
    • First observedbrowser_navigate_back
    • First observedbrowser_navigate_forward
    • First observedbrowser_open_login
    • First observedbrowser_paste
    • First observedbrowser_reload
    • First observedbrowser_resize
    • First observedbrowser_run_code
    • First observedbrowser_screenshot
    • First observedbrowser_select_option
    • First observedbrowser_take_screenshot
    • First observedbrowser_toggle_device
    • First observedbrowser_uncheck

TDQS

C2.9/5.0
Disambiguation2/5

Multiple tools have overlapping purposes: browser_screenshot and browser_take_screenshot are identical. browser_navigate and browser_open_login both navigate but with inconsistent descriptions. Additionally, browser_open_login references sa2_open_target which is not a tool, causing confusion.

Naming Consistency3/5

All tools start with 'browser_', which is consistent, but the verb patterns vary: some are verb_noun (e.g., browser_navigate_back), some are just verbs (browser_check), and there is inconsistency with browser_screenshot vs browser_take_screenshot.

Tool Count4/5

19 tools is on the higher side but still reasonable for a browser automation server. The set covers a wide range of actions, though some duplication could be eliminated.

Completeness2/5

The tool surface lacks fundamental browser actions such as clicking an element or typing text. The reliance on a non-existent sa2_open_target tool for login creates a gap. While many actions are covered, critical ones are missing.

Maintenance

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables browser automation and web scraping by exposing Playwright tools through an HTTP-based MCP server. Users can navigate pages, interact with web elements, capture screenshots, and extract structured content using a persistent Chromium instance.
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Exposes Playwright browser automation as MCP tools, enabling AI assistants to control a real browser tab-by-tab for form filling, navigation, and more, while preserving the user's active session.
    -

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sa2web/sa2web-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server