Skip to main content
Glama

Один бинарный файл scout предоставляет полноценный CLI, MCP-сервер с 66 инструментами и библиотеку Go с композицией middleware в стиле Gin.

brew install felixgeelhaar/tap/scout

Быстрый старт

# CLI — visible browser, one-shot commands
scout observe https://example.com          # structured page snapshot
scout markdown https://news.ycombinator.com # page as compact markdown
scout screenshot https://github.com         # save screenshot
scout extract https://example.com h1        # extract element text
scout frameworks https://react.dev          # detect React, Vue, etc.

# MCP Server — give AI agents browser superpowers
claude mcp add scout -- scout mcp serve

# Browser UI — conversational browser automation
scout ui serve --provider=ollama --model=mistral
cd ui && npm install && npm run dev  # open http://localhost:3000

Related MCP server: Browser-MCP Navigator

Установка

# Homebrew
brew install felixgeelhaar/tap/scout

# Direct binary
curl -fsSL https://raw.githubusercontent.com/felixgeelhaar/scout/main/install.sh | bash

# Go
go install github.com/felixgeelhaar/scout/cmd/scout@latest

# As a library
go get github.com/felixgeelhaar/scout

MCP-сервер — 66 инструментов

Один бинарный файл, отсутствие зависимостей времени выполнения. Настраивается в любом MCP-клиенте:

claude mcp add scout -- scout mcp serve           # Claude Code
{"mcpServers": {"scout": {"command": "scout", "args": ["mcp", "serve"]}}}

Категории инструментов

Категория

Инструменты

Навигация

navigate, observe, observe_diff, observe_with_budget

Взаимодействие

click, click_label, type, hover, double_click, right_click, select_option, scroll_to, scroll_by, focus, drag_drop, dispatch_event

Формы

fill_form, fill_form_semantic, discover_form

Извлечение

extract, extract_all, extract_table, auto_extract, scroll_and_collect, markdown, readable_text, accessibility_tree

Захват

screenshot, annotated_screenshot, pdf

Сеть

enable_network_capture, network_requests

Вкладки

open_tab, switch_tab, close_tab, list_tabs

Фреймворки

wait_spa, detect_frameworks, component_state, app_state

Воспроизведение

start_recording, stop_recording, save_playbook, replay_playbook

Умные помощники

dismiss_cookies, check_readiness, suggest_selectors, session_history

Зрение

hybrid_observe, find_by_coordinates

Пакетная обработка

execute_batch

Iframe

switch_to_frame, switch_to_main_frame

Трассировка

start_trace, stop_trace

Диагностика

detect_dialog, detect_auth_wall, console_errors, compare_tabs, upload_file

Утилиты

has_element, wait_for, configure, web_vitals, select_by_prompt

Все инструменты имеют аннотации MCP (ReadOnly, OpenWorld, ClosedWorld, Idempotent) для интеллектуального автоматического подтверждения. Инструменты только для чтения, такие как observe, extract и screenshot, запускаются без запросов на разрешение.

Конфигурация во время выполнения

Переключайтесь между headless-режимом и видимым браузером без перезапуска:

Agent: configure(headless: false)   → browser window appears
Agent: navigate("https://...")       → watch it work
Agent: configure(headless: true)     → back to headless

Интерфейс браузера

Интерактивный интерфейс автоматизации браузера. Вводите команды на естественном языке и наблюдайте за реакцией браузера в реальном времени.

# Start the AG-UI server (Go backend)
scout ui serve --provider=ollama --model=mistral    # local, no API key
scout ui serve --provider=claude                     # needs ANTHROPIC_API_KEY
scout ui serve --provider=openai --model=gpt-4o     # needs OPENAI_API_KEY
scout ui serve --provider=groq --base-url=https://api.groq.com/openai --model=llama-3.3-70b-versatile

# Start the Vue frontend
cd ui && npm install && npm run dev                  # http://localhost:3000

