Skip to main content
Glama

browse_extract

Extract repeated rows or cards from web pages into structured JSON, optionally paginate and save results as JSON or CSV.

Instructions

Extract repeated items (rows/cards) into structured JSON, optionally paginating and saving to JSON/CSV under CAMOUFOX_MCP_FILES_DIR/exports. Use url (one-shot) or sessionId.

Input Schema

NameRequiredDescriptionDefault
osNoOptional OS to spoof. Can be 'windows', 'macos', or 'linux'. If not specified, will rotate between all OS types.
urlNoURL to extract from (one-shot). Provide exactly one of url or sessionId.
argsNoAdditional browser command-line arguments to pass to the browser. Rejected unless CAMOUFOX_MCP_ALLOW_UNSAFE_OPTIONS=1; denied args are always rejected.
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.
fieldsYesOutput columns: name -> how to read it from each item.
localeNoBrowser locale (e.g., 'en-US', 'fr-FR').
saveAsNoSave all rows to CAMOUFOX_MCP_FILES_DIR/exports/<saveAs> (.json or .csv).
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.
timeoutNoTimeout in milliseconds for page load (5-300 seconds).
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.
maxCharsNoMaximum JSON characters of rows returned inline (when not saving).
maxItemsNo
maxPagesNo
viewportNoCustom viewport dimensions.
emulationNoContext emulation for diagnosing how the page behaves under other conditions.
sessionIdNoExisting session to extract from, at its current page. Provide exactly one of url or sessionId.
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.
itemSelectorYesCSS selector of each repeated item (row/card).
nextSelectorNoCSS selector of the 'next page' control; clicked until maxPages.
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
rowsYes
countYes
pagesYes
savedPathNo
sessionIdNo
rowsTruncatedYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

A3.6/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=false, openWorldHint=true, idempotentHint=false, and destructiveHint=false, so the safety profile is largely covered. The description adds useful context that extraction can paginate and optionally save JSON/CSV under CAMOUFOX_MCP_FILES_DIR/exports. It does not add deeper behavioral details such as return shape, pagination limits, or permission requirements beyond what the schema provides.

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 brief and front-loaded: it states the core action first, then the optional pagination/saving behavior, then the url versus sessionId rule. Every sentence contributes directly to selecting and invoking the tool.

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 rich input schema and the presence of an output schema, the description covers the essential invocation context: item extraction into structured JSON, optional pagination, optional file saving, and the url/sessionId source choice. It is slightly terse for a 32-parameter tool, but the schema already documents the remaining parameters in detail.

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 94%, so nearly all parameter meaning is already supplied by the schema. The description only implies itemSelector and fields through the phrase 'repeated items (rows/cards) into structured JSON' and states the url/sessionId choice, but adds no syntax or mapping details beyond the schema.

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 states a specific verb and resource: extracting repeated items (rows/cards) into structured JSON. It also mentions pagination and saving to JSON/CSV, making the tool's purpose clear. However, it does not explicitly differentiate this tool from sibling extraction/inspection tools such as browse_snapshot or browse_inspect.

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 gives one usage rule: use url for a one-shot extraction or sessionId for an existing session. It does not explain when to choose browse_extract versus alternatives like browse_find, browse_snapshot, or browse_inspect, nor does it state exclusions or prerequisites.

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