Skip to main content
Glama

Browser (debug): act

navig_browser_debug_act
Destructive

Control a NAVIG debug browser: launch or navigate pages, click, type, press keys, scroll, screenshot, switch tabs, inject scripts, evaluate JS, log in, detach, or stop.

Instructions

Act in a NAVIG-launched debug browser: launch/new/navigate/click/type/key/scroll/move/screenshot/switch, detach/stop, or evaluate/inject/login. State-changing and high-risk; injected scripts persist until removed and login fills a real credential (never returned). Use navig_browser_debug to inspect and get refs first. Returns the dispatch result; re-snapshot to verify.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
xNoViewport X coordinate; omit when clicking by accessibility ref Used by: click, move.
yNoViewport Y coordinate; omit when clicking by accessibility ref Used by: click, move.
allNoDetach from every attached tab, not just the current one Used by: detach, stop.
appNochrome|edge|brave or a path. Used by: new, launch.chrome
outNoOutput filename. Used by: screenshot.
refNoa11y ref id. Used by: click.
tabNoTab index from cdp_tabs to act on. Used by: click, type, key, switch, screenshot, login, inject.
urlNoURL to load in the attached tab Used by: navigate, click, type, key, switch, screenshot, login, inject.
portNoDebug port (auto if omitted). Used by: new, navigate, click, type, key, scroll, move, switch, screenshot, detach, stop, launch, eval, login, inject.
textNoText to type into the currently focused element Used by: type.
comboNoKey or chord to press, e.g. Enter or Control+A Used by: key.Enter
actionYesOperation to perform. Required parameters per action: new: none; navigate: url; click: none; type: text; key: combo; scroll: none; move: x, y; switch: none; screenshot: none; detach: none; stop: none; launch: app; eval: expression; login: none; inject: script. What each action does: new: Open a COMPLETELY FRESH, isolated browser (own profile + auto-allocated debug port) (required: none) | navigate: Load a URL in the attached page and wait for the load event (required: url) | click: Click a button, link, checkbox or any element in the attached page — by the accessibility ref from cdp_snapshot, or at viewport coordinates (x, y) (required: none) | type: Type text into the element that currently has focus in the attached page (required: text) | key: Press a key or chord (Enter, Control+A, Escape) in the attached page (required: combo) | scroll: Scroll the page by a wheel delta (positive delta_y = down) (required: none) | move: Move the mouse to viewport coordinates (x, y) in the attached page — this does not click (required: x, y) | switch: Make a specific open tab the active target (by tab index or url substring) (required: none) | screenshot: Screenshot the attached page (to a file, or base64 with as_base64=true) (required: none) | detach: Disconnect NAVIG's session but LEAVE the browser running (its debug port stays on) (required: none) | stop: Close a NAVIG-launched debug browser and turn its debug port off (required: none) | launch: Launch an app with a CDP debug port so it can be driven (required: app) | eval: Evaluate a JavaScript expression in the attached page and return its value (required: expression) | login: Auto-login on the attached page using a VAULTED website credential (required: none) | inject: Register a persistent userscript on the attached browser (CDP Page.addScriptToEvaluateOnNewDocument) — re-runs at document-start on every navigation, current and future pages (required: script)
buttonNoMouse button: left (default), right, or middle Used by: click.left
domainNoSite host, e.g. github.com (default: current page). Used by: login.
scriptNoUser script source to register on the attached browser Used by: inject.
delta_xNoHorizontal wheel delta: positive scrolls right Used by: scroll.
delta_yNoWheel delta: positive scrolls down Used by: scroll.
profileNoNamed persistent profile. Used by: new.
headlessNoLaunch without a visible window. Defaults to TRUE for agent calls — you have no screen, and a visible window renders blank and piles up on the operator's desktop. Set false ONLY when a human has asked to watch the browser. Used by: new, launch.
open_urlNoNavigate here first, then log in. Used by: login.
usernameNoAccount, when the site has several. Used by: login.
as_base64NoReturn base64 image data instead of writing a file Used by: screenshot.
full_pageNoCapture the whole scrollable page instead of just the viewport Used by: screenshot.
expressionNoJavaScript expression to evaluate in the page Used by: eval.
auto_submitNoSubmit the login form automatically after filling it Used by: login.
window_sizeNoPin the window/viewport to WxH, e.g. 1440x900 (deterministic, portable shots). Used by: new.
force_restartNoQuit a running instance first (destructive). Used by: launch.
user_data_dirNoOptional profile dir (browsers). Used by: launch.
allow_insecureNoAllow http (localhost/dev only). Used by: login.
load_extensionNoUnpacked extension folder(s) to load in isolation (path, or comma-separated list). Used by: new, launch.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.1.3

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare destructive=true and readOnly=false, but the description adds concrete context they don't carry: injected scripts persist until explicitly removed, and login consumes a real vaulted credential that is never returned. It also flags the whole tool as state-changing/high-risk and notes that the result is a dispatch result requiring re-snapshot to confirm. Missing only deeper detail like failure modes or per-action side effects.

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?

Front-loaded with the action list, then the risk disclosure, then the sibling routing and return/verify note; every sentence carries information. The action enumeration slightly duplicates the schema enum, but it functions as a useful triage summary rather than padding.

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?

With no output schema, the description usefully states what comes back ('the dispatch result') and how to confirm it ('re-snapshot to verify'). Combined with the risk disclosures for inject/login, an agent has enough to call it correctly, though per-action failure behavior and the destructive implications of stop/force_restart are left to 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% and the action enum embeds the required-parameter mapping and per-action semantics, so the schema does the heavy lifting. The description only restates the action groupings at a high level, adding no syntax or format detail beyond what structured data provides. 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?

States a specific verb (act) and resource (NAVIG-launched debug browser), then enumerates the action families so an agent knows the full surface covered. It explicitly distinguishes itself from the sibling navig_browser_debug, which is the inspection/refs tool, so the two can be told apart without opening schemas.

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?

Offers a clear routing rule: 'Use navig_browser_debug to inspect and get refs first,' plus a post-action rule to 're-snapshot to verify.' That is real when-to-use guidance with a named alternative. It does not, however, contrast against the other browser sibling (navig_browser_user) or say when NOT to use this high-risk path.

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