Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

Scout

OCI · GHCR.IO/FELIXGEELHAAR/SCOUT:1.10.0 · SCANNED AUG 3

Browser automation MCP server with 84 tools. Pure CDP, DOM diffing, vision hybrid.

−6 this week 32 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →

Supply Chain Security0
  • Malware scan not yet available for this package.Unverified
  • CVE data not yet available for this package.Unverified
  • Install-script risk not yet assessed.Unverified
  • Dependency-health data not yet available.Unverified
Provenance & Transparency19
Schema Quality & AI Usability71
  • AI-judged instruction clarity (good).Pass
  • Tool/resource definitions use about 5478 tokens (~65/item across 84 items; 84 tools + 0 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management23
  • Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage98
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 94% of tool parameters carry a description.Partial
  • Structured output schemas are declared (7% of tools); any adoption earns full credit.Pass
Capabilities20
  • Spec-recency check failed: implements MCP spec 2024-11-05; the latest is 2026-07-28. See how to fix → Fail

Unverified: 1 category

A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

oci · ghcr.io/felixgeelhaar/scout:1.10.0

# add to Claude Code
claude mcp add felixgeelhaar-scout -- docker run --rm -i ghcr.io/felixgeelhaar/scout:1.10.0
# add to Codex CLI
codex mcp add felixgeelhaar-scout -- docker run --rm -i ghcr.io/felixgeelhaar/scout:1.10.0
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "felixgeelhaar-scout": {
      "type": "local",
      "command": [
        "docker",
        "run",
        "--rm",
        "-i",
        "ghcr.io/felixgeelhaar/scout:1.10.0"
      ],
      "enabled": true
    }
  }
}
# ~/.hermes/config.yaml
mcp_servers:
  felixgeelhaar-scout:
    command: "docker"
    args: ["run", "--rm", "-i", "ghcr.io/felixgeelhaar/scout:1.10.0"]
