Skip to main content
Glama

browse_screenshot

Read-only

Navigate to a URL and capture a bounded screenshot of the page, viewport, or a specific element for visual inspection.

Instructions

Navigate once and capture a bounded screenshot.

Input Schema

NameRequiredDescriptionDefault
osNoOptional OS to spoof. Can be 'windows', 'macos', or 'linux'. If not specified, will rotate between all OS types.
urlYesThe URL to navigate to. Must be a fully qualified http or https URL.
argsNoAdditional browser command-line arguments to pass to the browser. Rejected unless CAMOUFOX_MCP_ALLOW_UNSAFE_OPTIONS=1; denied args are always rejected.
typeNoScreenshot image type.png
geoipNoAutomatically detect geolocation based on IP address.
proxyNoProxy configuration for routing browser traffic through an HTTP(S) proxy. Proxy servers are checked against the same local-network URL policy as page requests.
localeNoBrowser locale (e.g., 'en-US', 'fr-FR').
windowNoSet fixed window size [width, height] instead of random generation. An empty array [] is accepted and treated as if the window parameter was not specified.
qualityNoJPEG quality from 1-100. Ignored for PNG.
timeoutNoTimeout in milliseconds for page load (5-300 seconds).
fullPageNoCapture the full page instead of only the viewport.
headlessNoRun browser in headless mode. Auto-detects best mode for environment if not specified.
humanizeNoEnable realistic cursor movements and human-like behavior for better stealth and anti-detection.
selectorNoOptional CSS selector for element-only screenshots.
viewportNoCustom viewport dimensions.
emulationNoContext emulation for diagnosing how the page behaves under other conditions.
block_webglNoBlock WebGL to prevent fingerprinting and tracking.
block_imagesNoBlock all images for faster loading, reduced bandwidth, and lightweight browsing.
block_webrtcNoBlock WebRTC entirely for enhanced privacy and stealth.
disable_coopNoDisable Cross-Origin-Opener-Policy for sites that require it.
enable_cacheNoCache pages, requests, etc. Uses more memory but improves performance when revisiting pages.
waitStrategyNoWait strategy for page load. Defaults to 'domcontentloaded'. 'load' waits for all resources, 'networkidle' waits for network activity to finish.domcontentloaded
captchaPolicyNoChallenge handling policy. 'detect' reports signals, 'pause' returns state for human action, 'fail' returns an error, 'attempt' returns enhanced challenge metadata, interactive elements, a bounded screenshot, and a suggested strategy. When CAPTCHA_AUTONOMOUS=true, responses are marked for LLM-assisted handling and include provider-specific challengePlaybook context when known.
exclude_addonsNoList of default addons to exclude (e.g., ['ublock_origin']). Rejected unless CAMOUFOX_MCP_ALLOW_UNSAFE_OPTIONS=1.
includeConsoleNoInclude bounded page console diagnostics in the JSON response.
includeNetworkNoInclude bounded network diagnostics in the JSON response.
stealthProfileNoConvenience profile for common Camoufox browser settings. Explicit options override profile values.normal
firefox_user_prefsNoCustom Firefox user preferences to set. Rejected unless CAMOUFOX_MCP_ALLOW_UNSAFE_OPTIONS=1; denied prefs are always rejected.

Output Schema

NameRequiredDescriptionDefault
urlYes
titleNo
statusNo
messageNo
screenshotYes
contentTypeNo
challengeTypeNo
captchaIframesNo
captchaDetectedNo
challengeSignalsNo
challengeHandlingNo
challengePlaybookNo
challengeProviderNo
suggestedStrategyNo
requiresUserActionNo
interactiveElementsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

C2.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=false, and destructiveHint=false, so the safety profile is covered. The description contributes only the vague term 'bounded', which is never defined, and the 'navigate once' hint that implies no reusable session is created. It says nothing about CAPTCHA handling, stealth defaults, or blocking behavior that materially change what comes back.

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?

One short, front-loaded sentence with zero filler. It is efficient, though the terseness is arguably under-specification rather than disciplined concision given the size of the surface it fronts.

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?

The tool exposes 28 parameters including proxy, emulation, stealth profiles, blocking flags, and CAPTCHA policy, plus an output schema. A single eight-word sentence leaves no guidance on how the many behavioral levers interact, what 'bounded' means for screenshot size, or how this differs from the other screenshot-capable siblings.

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 every one of the 28 parameters is documented in-schema, including the enum values, defaults, and the CAMOUFOX_MCP_ALLOW_UNSAFE_OPTIONS gate on args and exclude_addons. The description adds no parameter guidance at all, which is acceptable at full coverage but leaves it at the baseline.

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?

It names a specific verb and resource (navigate + capture screenshot) and adds the qualifier 'once', hinting at a single-shot versus session-based flow. But the sibling set is crowded with near-identical names (browse, browse_snapshot, browse_session_snapshot, browse_session_navigate) and the description does nothing to explain which is which, so an agent cannot route on the description alone.

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?

There is no statement of when to use this versus browse_snapshot or the browse_session_* family, no prerequisites, and no exclusion criteria. 'Once' is the only usage hint and it is never made explicit as 'use this for a one-off capture that does not need a persistent session'.

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