Security

Security model

Scout's security posture comes from explicit connector boundaries, identity-aware MCP requests, durable browser session lifecycle, and a clear distinction between hosted automation and extension-backed real-browser control.

Security principles

Scout exposes powerful tools, so the security model starts by making capability, identity, runtime, and budget boundaries visible.

Connector isolation

Scout separates browser, Node, system, Figma, canvas, payment, extension, agent, and orchestration tools into capability-owned MCP servers. A client only receives the tools exposed by the connector server it configures.

Authenticated MCP access

Hosted connector requests must resolve identity before execution. OAuth-capable MCP clients use sign-in, while Scout access tokens are explicit fallback credentials for non-interactive MCP clients. Extension model routing uses the user's configured AI provider key.

Segmented identity

Public bearer auth exposes userId and workerId to the request boundary. Raw token subjects stay inside verification code and do not leak into connector-facing APIs.

Explicit browser context

The extension is used when an agent needs a user's real browser state. It connects to Scout's Mastra server and uses the user's chosen AI provider key, while hosted browser connector sessions remain a separate MCP-client path for cleaner automation.

Credit-gated execution

Connector execution hydrates credit balance at request time and meters tool usage by operation. Budget limits stop execution instead of allowing silent overrun.

Durable session lifecycle

Long-lived browser work is tied to durable session registration and streaming lifecycle, so cleanup, tailing, and reconnect behavior have explicit boundaries.

Permission scoping

Extension permissions are only relevant to the extension runtime. Configuring a connector MCP server does not require users to grant browser extension permissions unless the workflow needs real-browser control.

Deterministic error handling

Failed operations should return visible errors instead of silently falling back to another model, runtime, or identity. Scout treats surprise success as a security and debugging risk.

Optional runtime

Extension permissions

The extension path is for real-browser workflows. These permissions do not apply to hosted connector MCP clients unless you choose to install the extension.

Optional runtime: MCP clients do not need these permissions unless you install the extension path.
Most permissions map to one visible tool or UI feature rather than broad hidden collection.
Sensitive capabilities such as cookies, debugger, and clipboard are exercised through explicit tool calls.
debugger
Session-scoped

Attach CDP sessions to browser tabs.

Used for: Required for the browser tools that inspect pages and drive tabs through Chrome DevTools Protocol.

Exposure: High power, but attached one session at a time instead of running as broad page access.

tabs
Read-only

Read open tab titles and URLs.

Used for: Used to list tabs and let the extension attach the right session to the right window.

Exposure: Metadata only. It does not grant page DOM access by itself.

activeTab
Gesture-scoped

Access the current tab on user gesture.

Used for: Lets Scout work against the tab the user explicitly opened the extension from.

Exposure: Only the active tab, and only after user invocation.

storage
Local-only

Store local settings and session state.

Used for: Persists connection details, preferences, and recent extension state across restarts.

Exposure: Stored in the browser profile. Not synced to Scout servers by the permission itself.

identity
Identity only

Start the browser OAuth flow for sign-in.

Used for: Used for account linking and user authentication inside the extension path.

Exposure: Standard browser OAuth flow. Scout does not receive raw provider passwords.

clipboardRead/Write
Tool-triggered

Read or write the system clipboard.

Used for: Powers the clipboard tool when an agent explicitly needs copy or paste behavior.

Exposure: Only used when a workflow invokes that tool directly.

scripting
Page-scoped

Inject scripts into the current page.

Used for: Supports in-page helpers and extension features that need to run against the active document.

Exposure: Limited to the page context being worked on, not blanket background scraping.

sidePanel
UI only

Show the side-panel interface.

Used for: Provides the extension UI for status, monitoring, and controls.

Exposure: Visual surface only. It does not widen data access on its own.

cookies
Sensitive

Read or write browser cookies.

Used for: Needed only for the cookie management tool and authenticated browser-state workflows.

Exposure: Sensitive capability, but exercised per tool call rather than through bulk export behavior.

webNavigation
Read-only

Observe page navigation events.

Used for: Tracks lifecycle changes so sessions can react to loads, redirects, and completion state.

Exposure: Event observation only. It does not grant content extraction by itself.

contextMenus
UI only

Add actions to the browser context menu.

Used for: Lets users trigger Scout actions from right-click surfaces when that shortcut is useful.

Exposure: Menu surface only. No additional data access comes from the menu itself.

downloads
Workflow-scoped

Monitor and manage downloads.

Used for: Supports download-aware workflows that need to wait for or manage files created during automation.

Exposure: Tied to download operations rather than unrestricted file-system access.

notifications
UI only

Send browser notifications.

Used for: Used for visible completion and error alerts.

Exposure: User-visible messaging only.

tabGroups
UI only

Organize tabs into groups.

Used for: Helps keep multi-session runs readable inside the user’s browser.

Exposure: Tab organization only. No added content access.

Threat model

Known attack vectors, scenarios of concern, and the mitigations Scout applies.

Prompt injection

A web page or prompt attempts to convince an agent to use tools outside the intended task boundary.

Mitigations
Keep connector capabilities separated so browser prompts cannot directly invoke system or payment tools
Treat page content as data passed to tools, not as trusted instruction text
Use access tokens only for clients that cannot complete OAuth
Credential misuse

A leaked or replayed credential is used to call a hosted connector.

Mitigations
Resolve every request through firebaseBearerAuth before connector execution
Expose userId and workerId explicitly instead of relying on ambiguous subject values
Allow token revocation from the account token surface
Resource exhaustion

An agent loop consumes browser, Node, or host-machine tool calls unexpectedly.

Mitigations
Hydrate credit balance before tool execution
Charge fixed tool costs at the connector boundary
Stop execution when included credits and budget limits are exhausted
Context confusion

A workflow accidentally operates against personal tabs or cookies when an isolated browser session would have been safer.

Mitigations
Use clean hosted browser sessions for workflows that do not need personal state
Use the extension path only when real tabs and authenticated state are required
Register durable sessions explicitly and close/tail them through documented lifecycle endpoints

Security disclosure

If you discover a security vulnerability in Scout, please report it via responsible disclosure. We aim to respond within 48 hours and provide a fix within 14 days for critical issues.

security@scout.i.ng

Scout uses analytics to understand which pages are useful and where visitors drop off.

See our Privacy Policy and Terms of Service for details.