// mcp.json
{
  "mcpServers": {
    "felixgeelhaar-scout": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/felixgeelhaar/scout:1.10.0"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 2 Aug 26 +2
    • Stability: unverified → 0.20 functional
  • 1 Aug 26 −8
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 27 Jul 26 +33
    • Tool coverage: unverified → 100 functional
    • First check of Tool coverage: 94 functional
    • First check of Tool coverage: 7 functional
    • First check of Schema quality: good functional
    • First check of Schema quality: pass functional
    • First check of Schema quality: fail functional
  • 26 Jul 26 5

    First indexed and scored.

    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 3 Aug 2026 · Analysed oci/ghcr.io/felixgeelhaar/scout:1.10.0

Provenance none

Ecosystem: oci · Outcome: none

Reason: no_attestation

MCP tools — 84 exposed · ~5,125 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
open_tab ~55

Open a new named browser tab and navigate to a URL. The new tab becomes active.

NameTypeReqDescription
namestringTab name (for open_tab and switch_tab)
urlstringURL to open in new tab

No output schema declared.

No examples provided.

pdf ~15

Generate a PDF of the current page.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

readable_text ~35

Extract just the main readable content, stripping navigation and boilerplate.

NameTypeReqDescription
urlstringOptional URL to navigate to before observing

No output schema declared.

No examples provided.

replay_playbook ~45

Replay a saved playbook deterministically without LLM calls. Returns success/failure and any extracted data.

NameTypeReqDescription
pathstringyesFile path to the playbook JSON file

No output schema declared.

No examples provided.

reset ~24

Force-reset the current browser session, clearing stuck state and creating a fresh page context.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

right_click ~46

Right-click an element to trigger context menus.

NameTypeReqDescription
selectorstringyesCSS selector of element to click
waitbooleanIf true wait for full page navigation after click

No output schema declared.

No examples provided.

save_playbook ~38

Save the last recorded playbook to a JSON file for deterministic replay.

NameTypeReqDescription
pathstringyesFile path to save the playbook JSON

No output schema declared.

No examples provided.

screenshot ~166

Capture a screenshot. Defaults: JPEG quality 60, max_width 1024, 80KB cap (~20k tokens base64) so result fits MCP tool-result token limits. Pass quality / max_width to override; on overflow the image is progressively downscaled rather than failing. Returns base64 data URL.

NameTypeReqDescription
full_pagebooleanCapture the entire scrollable page instead of just the viewport.
max_widthintegerMaximum image width in pixels. Downscales proportionally. Good values: 800 or 1024.
qualityintegerJPEG quality 1-100. Forces JPEG format. Lower = smaller file. Default auto-compresses to fit 200KB.
urlstringOptional URL to navigate to before taking screenshot

No output schema declared.

No examples provided.

scroll_and_collect ~55

Auto-scroll the page and collect items as they lazy-load. For infinite scroll pages.

NameTypeReqDescription
max_itemsintegerMaximum items to collect (default 100)
selectorstringyesCSS selector for the repeating items

No output schema declared.

No examples provided.

scroll_by ~49

Scroll the page by pixel offset. Positive y = scroll down.

NameTypeReqDescription
xintegerHorizontal scroll offset in pixels
yintegeryesVertical scroll offset in pixels (positive=down)

No output schema declared.

No examples provided.

scroll_to ~31

Scroll to bring an element into view.

NameTypeReqDescription
selectorstringyesCSS selector of element to scroll into view

No output schema declared.

No examples provided.

select_by_prompt ~67

Find an element using natural language (e.g. 'the login button', 'search input'). Returns the best match with confidence score and CSS selector.

NameTypeReqDescription
promptstringyesNatural language description of the element to find (e.g. 'the login button' or 'search input')

No output schema declared.

No examples provided.

select_option ~48

Select an option from a dropdown/select element by visible text or value.

NameTypeReqDescription
optionstringyesOption text or value to select
selectorstringyesCSS selector of the select element

No output schema declared.

No examples provided.

session_history ~45

Get the last N actions performed in this session. Provides context about what has been done so far.

NameTypeReqDescription
countintegerNumber of recent actions to return (default 5

No output schema declared.

No examples provided.

start_recording ~41

Start recording browser actions into a replayable playbook. Call stop_recording when done.

NameTypeReqDescription
namestringyesName for the playbook being recorded

No output schema declared.

No examples provided.

start_screen_recording ~175

Start capturing the active page as a screencast video. Frames are streamed via CDP and (if ffmpeg is in PATH) encoded to webm/mp4 on stop. Otherwise raw JPEG frames + ffmpeg concat list are returned for offline encoding. Call stop_screen_recording to finish.

NameTypeReqDescription
formatstringOutput format: webm (default if ffmpeg present)
fpsintegerTarget frames per second 1-60 (default 30)
heightintegerCapture height in CSS pixels (default 800)
output_dirstringParent directory for output. Defaults to OS temp dir.
qualityintegerJPEG frame quality 1-100 (default 80)
widthintegerCapture width in CSS pixels (default 1280)

No output schema declared.

No examples provided.

start_trace ~42

Start tracing all browser actions with before/after screenshots. Call stop_trace to export a zip file.

NameTypeReqDescription
urlstringOptional URL to navigate to before observing

No output schema declared.

No examples provided.

status ~26

Get current browser/session health status including URL, pending requests, timeout streak, and last error.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

stop_recording ~41

Stop recording and return the playbook. Save it with save_playbook for later replay.

NameTypeReqDescription
urlstringOptional URL to navigate to before observing

No output schema declared.

No examples provided.

stop_screen_recording ~41

Stop the active screen recording. Returns a struct with the output file path (video or frames dir), format, encoder used, frame count, and duration.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

stop_trace ~40

Stop tracing and export a zip file containing trace events, screenshots, and network requests.

NameTypeReqDescription
pathstringyesFile path to write the trace zip file

No output schema declared.

No examples provided.

submit_form ~157

Submit a form using form.requestSubmit() — fires Vue @submit.prevent / React onSubmit / native @submit listeners and runs HTML5 validation. Pass the form selector or any selector inside it. If match_url is set, waits for an XHR/fetch whose URL contains that substring and returns its status code. Returns the request URL, method, status, and post-submit URL so a single tool call replaces click + sleep + check_readiness + network_requests.

NameTypeReqDescription
match_urlstringOptional URL substring. When set
selectorstringyesCSS selector of the <form> element or any element inside it.
timeout_msintegerHard cap to wait for response/navigation in ms. Default 8000.

No output schema declared.

No examples provided.

submit_outcome ~64

Diagnose silent form-submit failures. Returns defaultPrevented for the latest submit, visible [role=alert] messages, aria-invalid field labels, dev-server error overlay text, XHR count since tracker install, and whether navigation committed. Auto-installs the tracker on first call.

Input schema present but exposes no named parameters.

NameTypeReqDescription
alerts_visiblearray
aria_invalid_fieldsarray
current_urlstring
default_preventedboolean
framework_error_overlaystring
navigation_committedboolean
submitted_formstring
tracker_installedboolean
xhr_countinteger

No examples provided.

suggest_selectors ~47

Find elements similar to a selector that failed. Returns up to 5 suggestions with selector, tag, text, and classes.

NameTypeReqDescription
selectorstringyesThe selector that failed to match

No output schema declared.

No examples provided.

switch_tab ~51

Switch to a named tab. Use list_tabs to see available tabs.

NameTypeReqDescription
namestringTab name (for open_tab and switch_tab)
urlstringURL to open in new tab

No output schema declared.

No examples provided.

switch_to_frame ~47

Switch execution context into an iframe. Subsequent actions operate inside the iframe until switch_to_main_frame is called.

NameTypeReqDescription
selectorstringyesCSS selector of the iframe element to switch into

No output schema declared.

No examples provided.

switch_to_main_frame ~37

Switch back to the main page frame after operating inside an iframe.

NameTypeReqDescription
urlstringOptional URL to navigate to before observing

No output schema declared.

No examples provided.

type ~44

Type text into an input element. Clears existing value first.

NameTypeReqDescription
selectorstringyesCSS selector of input element
textstringyesText to type into the element

No output schema declared.

No examples provided.

upload_file ~46

Upload a file to a file input element.

NameTypeReqDescription
file_pathstringyesLocal path to the file to upload
selectorstringyesCSS selector of the file input element

No output schema declared.

No examples provided.

wait_for ~30

Wait for an element to appear in the DOM.

NameTypeReqDescription
selectorstringyesCSS selector to wait for

No output schema declared.

No examples provided.

wait_for_navigation ~144

Wait for the page to navigate. mode: 'full' (real document load) | 'spa' (History API push/replace/popstate) | 'any' (default, first to fire). Use when an external action — a button outside scout's control, a JS-triggered route change — moves the page; click(wait=true) covers the case where scout is the one triggering.

NameTypeReqDescription
modestringOne of full|spa|any. full = real document load. spa = History API push/replace/popstate. any = first to fire. Default any.
timeout_msintegerMaximum wait in milliseconds. Default 5000.
NameTypeReqDescription
elapsed_msinteger
full_navigationboolean
idle_after_changeboolean
modestring
spa_navigationboolean
timed_outboolean
titlestring
urlstring
url_changedboolean

No examples provided.

wait_for_spa_idle ~132

Stronger SPA wait than wait_spa: blocks until document complete, framework hydration events fired (Astro 'astro:page-load' / 'astro:end', Vue/React mount markers populated), no pending XHR/fetch, no visible spinners/skeletons, and the DOM has been mutation-free for quiet_ms. Use after a click that triggers route change or hydration when check_readiness returns 100 too eagerly.

NameTypeReqDescription
quiet_msintegerRequired mutation-free quiet window in ms. Default 400.
timeout_msintegerHard cap in ms. Default 15000.

No output schema declared.

No examples provided.

wait_spa ~43

Wait for SPA framework (React/Vue/Angular/Next.js/Svelte) to finish rendering.

NameTypeReqDescription
urlstringOptional URL to navigate to before observing

No output schema declared.

No examples provided.

web_vitals ~66

Extract Core Web Vitals (LCP, CLS, INP) and performance timing (TTFB, First Paint, DOM Content Loaded). Each metric is rated good/needs-improvement/poor per Google thresholds.

NameTypeReqDescription
urlstringOptional URL to navigate to before observing

No output schema declared.

No examples provided.