Интерфейс транслирует события протокола AG-UI через SSE:

  • Панель чата с поддержкой Markdown и кнопками быстрых действий

  • Живой просмотр браузера с потоковой передачей скриншотов и адресной строкой

  • Таймлайн активности, отображающий вызовы инструментов в реальном времени

  • Кнопка остановки для отмены выполнения в процессе

Сервер на Go управляет агентским циклом: LLM решает, какие инструменты scout вызвать, выполняет их и передает дельты состояния браузера обратно во фронтенд. Поддерживает любой OpenAI-совместимый эндпоинт через --base-url.

Пакет Agent

Высокоуровневый API на Go для ИИ-агентов. Структурированный вывод, автоматическое ожидание, безопасность при работе с горутинами.

session, _ := agent.NewSession(agent.SessionConfig{Headless: true})
defer session.Close()

// Navigate and observe
session.Navigate("https://example.com")
obs, _ := session.Observe()               // links, inputs, buttons, text + action costs

// DOM diff — only what changed (saves 50-80% tokens)
session.Click("#submit")
_, diff, _ := session.ObserveDiff()
// diff.Classification: "modal_appeared"
// diff.Summary: "Modal/dialog appeared: Login required"

// Semantic form filling — no CSS selectors
session.FillFormSemantic(map[string]string{
    "Email": "user-example", "Password": "secret",
})

// Visual grounding — click by number, not selector
result, _ := session.AnnotatedScreenshot()  // numbered labels on elements
session.ClickLabel(7)                        // click element [7]

// Multi-tab coordination
session.OpenTab("pricing", "https://example.com/pricing")
session.SwitchTab("default")

// Framework detection (19 frameworks)
frameworks, _ := session.DetectedFrameworks() // ["react", "nextjs"]
state, _ := session.ComponentState("#app")    // read React/Vue state

// Network capture — read API responses directly
session.EnableNetworkCapture("/api/")
captured := session.CapturedRequests("/api/users")

// Action replay — record once, replay without LLM
session.StartRecordingPlaybook("login-flow")
// ... do stuff ...
pb, _ := session.StopRecordingPlaybook()
agent.SavePlaybook(pb, "login.json")
// Later: session.ReplayPlaybook(pb)  // 100x cheaper

// Persistent profiles
session.SaveProfile("session.json")   // cookies + localStorage
session.LoadProfile("session.json")

// Content distillation (5 levels)
session.Markdown()          // ~2-8KB compact markdown
session.ReadableText()      // ~1-4KB main content only
session.AccessibilityTree() // ~1-4KB semantic tree
session.ObserveWithBudget(500) // fit in ~500 tokens

Основная библиотека

Движок в стиле Gin (Engine/Context/Group/HandlerFunc) с композицией middleware:

engine := browse.Default(browse.WithHeadless(true))
engine.MustLaunch()
defer engine.Close()

engine.Use(middleware.Stealth())
engine.Use(middleware.Retry(middleware.RetryConfig{MaxAttempts: 3}))
engine.Use(middleware.Timeout(30 * time.Second))

admin := engine.Group("admin", middleware.BasicAuth("admin", "secret"))
admin.Task("export", func(c *browse.Context) {
    c.MustNavigate("https://app.example.com/admin")
    table, _ := c.ExtractTable("#users")
    c.Set("data", table)
})

engine.RunGroup("admin")

Middleware

Категория

Middleware

Устойчивость

Retry, Timeout, CircuitBreaker, RateLimit, Bulkhead

Аутентификация

BearerAuth, BasicAuth, CookieAuth, HeaderAuth

Анти-детектирование

Stealth (10 патчей: webdriver, плагины, WebGL и т.д.)

Сеть

BlockResources, WaitNetworkIdle

Утилиты

ScreenshotOnError, SlowMotion, Viewport

CLI

CLI по умолчанию запускает видимый браузер (используйте --headless для скрытия):

