Skip to main content
Glama
xav-ie

Browser Session MCP

set_stealth

Idempotent

Toggle stealth for a browser session to pass CDP-based bot gates during navigation; disable afterward to restore console capture and page-global evaluation.

Instructions

Toggle stealth for a session. enabled: true disables the CDP Runtime domain (removes the Runtime.enable automation tell that anti-bot systems like Cloudflare detect) — load/navigate pages in this mode to pass CDP-based bot gates; the cost is no console capture and evaluate runs in an isolated world (can't read page globals like window.dataLayer). enabled: false re-enables Runtime: console capture + main-world evaluate (reads page globals) return, but the CDP tell is present. Typical flow: set_stealth(true) → navigate → set_stealth(false) → evaluate. Leave it off for sites without bot detection.

Input Schema

NameRequiredDescriptionDefault
enabledYestrue turns stealth on, false turns it off.
sessionIdYesThe id returned by open_browser_session. Errors if no open session has it.

Output Schema

NameRequiredDescriptionDefault
stealthYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.1.5
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "https://json-schema.org/draft/2020-12/schema",
      +  "properties": {
      +    "stealth": {
      +      "type": "boolean"
      +    }
      +  },
      +  "required": [
      +    "stealth"
      +  ],
      +  "type": "object"
      +}
  2. Changed2 schema fields changed
    • addedInput schema / properties / enabled / description
      Added value: +"true turns stealth on, false turns it off."
    • addedInput schema / properties / sessionId / description
      Added value: +"The id returned by open_browser_session. Errors if no open session has it."
  3. First observedv0.1.2

TDQS

A4.9/5.0
Behavior5/5

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

Goes well past the annotations by naming the concrete costs of each mode: no console capture and an isolated-world `evaluate` that cannot read window globals while on; restoration of console capture and main-world access while off. It also explains why the tradeoff exists (Runtime.enable is an automation tell Cloudflare detects), which annotations cannot convey.

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?

Front-loaded with a one-line purpose, then the true-case, then the false-case, then the typical flow. Dense but every sentence carries unique operational information; nothing is repeated from the schema.

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?

Output schema exists, so return values need no explanation, and the mode tradeoffs and error condition (session must be open) are covered. Minor gaps: it never says whether stealth persists across navigations or how to verify current state (get_stealth), leaving the agent to guess on state inspection.

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

Parameters5/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds substantial meaning beyond "true turns stealth on": it explains the downstream consequences of each boolean value on console capture and `evaluate` scope. That is genuine semantics the schema does not carry.

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?

"Toggle stealth for a session" gives a specific verb (toggle) and resource (session stealth), and the body spells out exactly what the tool changes: the CDP Runtime domain. The mechanics make it unmistakable from the read-only get_stealth sibling, even though that name is never mentioned.

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?

Gives an explicit recipe ("set_stealth(true) → navigate → set_stealth(false) → evaluate") plus an explicit when-not ("Leave it off for sites without bot detection"). An agent knows both the sequence and the exclusion without inference.

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