Scout docs
Scout exposes capability-owned surfaces that agent clients can make available to the agent running inside them. Runtime surfaces like browser, canvas, extension, and payment live inside one browser runtime, while platform adapters pair through their own runtime.
A browser automation environment for AI agents
Scout is a browser automation environment with capability-owned surfaces. Agent clients expose the selected surface's tools to the agent running inside the client.
Public runtime surfaces like browser, canvas, extension, and payment live inside one browser runtime, and platform adapters pair on their own boundary, so the agent only gets the capabilities the workflow actually needs.
The extension has its own app path and bundled tool surface; it is not configured as another public surface.
Each surface owns its capability boundary, endpoint, tool catalog, and runtime adapter.
The shared runtime handles auth, request identity, allowance resolution, and transport.
Agent clients or Chrome extension
Scout has two setup paths: agent clients connect to public surfaces for external workflows, and the extension app path for real-browser workflows.
IDE and CLI agents install or configure only the public surfaces their agent needs, then authenticate with OAuth or an access token.
The extension uses Scout's app flow and its own built-in tool surface for real-browser workflows.
Extension users provide an AI provider or gateway key in settings so Scout can route model requests.
Choose your path, then configure it
Start by choosing the path you are actually using. Agent clients need surface configuration and auth; the Chrome extension needs the app install and a provider key.
For Claude Code, IDE agents, or CLI harnesses, configure the browser runtime for browser, canvas, extension, or payment workflows, and add the Figma adapter only when design-file work is in scope.
For agent clients, use OAuth by default and create access tokens only for CI, scheduled jobs, and non-interactive clients.
For the Chrome extension, add the AI provider key from the model provider you want to use; do not copy runtime configs into the extension.
Verify agent connections with tool discovery before attempting longer automations.
Choose your browser path
Pick the browser context your workflow actually needs before you wire an MCP client.
Hosted browser connector
The default browser-automation path. Configure the browser MCP server in your client, authenticate, and let Scout run browser automation through that connector.
Clean connector-managed browser sessions. No extension. No existing cookies or tabs unless the workflow attaches to a chosen browser target.
IDE agents that need a standard MCP server
CI, scheduled jobs, scraping, and isolated runs
Automation that should not inherit your personal browser state
An MCP-compatible client
The public browser connector endpoint at https://mcp.scout.i.ng/browser
OAuth for normal use, or a Scout MCP token only when browser-based auth is impossible
Chrome extension app
The app path. The extension uses Scout's built-in runtime to operate your real browser with the AI provider key you supply.
Your real Chrome session via the Scout extension and Scout's app-side runtime.
Workflows that require your real logged-in browser
Using existing tabs, sessions, cookies, and extension state
Operator-style tasks where the browser should remain visible and persistent
The Scout Chrome extension
A connection to Scout's app runtime
An AI provider or gateway API key in extension settings
A workflow that explicitly benefits from existing authenticated browser state
Connector server setup
Configure the hosted browser connector, authenticate, then verify the tool catalog with a small real call.
Client
Cursor
Connect Cursor to Scout's hosted browser connector, complete browser-based OAuth, and verify the tool catalog before you start using Scout in chat.
Add the Scout browser connector entry to .cursor/mcp.json.
Save the file and let Cursor reload the MCP configuration.
Choose the Scout server when Cursor prompts to connect.
SnippetJSONCursor should open the browser sign-in flow automatically on first connect. Complete the OAuth prompt, then return to Cursor and confirm the Scout server appears under MCP tools.
Open Cursor Settings > Tools & MCP and confirm the Scout server is connected.
Ask Cursor: "List the Scout MCP tools available in this workspace."
Run a low-risk verification task such as: "Use Scout MCP tools to open example.com and snapshot main."
Access tokens
Use Scout MCP tokens only for clients and jobs that cannot complete browser-based OAuth.
When to use MCP tokens
Use browser-based OAuth for normal interactive setup. Switch to access-token authentication only when your client cannot complete the sign-in flow or when you need non-interactive automation.
Prefer OAuth discovery for local development and everyday IDE use.
Use a Scout MCP token only for CI, scheduled jobs, or MCP clients without browser-based OAuth.
Keep the token scoped to the narrowest environment you can tolerate, ideally development or staging.
Revoke the token when the integration or job no longer needs it.
CI and headless automation
For CI or headless automation, attach a Scout MCP token as the Authorization header. This keeps the transport the same while bypassing browser-based login.
Generate a Scout MCP token from the Scout account UI or token management flow.
Store it in your CI secret store instead of committing it to the repo.
Inject it into the MCP client config as a Bearer header at runtime.
Rotate or revoke it after the automation job, especially for temporary workflows.
Programmatic MCP clients
Programmatic MCP callers can also use a Scout MCP token when they cannot complete OAuth. The auth shape is the same once the request reaches Scout: a userId plus derived workerId, with tokenId included for token-based access.
Use OAuth-derived MCP tokens when you can.
Fall back to a Scout MCP token only when browser sign-in is impossible.
Keep the token in environment variables or your secret manager.
Verify the connection with listTools() before starting a long-running job.
Environment variables
Optional configuration knobs for MCP clients, BYOK provider keys, and wallet-backed payments.
MCP Token
OptionalFallback credential for CI or non-OAuth clients. Supply it as a Bearer header when your MCP client cannot complete the browser sign-in flow.
SnippetTEXTAI Provider Key (BYOK)
OptionalYour personal AI provider or gateway key for BYOK mode. Configure it in the extension settings so model usage is billed directly by the provider you choose.
SnippetTEXTWallet Private Key
OptionalSupply it as the X-Wallet-Private-Key request header on the browser MCP server. Only the payment tools (balance, pay, transfer) read it for the current request; Scout never stores it. Chrome extension users set it in extension settings instead.
Wallet Network
OptionalSupply it as the X-Wallet-Network request header on the browser MCP server. Defaults to Base Sepolia (testnet). Set to base for mainnet wallet-backed assets.
Default: base-sepolia
Security recommendations
Keep capability, identity, and browser-state boundaries explicit.
Keep AI automation away from production by default
Do not default to production data when connecting an MCP client. Prefer development or staging environments, and keep real customer data away from exploratory AI workflows whenever possible.
Review tool calls, especially after reading untrusted content
Leave manual approval enabled in your MCP client and review tool calls before execution. Prompt injection remains a real risk whenever the model can read untrusted page content and then decide what to run next.
Use the right browser path for the risk level
Prefer hosted browser connector sessions for scraping, testing, and untrusted sites. Reserve the extension path for workflows where you explicitly want your real browser cookies, sessions, and authenticated state.
Treat MCP tokens like high-value secrets
Scout MCP tokens are powerful credentials. Store them in secret managers, scope them narrowly, rotate them when workflows change, and revoke them when an integration ends.
Constrain access rather than relying on the model to behave
Reduce the available action set when possible. Install or configure only the connector MCP servers needed for the workflow, and use the shortest-lived credential that still satisfies the automation.
Quickstart snippets
Small, copyable examples for the browser connector loop.
MCP token
SnippetJSONProgrammatic client fallback
SnippetTYPESCRIPTSnapshot filtering guide
Trim the accessibility tree before extraction to cut tokens and keep the model focused.
Exclude Decorative Elements
Strip decorative elements (icons, separators, generic containers) that add tokens without useful information.
Varies by page — contributes to up to 75% combined reduction with other filters
SnippetTYPESCRIPTRole-Based Filtering
Filter the accessibility tree by ARIA roles. Remove roles that aren't relevant to your task — for example, exclude 'img' and 'separator' when extracting text content.
20–40% reduction depending on page structure
SnippetTYPESCRIPTDepth Limiting
Limit how deep the accessibility tree is traversed. Shallow depths (2–4) capture top-level navigation and headings. Deeper depths (6–8) capture interactive elements inside nested components.
Configurable — deeper pages benefit most
SnippetTYPESCRIPTElement Scoping
Scope the snapshot to a specific element using a CSS selector. Only the subtree rooted at the matched element is included. Ideal when you know the content region (e.g., 'main', '#content', 'article').
50–75% reduction when scoping to content region
SnippetTYPESCRIPTStacked Filtering
Combine multiple filters for maximum reduction. The recommended starting point for most extraction tasks: scope to main content, remove decorative nodes, and limit depth.
Up to 75% combined reduction
SnippetTYPESCRIPTRecipes
Small, copyable end-to-end recipes for common extraction and automation tasks.
Extract Structured Data
Navigate to a page and extract content using DOM property extraction.
Navigate to the target URL
Snapshot the main content area with decorative filtering
Use browser-extract with property: 'article' for clean content or 'text' for element text
SnippetTYPESCRIPTFill and Submit Forms
Fill form fields and submit using element refs from the accessibility snapshot.
Snapshot the page to discover form field refs
Fill each field using browser-interact with action: fill
Click the submit button
Re-snapshot to verify the result
SnippetTYPESCRIPTBatch Operations Pipeline
Chain navigate → snapshot → extract in a single batch call to minimize round-trips.
Define all operations as an array of { tool, params } objects
Send them all at once with browser-batch (max 10 actions)
Process the ordered batch.results array
SnippetTYPESCRIPTEfficient Multi-Page Crawling
Block unnecessary resources and crawl multiple pages for bulk content extraction.
Set up route interception to block images, fonts, and CSS
Navigate to the starting page
Use browser-crawl with an extraction expression
SnippetTYPESCRIPTMobile Device Testing
Set viewport size, user agent, and network throttling to test responsive design and performance.
Resize viewport to mobile dimensions with browser-resize
Set user agent and locale with browser-emulate
Apply network throttling with custom throughput and latency values
Navigate and capture a full-page screenshot
Collect performance metrics
SnippetTYPESCRIPTFile & Clipboard Operations
Handle file downloads, attachments, and clipboard operations in automated workflows.
Use browser-download to wait for and capture downloads
Use browser-attach to attach files to <input type='file'> elements
Use browser-evaluate for clipboard access
SnippetTYPESCRIPTConnector reference
Verified against the registered connector handler surfaces so browser, canvas, extension, and payment appear as runtime surfaces and Figma as a platform adapter.
Browser
mcp.scout.i.ng/browserBrowser automation remains the broadest connector surface, but it is one connector in the platform, not the platform itself.
Hover a command to preview what it does.
Session
9Manage browser sessions, tab attachment, and multi-agent coordination.
browser-tabsbrowser-detachbrowser-launchbrowser-openbrowser-closebrowser-connectbrowser-disconnectbrowser-remotebrowser-sessionNavigation
6Navigate between pages, manage browser history, and handle iframes.
browser-navigatebrowser-searchbrowser-historybrowser-scenebrowser-framesbrowser-waitContent
9Read and understand page content — snapshots, extraction, JavaScript evaluation.
browser-snapshotbrowser-elementbrowser-extractbrowser-evaluatebrowser-pipebrowser-findbrowser-injectbrowser-filebrowser-sourceInteraction
4Simulate user interactions — clicks, keyboard input, form filling, drag-and-drop.
browser-interactbrowser-attachbrowser-dialogbrowser-highlightNetwork
7Monitor network traffic, intercept requests, record HAR files, manage certificates.
browser-networkbrowser-routebrowser-unroutebrowser-harbrowser-securitybrowser-notificationsbrowser-websocketStorage
4Manage cookies, localStorage, sessionStorage, and clipboard.
browser-cookiesbrowser-storagebrowser-clipboardbrowser-bookmarksMedia
8Capture screenshots, record screencasts, manage downloads, control media playback.
browser-screenshotbrowser-pdfbrowser-screencastbrowser-mediabrowser-downloadbrowser-transcribebrowser-stillbrowser-imageDebug
6Inspect console output, measure performance, monitor DOM memory stats.
browser-consolebrowser-metricsbrowser-memorybrowser-exceptionsbrowser-heapbrowser-traceEmulation
6Emulate devices, geolocation, vision deficiencies, and network/CPU throttling.
browser-emulatebrowser-resizebrowser-visionbrowser-cpubrowser-throttlebrowser-pinchAutomation
5High-level multi-page workflows and batch operations.
browser-batchbrowser-workflowbrowser-crawlbrowser-taskbrowser-animationStyling
1Inspect and manipulate CSS computed styles.
browser-stylesTool parameters reference
Every registered MCP tool with its parameters and return shape, grouped by capability. Expand a group to inspect individual tools.
Session
9 tools
Session
9 toolsManage browser sessions, tab attachment, and multi-agent coordination.
browser-tabssessionList all available browser tabs with their titles, URLs, and tab IDs. Returns @t refs used to scope subsequent tab operations.
Returns: Array of tab objects with @t refs, titles, and URLs
browser-detachsessionDetach a CDP session from a tab and clean up all associated state. Always call when done with a tab.
Returns: Confirmation of detachment
browser-launchsessionOpen a new browser tab, optionally navigating to a URL immediately.
urlstringoptionaldefault: about:blankURL to open in the new tabReturns: @t ref for the new tab
browser-opensessionLaunch Chromium with a persistent user-data directory. Preserves cookies, extensions, and login state across restarts.
userDataDirstringrequiredPersistent browser profile directory pathurlstringoptionaldefault: about:blankURL to navigate to after opening the profileReturns: Session ID with persistent profile context
browser-closesessionClose a browser tab and clean up its session. The tab is removed from the browser.
Returns: Confirmation of closure
browser-connectsessionConnect to an externally launched Chromium instance through its remote-debugging domain and port.
domainstringrequiredHostname that exposes the browser remote-debugging listener, such as 127.0.0.1 or localhost.portnumberrequiredRemote-debugging port, such as 9222.Returns: Connection ID and available tab refs
browser-disconnectsessionDisconnect from an externally connected browser instance.
Returns: Confirmation of disconnection
browser-remotesessionConnect to a remote Playwright browser server via WebSocket, create a tracked MCP session, and bind to an initial active page.
wsEndpointstringrequiredPlaywright browser server WebSocket endpoint to connect to (e.g., ws://127.0.0.1:3000/<token>).timeoutnumberoptionaldefault: 30000Timeout in milliseconds for the connection attemptmaxConsoleLogsnumberoptionaldefault: 100Maximum number of console logs to trackmaxNetworkRequestsnumberoptionaldefault: 100Maximum number of network requests to trackmaxWebSocketConnectionsnumberoptionaldefault: 50Maximum number of WebSocket connections to trackcaptureBodyPatternstringoptionalGlob pattern for response body capture (e.g., '**/api/**'). Matching responses store their body up to 5 MB.Returns: Tracked session bound to the remote browser's active page
browser-sessionsessionList, inspect, or close connector-owned browser sessions managed by the current Scout instance.
action'list' | 'status' | 'close'requiredAction: list, status (inspect one session), or closeconnectionIdstringoptionalRemote browser connection ID that owns the tab (for status/close).tabIdnumberoptionalTab identifier within the remote browser connection (for status/close).drainNotificationsbooleanoptionaldefault: falseDrain pending notifications when inspecting a session (status action).Returns: Session list, status details, or closure confirmation
Navigation
6 tools
Navigation
6 toolsNavigate between pages, manage browser history, and handle iframes.
browser-navigatenavigationNavigate to a URL, reload, go back/forward, or set page HTML directly. Waits for the page to load before returning.
actionstringrequiredNavigation action: goto (navigate to URL), reload, back, forward, setcontent (set page HTML)urlstringoptionalURL to navigate to (required for 'goto' action)waitUntilstringoptionaldefault: loadWhen to consider navigation complete. Options: load, domcontentloaded, networkidle, commithtmlstringoptionalHTML content to set (required for 'setcontent' action)Returns: Page title and final URL after navigation
browser-searchnavigationPerform a web search using any of 17 supported engines.
querystringrequiredSearch query textenginestringrequiredSearch engine: google, duckduckgo, bing, brave, yahoo, yandex, startpage, and more. duckduckgo recommended (fewer captchas).Returns: Snapshot of the search results page
browser-historynavigationList or clear the session's browser navigation history.
action'list' | 'clear'requiredHistory action: list (show navigation history) or clear (reset history)Returns: Navigation history entries or confirmation
browser-scenenavigationSave and restore named scenes — the current page URL, title, and scroll position — within a session.
action'capture' | 'restore' | 'list' | 'delete'requiredAction: capture (save current page as a named scene), restore (navigate back to a scene), list, or deletenamestringoptionalUnique scene name within the sessionscrollbooleanoptionaldefault: trueWhether to restore the scroll position in addition to the URL (restore action)Returns: Scene list or navigation confirmation
browser-framesnavigationList all iframes on the current page with their source URLs and @ref identifiers.
Returns: Array of iframe metadata
browser-waitnavigationWait for a specific condition before proceeding. Supports page load states, selector matching, text matching, URL matching, response matching, or a fixed delay. When more than one page scope is in play, tabRef determines which page the wait observes.
typestringrequiredWait type: load, delay, selector, text, url, or responseselectorsstring[]optionalCSS selectors to try when type='selector'. The wait succeeds when any selector resolves.matchersArray<{ matchType: 'text' | 'glob' | 'regex'; value: string }>optionalMatchers to try when type='text', 'url', or 'response'. Each matcher provides its own matchType ('text', 'glob', or 'regex') and value.statestringoptionalLoad state to wait for when type='load': load, domcontentloaded, or networkidle.delayMsnumberoptionalHow long to pause in milliseconds when type='delay'.tabRefstringoptionalTab ref that scopes the wait to a specific page. When omitted, the active tab is targeted.timeoutnumberoptionalMaximum time to wait in milliseconds.Returns: Confirmation when condition is met
Content
9 tools
Content
9 toolsRead and understand page content — snapshots, extraction, JavaScript evaluation.
browser-snapshotcontentCapture the accessibility tree of the current page as a structured snapshot. Returns @e refs for all interactive elements. The primary tool for page observation. When more than one page scope is in play, tabRef determines which page the returned refs belong to.
tabRefstringoptionalTab ref that scopes the snapshot to a specific page. When omitted, the active tab is targeted. Returned @e refs belong to that tab.selectorstringoptionalCSS selector to scope the snapshot to a specific element regiondeduplicatebooleanoptionalCollapse identical repeated subtrees with a ×N indicatordisambiguatebooleanoptionalAdd [in=section] ancestor context to duplicate interactive elementsexcludeDecorativebooleanoptionalRemove decorative elements (unlabeled images, aria-hidden, empty buttons)excludeRolesstring[]optionalRoles to exclude from the snapshot (e.g., ['separator', 'presentation'])includeRolesstring[]optionalOnly include these roles — whitelist mode (e.g., ['link', 'button'])maxDepthnumberoptionalMaximum tree depth to includemaxElementsnumberoptionalMaximum number of elements. Use selector to narrow scope instead.viewportOnlybooleanoptionalOnly include elements in the current viewportflattenBeyondDepthnumberoptionalCollapse non-interactive nodes beyond this depth, promoting interactive childrengroupCodeBlocksbooleanoptionalMerge sequential code lines into compact labeled blocksReturns: YAML accessibility tree with @e refs, roles, labels, and values
browser-elementcontentInspect a targeted element by @ref or selector and return one semantic detail: position, size, visibility, content, attributes, styles, accessibility, state, value, or a fused layout summary.
detail'position' | 'size' | 'visibility' | 'content' | 'attributes' | 'styles' | 'accessibility' | 'state' | 'value' | 'layout'requiredSemantic detail to return: position, size, visibility, content, attributes, styles, accessibility, state, value, or layoutselectorstringoptionalElement selector: @ref (e.g., @e1) from snapshot, or CSS selectorReturns: One semantic detail object for the targeted element
browser-extractcontentExtract data from the DOM. Supports property types: article (clean markdown via Defuddle), text, html, markdown, value, attribute, title, url, count, box, visible, enabled, checked, focused. Use @ref or CSS selector for element properties.
propertystringrequiredWhat property to retrieve: article, text, html, markdown, value, attribute, title, url, count, box, visible, enabled, checked, focusedselectorstringoptionalElement selector: @ref (e.g., @e1) from snapshot, or CSS selector. Required for element properties.attributestringoptionalAttribute name to get (only for 'attribute' property)Returns: Extracted property value from the DOM
browser-evaluatecontentExecute JavaScript in the page context. Returns the evaluated result. Supports async expressions.
expressionstringrequiredJavaScript expression to evaluateReturns: JSON-serializable result of the expression
browser-pipecontentEvaluate JavaScript and write the result directly to a file on disk. Use for large datasets that would exceed context limits.
expressionstringrequiredJavaScript expression to evaluatefilePathstringrequiredAbsolute file path to write toformatstringoptionaldefault: jsonOutput format: json, yaml, text, or base64appendbooleanoptionaldefault: falseAppend to file instead of overwritingReturns: Confirmation with byte count and file path
browser-findcontentSearch for text within the page using the browser's find bar. Returns match count and scrolls to the first match.
textstringrequiredText to find on the pageindexnumberoptionaldefault: 0Which match to scroll to (0-based)Returns: Match count and current match index
browser-injectcontentInject a script or stylesheet into the page. Supports inline content, external URL, or init scripts that run on every navigation.
type'script' | 'style' | 'initscript'requiredType: script, style, or initscript (runs on every navigation)contentstringoptionalInline content to injecturlstringoptionalURL to inject fromReturns: Confirmation of injection
browser-filecontentInspect or clear the session's tracked file references (@o refs) used for uploads and other file-backed actions.
action'list' | 'get' | 'clear'requiredAction: list (tracked files), get (one file ref), or clear (reset the registry)fileRefstringoptionalFile ref to inspect (get action)patternstringoptionalFilter pattern for file path or name matching (list action)Returns: Tracked file references or confirmation
browser-sourcecontentCapture browser-readable source from the current page — full HTML, stylesheet/script sources, image asset metadata, or a specific resource URL.
kind'document' | 'styles' | 'scripts' | 'images' | 'resource'requiredWhat to capture: document, styles, scripts, images, or resource (a specific URL)sessionRefstringrequiredSession IDurlstringoptionalAbsolute resource URL to fetch when kind='resource'includeContentbooleanoptionaldefault: trueInclude inline HTML, stylesheet text, script text, or fetched resource bodies when the runtime can access themmaxItemsnumberoptionaldefault: 25Maximum number of stylesheets, scripts, or images to include in list-based capturestimeoutnumberoptionaldefault: 30000Maximum time in milliseconds to wait for the source capture to completeReturns: Captured document HTML, resource sources, or asset metadata
Interaction
4 tools
Interaction
4 toolsSimulate user interactions — clicks, keyboard input, form filling, drag-and-drop.
browser-interactinteractionPerform a user interaction on a page element. Supports 16 action types including touch tap with coordinate support. @e refs from browser-snapshot and CSS selectors are both supported. When more than one page scope is in play, tabRef determines which page the action and any @e refs are scoped to.
actionstringrequiredAction type: click, clear, dblclick, drag, fill, focus, highlight, hover, check, press, scroll, select, tap, type, uncheckselectorstringrequiredElement selector: @ref from snapshot (preferred) or CSS selectortabRefstringoptionalTab ref that scopes the action to a specific page. When omitted, the active tab is targeted. @e refs belong to the tab that produced the snapshot.valuestringoptionalValue for fill, type, or select actionskeystringoptionalKey to press (e.g., Enter, Tab, Control+a)button'left' | 'right' | 'middle'optionaldefault: leftMouse button for click actionsforcebooleanoptionaldefault: falseBypass actionability checks. Use when overlays intercept clicks.timeoutnumberoptionaldefault: 5000Maximum wait time in millisecondstargetSelectorstringoptionalTarget selector for drag actions (required for drag only)direction'up' | 'down' | 'left' | 'right'optionaldefault: downScroll direction for scroll actionspixelsnumberoptionaldefault: 500Pixels to scrollposition{ x: number, y: number }optionalCoordinates for tap action: { x, y }. Taps at these coordinates instead of element center.tapCountnumberoptionaldefault: 1Number of taps to perform (tap action only)Returns: Updated accessibility snapshot reflecting the new page state
browser-attachinteractionAttach one or more files to a file input element.
selectorstringrequired@ref or CSS selector of the file inputfilesstring[]requiredAbsolute file paths to attachReturns: Confirmation of file attachment
browser-dialoginteractionHandle a browser dialog (alert, confirm, prompt, beforeunload). Accept or dismiss with optional input text.
action'accept' | 'dismiss'requiredDialog ref (@g ref) or action: accept, dismisspromptTextstringoptionalText to enter for prompt dialogsReturns: Confirmation of dialog handling
browser-highlightinteractionHighlight one or more elements visually. Adds colored border/overlay for debugging or visual confirmation. Supports label, style, and auto-timeout.
action'show' | 'hide' | 'clear' | 'pulse'requiredAction: show (add highlight), hide (remove), clear (remove all), pulse (animate)selectorstringoptionalCSS selector or @ref (required for show/hide/pulse)stylestringoptionaldefault: borderVisual style: border, overlay, spotlight, crosshaircolorstringoptionaldefault: cyanHighlight color: red, blue, green, yellow, orange, purple, cyanlabelstringoptionalLabel to display near the elementdurationnumberoptionaldefault: 1000Auto-remove timeout in millisecondsReturns: Confirmation
Network
7 tools
Network
7 toolsMonitor network traffic, intercept requests, record HAR files, manage certificates.
browser-networknetworkList, get, or clear captured network requests. Tracks requests with status, headers, timing, and body.
action'list' | 'get' | 'clear'requiredAction: list, get (@n ref), clearpatternstringoptionalFilter by URL pattern (glob supported). Used with list.requestRefstringoptionalNetwork request ref (@n1) for get actionReturns: Array of network request objects or a single request detail
browser-routenetworkIntercept and handle network requests matching a URL pattern. Supports logging, blocking, or modifying responses.
patternstringrequiredURL pattern to intercept (glob or regex, e.g., **/api/v2/**)action'abort' | 'fulfill' | 'continue'requiredWhat to do with matched requests: abort (block), fulfill (return custom response), continue (proceed with optional modifications)responseBodystringoptionalMock response body for modify actionresponseStatusnumberoptionalMock response status for modify actionReturns: Confirmation of route registration
browser-unroutenetworkRemove a previously registered request interception route.
patternstringrequiredURL pattern to remove interception forReturns: Confirmation
browser-harnetworkStart or stop recording network traffic as an HTTP Archive (HAR) file.
action'start' | 'stop'requiredAction: start or stop recordingfilePathstringoptionalFile path to save the HAR file to (required for stop)Returns: HAR data or confirmation of start/stop
browser-securitynetworkControl SSL certificate error handling. Set ignore=true for self-signed certificates in testing environments.
ignorebooleanrequiredWhether to ignore certificate errorsReturns: Confirmation
browser-notificationsnetworkDrain the notification queue for network events, console logs, dialogs, and other asynchronous browser events.
Returns: Array of pending events with type, timestamp, and data
browser-websocketnetworkTrack WebSocket connections and their messages. Actions: list, get, clear.
action'list' | 'get' | 'clear'requiredAction: list (all connections), get (by ref), clearwebSocketIdstringoptionalWebSocket ref (@w1) for get actionpatternstringoptionalURL pattern filter for list actionReturns: WebSocket connections or message history
Storage
4 tools
Storage
4 toolsManage cookies, localStorage, sessionStorage, and clipboard.
browser-cookiesstorageGet, set, or clear browser cookies for the current session.
action'get' | 'set' | 'clear'requiredCookie operation: get, set, or clearcookiesCookieObject[]optionalArray of cookie objects to set (required for set action). Each cookie has name, value, and optional domain, path, httpOnly, secure, sameSite, expires, url.Returns: Cookie value(s) or confirmation
browser-storagestorageInteract with localStorage or sessionStorage.
action'get' | 'set' | 'remove' | 'clear' | 'keys'requiredAction: get (retrieve value), set (store value), remove (delete key), clear (remove all), keys (list all keys)storageType'local' | 'session'optionaldefault: localStorage type: 'local' for localStorage, 'session' for sessionStoragekeystringoptionalStorage key (required for get, set, remove)valuestringoptionalValue to store (required for set)Returns: Storage value, key list, or confirmation
browser-clipboardstorageRead from or write to the system clipboard.
action'read' | 'write'requiredAction: read or writetextstringoptionalText to write to clipboard (write only)Returns: Clipboard text (read) or confirmation (write)
browser-bookmarksstorageManage browser bookmarks — list a folder, read the tree, search, and create, update, move, or remove bookmarks and folders.
action'list' | 'tree' | 'search' | 'get' | 'create' | 'update' | 'move' | 'remove'requiredAction: list, tree, search, get, create, update, move, or removetitlestringoptionalBookmark or folder title (create/update actions)urlstringoptionalBookmark URL for bookmark creation. When omitted, the operation creates a folder.parentIdstringoptionalParent folder ID. Defaults to the root folder (create action).bookmarkIdstringoptionalBookmark node identifier (get/update/move/remove)querystringoptionalSearch text for bookmark lookup (search action)indexnumberoptionalOptional position within the parent folder (create action)Returns: Bookmark list, tree, search results, or operation confirmation
Media
8 tools
Media
8 toolsCapture screenshots, record screencasts, manage downloads, control media playback.
browser-screenshotmediaCapture a screenshot of the viewport, full page, a specific element, or an arbitrary region. When more than one page scope is in play, tabRef determines which page the capture targets. Annotated @e refs belong to the tab that produced the corresponding snapshot.
target'screen' | 'page' | 'element' | 'clip'requiredCapture target: screen (viewport), page (full document), element (DOM element), clip (arbitrary rectangle)tabRefstringoptionalTab ref that scopes the capture to a specific page. When omitted, the active tab is targeted. Annotated @e refs belong to the tab that produced the snapshot.format'jpeg' | 'png'optionaldefault: jpegImage format: jpeg (smaller, lossy) or png (larger, lossless)selectorstringoptionalElement selector: @ref or CSS selector (required for 'element' target)xnumberoptionalClip x-coordinate in pixels (required for 'clip' target)ynumberoptionalClip y-coordinate in pixels (required for 'clip' target)widthnumberoptionalClip width in pixels (required for 'clip' target)heightnumberoptionalClip height in pixels (required for 'clip' target)annotatebooleanoptionaldefault: falseOverlay @eN ref labels on interactive elements before captureReturns: Base64-encoded image
browser-pdfmediaGenerate a PDF of the current page.
formatstringoptionaldefault: A4Paper format: A4, Letter, Legal, Tabloid, A3, A5, A6landscapebooleanoptionaldefault: falseLandscape orientationprintBackgroundbooleanoptionaldefault: falseInclude background graphicspageRangesstringoptionalPage range (e.g., '1-5, 8')Returns: Base64-encoded PDF
browser-screencastmediaStart or stop a screen recording session. Returns video data on stop.
action'start' | 'stop'requiredAction: start or stopfilePathstringoptionalFile path to save the recording toReturns: Confirmation (start) or video file path (stop)
browser-mediamediaCapture a video frame at a specific timestamp, or extract audio from a media element.
selectorstringrequired@ref or CSS selector of the media elementaction'frame' | 'audio'requiredAction: frame (video) or audiotimestampnumberoptionalTimestamp in seconds for frame captureReturns: Base64-encoded frame image or audio data
browser-downloadmediaList, get, or clear browser downloads. Track in-progress and recently completed downloads.
action'list' | 'get' | 'clear'requiredAction: list, get (@d ref), cleardownloadIdstringoptionalDownload ref (@d1) for get actionReturns: Download object(s) with status, URL, and file path
browser-transcribemediaTranscribe speech from an audio/video element using AI. Returns a time-stamped transcript.
selectorstringrequired@ref or CSS selector of the media elementReturns: Transcript with timestamps and speaker segments
browser-stillmediaCapture a still image from a video or media element at a specific playback timestamp. Auto-detects the first <video> element when no ref is given.
elementRefstringoptionalSnapshot video ref. Defaults to the first <video> element in the targeted page.format'jpeg' | 'png'optionaldefault: jpegImage format for the captured framequalitynumberoptionalImage quality (0-100, JPEG only)timenumberrequiredTimestamp in seconds to seek to before capturing the frameReturns: Base64-encoded still frame image
browser-imagemediaRead a snapshot-issued image ref (@i) and return the rendered image as a PNG or JPEG image resource.
imageRefstringrequiredSnapshot image ref (e.g., @i12). Image refs come from browser-snapshot and are separate from actionable @e refs.format'png' | 'jpeg'requiredImage format: png (lossless) or jpeg (smaller, quality adjustable)qualitynumberoptionaldefault: 80Image quality (0-100) for JPEG outputReturns: PNG or JPEG image resource
Debug
6 tools
Debug
6 toolsInspect console output, measure performance, monitor DOM memory stats.
browser-consoledebugCapture or drain browser console logs. Returns entries with type, message, and timestamp. Types: log, info, warning, error.
action'enable' | 'drain'requiredAction: enable (start capture), drain (get + clear)typestringoptionalFilter by type: log, info, warning, error, allReturns: Array of console log entries
browser-metricsdebugGet page performance metrics: load time, first paint, FCP, DOM interactive, DOM content loaded.
Returns: Performance timing object with all Navigation Timing metrics
browser-memorydebugGet DOM memory counters: document count, node count, JS event listener count. Useful for detecting memory leaks.
Returns: Memory statistics object
browser-exceptionsdebugList, get, summarize, or clear uncaught page exceptions captured for a browser session.
action'list' | 'get' | 'summarize' | 'clear'requiredAction: list, get (by ref), summarize, or clearexceptionRefstringoptionalException ref to retrieve (get action)limitnumberoptionalMaximum number of exceptions to return (list action). Reduces token usage for large buffers.patternstringoptionalText pattern to filter exception messages. Plain text does substring matching; glob patterns (* ? [ ]) are supported.Returns: Stored exception records or a summary
browser-heapdebugCapture heap information for an attached browser session, optionally forcing garbage collection first.
collectGarbagebooleanoptionaldefault: falseForce garbage collection before taking the snapshotReturns: Heap snapshot with memory statistics
browser-tracedebugControl Chrome performance trace recording — start or stop, and configure which trace categories are captured.
action'start' | 'stop'requiredAction: start or stop performance trace recordingcategoriesstring[]optionalChrome trace categories to record (e.g., 'devtools.timeline', 'v8.execute'). Defaults to timeline + JS execution.Returns: Trace recording confirmation or trace data
Emulation
6 tools
Emulation
6 toolsEmulate devices, geolocation, vision deficiencies, and network/CPU throttling.
browser-emulateemulationEmulate browser environment — user agent, color scheme, locale, geolocation, timezone, media type, and more.
userAgentstringoptionalOverride User-Agent stringcolorSchemestringoptionalEmulate color scheme: light, dark, or no-preferencelocalestringoptionalEmulate locale (e.g., 'en-US')geolocationobjectoptionalEmulate geolocation: { latitude, longitude, accuracy }timezoneIdstringoptionalEmulate timezone (e.g., 'America/New_York')mediastringoptionalEmulate media type: screen or printofflinebooleanoptionaldefault: falseEmulate offline networkReturns: Confirmation of emulation settings
browser-resizeemulationResize the browser viewport to specific dimensions. Use for responsive design testing.
widthnumberrequiredViewport width in pixelsheightnumberrequiredViewport height in pixelsReturns: Confirmation
browser-visionemulationSimulate a vision deficiency for accessibility testing: color blindness, blurred vision, reduced contrast.
typestringrequiredVision type: none, blurredVision, reducedContrast, achromatopsia, deuteranopia, protanopia, tritanopiaReturns: Confirmation
browser-cpuemulationThrottle the CPU to simulate slow devices. Multiply by 4 for a mid-range mobile device.
ratenumberrequiredCPU slowdown multiplier (1 = no throttle, 4 = 4× slower)Returns: Confirmation
browser-throttleemulationThrottle network speed to simulate different connection conditions.
downloadThroughputnumberoptionalDownload speed in bytes/seconduploadThroughputnumberoptionalUpload speed in bytes/secondlatencynumberoptionalNetwork latency in millisecondsofflinebooleanoptionaldefault: falseSimulate offline modeReturns: Confirmation
browser-pinchemulationSimulate touch gestures: pinch to zoom, momentum scroll, or finger tap at specific coordinates.
gesture'pinch' | 'scroll' | 'tap'requiredGesture type: pinch, scroll, or tapselectorstringoptionalCSS selector or @ref of the target elementReturns: Confirmation
Automation
5 tools
Automation
5 toolsHigh-level multi-page workflows and batch operations.
browser-batchautomationExecute multiple tool calls in a single request. Reduces round-trip overhead for sequential operations. Returns an array of results.
actionsArray<{ tool: string; params: object; id?: string }>requiredArray of tool call objects. Each has: tool (tool name), optional params (tool input), and optional id.Returns: Batch summary with ordered results, completion status, counts, and optional haltedOnPattern/stoppedAt metadata
browser-workflowautomationExecute a multi-step browser workflow with conditional branching. Steps can be actions (tool calls) or conditions (with then/else branches).
stepsStep[]requiredArray of workflow steps. Each step is an action ({ type: 'action', tool, params }) or a condition ({ type: 'condition', check, then, else }). Max 20 steps.stopOnErrorbooleanoptionaldefault: trueStop executing remaining steps if an action failsReturns: Workflow execution result with per-step outcomes
browser-crawlautomationCrawl multiple URLs in parallel with optional link discovery, fingerprinting, session pooling, and resource blocking.
urlsstring[]requiredStarting URLs to crawlenqueueStrategystringoptionalLink discovery strategy: same-hostname, same-domain, same-origin, allmaxRequestsPerCrawlnumberoptionaldefault: 100Maximum total pages to crawlblockedResourcesstring[]optionalResource types to block: image, stylesheet, font, mediaexpressionstringoptionalJavaScript expression evaluated in each page contextfilePathstringoptionalFile path to write per-page output to diskReturns: Per-URL snapshots or expression results
browser-taskautomationExecute a high-level natural language browser task. Scout determines the steps needed and executes them autonomously.
taskstringrequiredNatural language task descriptionReturns: Task execution result with steps taken
browser-animationautomationAnimate an element on the page using the Web Animations API.
selectorstringrequiredCSS selector or @ref of the element to animatekeyframesobject[]requiredCSS keyframes array (e.g., [{ opacity: 0 }, { opacity: 1 }])optionsobjectoptionalAnimation timing options (duration, easing, fill, etc.)Returns: Confirmation
Styling
1 tools
Styling
1 toolsInspect and manipulate CSS computed styles.
browser-stylesstylingGet computed CSS styles for an element. Returns final rendered values after the full cascade.
selectorstringrequiredCSS selector or @ref of the target elementpropertiesstring[]optionalSpecific CSS properties to retrieve (e.g., ['color', 'font-size']). Omit for all.Returns: Record of property names to computed values
Architecture notes
The small set of system concepts that actually change how you choose a path, authenticate, and operate Scout safely.
Connectors are configured separately so each workflow only exposes the capabilities it actually needs.
The extension follows Scout's app-side tool flow rather than appearing as another public connector users install directly.
Use the extension path only when the task depends on your real tabs, cookies, or authenticated browser state; otherwise keep the workflow on isolated connector sessions.
FAQ
Common questions about setup, authentication, browser state, security, and billing.