scout navigate <url>                  # page info as JSON
scout observe <url>                   # structured observation
scout markdown <url>                  # compact markdown
scout screenshot <url> [--output f]   # save screenshot
scout pdf <url> [--output f]          # save PDF
scout extract <url> <selector>        # extract text
scout eval <url> <expression>         # run JavaScript
scout form discover <url>             # discover form fields
scout frameworks <url>                # detect frameworks
scout watch <url> [--interval=5s]     # live-watch page changes
scout pipe <command> [selector]       # batch process URLs from stdin
scout record <url> [--output f]       # interactive recording → playbook
scout mcp serve                       # start MCP server
scout version                         # print version

Архитектура

scout/
├── browse.go, engine.go, context.go   # Gin-like API
├── page.go, selection.go              # CDP page & element interaction
├── recorder.go                        # Video recording (screencast → MP4/GIF)
├── middleware/                        # stealth, resilience, auth, network
├── agent/                             # AI agent API (50+ methods)
│   ├── session.go                     # Session lifecycle, Navigate, Click, Type
│   ├── observe.go, diff.go            # Observe, ObserveDiff, cost estimation
│   ├── content.go                     # Markdown, ReadableText, AccessibilityTree
│   ├── form.go                        # DiscoverForm, FillFormSemantic, MatchFormField
│   ├── annotate.go                    # AnnotatedScreenshot, ClickLabel
│   ├── network.go                     # EnableNetworkCapture, CapturedRequests
│   ├── spa.go                         # DetectedFrameworks, ComponentState, GetAppState
│   ├── tabs.go                        # OpenTab, SwitchTab, CloseTab, ListTabs
│   ├── playbook.go                    # StartRecording, ReplayPlaybook, SavePlaybook
│   ├── interact.go                    # Hover, DragDrop, SelectOption, ScrollTo
│   ├── profile.go                     # CaptureProfile, ApplyProfile, SaveProfile
│   ├── selector.go                    # Playwright :text() selector translation
│   ├── budget.go                      # ObserveWithBudget, EstimateTokens
│   ├── nlselect.go                    # SelectByPrompt, fuzzy NL element matching
│   ├── batch.go                       # ExecuteBatch, sequential multi-action
│   ├── vision.go                      # HybridObserve, FindByCoordinates
│   ├── trace.go                       # StartTrace, StopTrace, action tracing
│   ├── iframe.go                      # SwitchToFrame, SwitchToMainFrame
│   └── vitals.go                      # WebVitals (LCP/CLS/INP)
├── internal/cdp/                      # WebSocket CDP client (context-aware)
├── internal/launcher/                 # Chrome process management
├── cmd/scout/                         # CLI + MCP server (66 tools)
└── docs/                              # Landing page (GitHub Pages)

Лицензия

MIT

A
license - permissive license
Not graded
quality - not tested
A
maintenance

Maintenance

Maintainers
2hResponse time
3dRelease cycle
43Releases (12mo)
Commit activity
Issues opened vs closed

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    Not graded
    quality
    B
    maintenance
    An MCP server that lets AI assistants drive real Chromium browsers — navigate, click, type, read pages, run OCR, and record network traffic. 43 tools, credentials stay local, zero telemetry.
  • A
    license
    B
    quality
    A
    maintenance
    A lightweight 30KB MCP browser automation server that uses raw Chrome DevTools Protocol to enable AI agents to browse the web, take screenshots, interact with elements, and capture live page events like console logs and network requests.
    26
    337
    13
    MIT

View all related MCP servers

Related MCP Connectors

  • Screenshot, diff, audit and sitemap-capture any web page — 5 MCP tools for AI agents.

  • Live browser debugging for AI assistants — DOM, console, network via MCP.

  • AI-powered browser automation — navigate, click, fill forms, and extract data from any website.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/klarlabs-studio/scout'

If you have feedback or need assistance with the MCP directory API, please join our Discord server