Skip to main content
Glama

Funktionen

  • Browser-Automatisierung: Navigieren, Klicken, Tippen, Ausfüllen von Formularen und Ausführen von JavaScript

  • Standardmäßig ressourcenschonend: ~5x weniger Speicher als Chromium, ~25x kleinere Snapshots als rohes HTML

  • Seiten-Snapshots: Kompakte YAML-Zugriffsbaum-Snapshots mit eindeutigen Knoten-IDs für präzises Targeting von Elementen

  • LLM-optimierter Kontext: Snapshots werden auf das semantische Wesentliche reduziert, wodurch der Kontextverbrauch minimal bleibt und mehr Seiten und längere Sitzungen in dasselbe Fenster passen

  • Konfigurierbarer Fallback-Browser: Zweistufiges Modell – zuerst der schlanke Browser, dann Eskalation auf Headful Chrome, Browserless oder Browserbase-Cloud-Browser nur, wenn der Standard erkannt wird, abstürzt oder eine Zeitüberschreitung auftritt

  • Ratenbegrenzung: Unauffällig bleiben. Erzwingt eine konfigurierbare Mindestverzögerung zwischen Anfragen an bestimmte Domains mit Platzhaltermustern (*, *.reddit.com) plus optionalem Jitter, damit sich Ihr Agent selbst dosiert, anstatt eine Website zu überlasten und deren Bot-Abwehr auszulösen

  • Proxy-Unterstützung: Leiten Sie jede Anfrage mit einer einzigen PROXY_SERVER-Einstellung durch einen HTTP-Proxy – automatisch auf beiden Browserebenen angewendet, sodass Ihre echte IP das Ziel nie erreicht. Unterstützt Inline-Basisauthentifizierung (http://user:pass@host:port)

  • Robustes Sitzungsmanagement: Pro-Sitzungs-Serialisierung, optionale Sitzungsobergrenze (MAX_SESSIONS), Wiederherstellung nach Abstürzen mitten in der Sitzung mit Verlaufs-Wiederholung und kontrolliertes Herunterfahren

  • Sitzungsverwaltung: Wiederverwendung von Sitzungen über mehrere Vorgänge mit eindeutigen Sitzungs-IDs

  • Plattformübergreifend: Funktioniert unter Linux und macOS, bei Bedarf mit konfigurierbarem Fallback auf echte Browser

Related MCP server: opencode-browser-control

Benchmark

SlimAtlas wurde mit slim-atlas-bench gegen Playwright MCP (Headless- und Headful-Chromium) getestet – 25 reale Websites aus 5 Kategorien, 3 Durchläufe pro Website (insgesamt 225), alle in Docker auf localhost ausgeführt.

Aufbau: Jeder Dienst läuft als MCP-Server in einem eigenen Docker-Container. Die Benchmark-Umgebung misst die Latenz pro Tool-Aufruf (navigate + snapshot) über langchain-mcp-adapters und erfasst den Container-RAM über die Docker-Stats-API. Snapshots werden mit ~4 Zeichen/Token geschätzt (gleiche Methodik wie die rohe HTML-Baseline).

Metrik (Median)

SlimAtlas

Playwright Headless

Playwright Headful

Navigieren + Snapshot (ms)

1.383

1.116

687

Container-RAM (MB)

124

635

815

Snapshot-Tokens

414

940

1.843

SlimAtlas tauscht Navigationsgeschwindigkeit gegen deutlich geringeren Ressourcenverbrauch. Chromium lädt Seiten schneller, verbraucht aber 5–6x mehr RAM und erzeugt 2–4x mehr Tokens pro Snapshot – die beiden Kostenfaktoren, die in Agent-Workflows im großen Maßstab dominieren.

Ergebnisse

Installation

Erfordert Bun ≥1.1.

# Install dependencies
bun install

Die Browser-Binärdatei wird beim ersten Start automatisch heruntergeladen.

Fallback-Browser: Stufe 1 ist immer der schlanke Browser. Stufe 2 ist FALLBACK_BROWSER – einer von headful (Headful Chrome), browserbase (Cloud), browserless (Cloud) oder none (Standard, kein Fallback). Wenn der Standard abstürzt, eine Zeitüberschreitung auftritt oder der Bot erkannt wird, wechselt die Sitzung einmalig zum konfigurierten Fallback. Chrome wird von Puppeteer mitgeliefert; Browserbase/Browserless erfordern API-Anmeldedaten (siehe unten).

Verwendung

MCP-Server ausführen

# Standalone HTTP server (default)
bun run src/index.ts --port=8080

# Remote, authenticated
MCP_AUTH_TOKEN=s3cret bun run src/index.ts --host=0.0.0.0 --port=8080

SlimAtlas stellt einen einzigen Streamable HTTP-Endpunkt /mcp bereit. Jeder Client erhält seine eigene Sitzung über den mcp-session-id-Header; MAX_SESSIONS begrenzt die Parallelität. Weisen Sie Ihren MCP-Client darauf hin:

{
  "mcpServers": {
    "slimatlas": {
      "url": "http://localhost:8080/mcp",
      "transport": "http"
    }
  }
}

Mit Authentifizierung:

{
  "mcpServers": {
    "slimatlas": {
      "url": "http://your-host:8080/mcp",
      "transport": "http",
      "headers": { "Authorization": "Bearer s3cret" }
    }
  }
}

Tipp: Verwenden Sie --host=0.0.0.0 für den Fernzugriff, aber setzen Sie dabei immer MCP_AUTH_TOKEN. Der Server spricht nur einfaches HTTP – beenden Sie TLS davor (Caddy/nginx) oder das Bearer-Token wird im Klartext über das Netzwerk gesendet.

Docker

Das Image bündelt die Lightpanda-Binärdatei bereits beim Build, sodass der Container eigenständig startet und nie erneut herunterlädt:

docker build -t slimatlas .
docker run -p 8080:8080 -e MCP_AUTH_TOKEN=s3cret slimatlas
# -> http://localhost:8080/mcp

Pinnen Sie eine Lightpanda-Version für reproduzierbare Builds (beliebiges lightpanda-io/browser-Tag – Standard nightly):

docker build --build-arg LIGHTPANDA_VERSION=0.3.3 -t slimatlas:0.3.3 .

Multi-Arch wird automatisch gehandhabt – der Build erkennt die Architektur des Containers über uname -m (x86_64lightpanda-x86_64-linux, aarch64lightpanda-aarch64-linux), sodass die Binärdatei immer zur Plattform passt, für die gebaut wird.

Apple Silicon (M-Serie-Macs): Übergeben Sie --platform linux/arm64, um nativ zu bauen/auszuführen. Andernfalls verwendet Docker Desktop möglicherweise standardmäßig amd64 und führt den Container unter Rosetta aus, was beim Start der Lightpanda-Binärdatei fehlschlägt (rosetta error: failed to open elf …).

docker build --platform linux/arm64 --build-arg FALLBACK_BROWSER=headful -t slimatlas .
docker run --platform linux/arm64 --name slimatlas -p 8080:8080 -e MCP_AUTH_TOKEN=s3cret -e LIGHTPANDA_POOL_SIZE=10 -e CHROME_POOL_SIZE=10 slimatlas

Headful-Fallback-Variante. Das Standard-Image führt nur Lightpanda aus (FALLBACK_BROWSER=none). Um den Headful-Chrome-Fallback zu aktivieren (nur erforderlich, wenn Sie FALLBACK_BROWSER=headful zur Laufzeit setzen), bauen Sie die Headful-Variante – sie fügt die Chrome-Laufzeitbibliotheken + Xvfb (~150 MB) hinzu und setzt FALLBACK_BROWSER=headful vorab:

docker build --build-arg LIGHTPANDA_VERSION=0.3.3 FALLBACK_BROWSER=headful -t slimatlas:headful .
docker run -p 8080:8080 -e MCP_AUTH_TOKEN=s3cret slimatlas:headful

Xvfb wird lazy im Container bei der ersten Sitzung gestartet, die auf Headful Chrome eskaliert – kein Entrypoint oder manuelles xvfb-run erforderlich.

Stdio-Modus

Für MCP-Clients, die den Server als Unterprozess starten (lokal, einzelner Client), verwenden Sie den Stdio-Transport:

bun run src/index.ts
{
  "mcpServers": {
    "slimatlas": {
      "command": "bun",
      "args": ["run", "path/to/mcp/src/index.ts"]
    }
  }
}

Konfiguration

Fügen Sie Folgendes zu Ihrer MCP-Client-Konfiguration hinzu:

{
  "mcpServers": {
    "slimatlas": {
      "command": "bun",
      "args": ["run", "path/to/mcp/src/index.ts"]
    }
  }
}

Tipp: Setzen Sie FALLBACK_BROWSER=none, um nur den schlanken Browser zu verwenden und Fehler ehrlich weiterzugeben. Verwenden Sie headful oder browserbase, um einen Fallback auf echte Browser zu aktivieren.

Alle Umgebungsvariablen und CLI-Flags finden Sie in docs/configs.md.

Fallback-Browser

FALLBACK_BROWSER

Browser der Stufe 2

Hinweise

none (Standard)

Nur schlanker Browser; Fehler werden ehrlich weitergegeben

headful

Headful Chrome

Echtes Fenster unter macOS; erfordert xvfb auf headless Linux

browserbase

Browserbase-Cloud

Erfordert BROWSERBASE_API_KEY + BROWSERBASE_PROJECT_ID

Überspringen Sie den Standardbrowser für bekannte schwierige Domains mit SKIP_LIGHTPANDA_DOMAINS (durch Kommas getrennt, subdomain-bewusst). Übereinstimmende Hosts starten direkt im Fallback-Browser. Erfordert FALLBACK_BROWSER != none (andernfalls wird die Liste mit einer Warnung ignoriert).

Ratenbegrenzung

Höfliches, Anti-Erkennungs-Timing für Ihren Agenten. RateLimiter erzwingt eine serverweite Mindestverzögerung zwischen browser_navigate-Aufrufen an die von Ihnen aufgelisteten Domains, mit optionalem zufälligem Jitter, damit das Tempo kein festes, identifizierbares Intervall ist. Buckets werden pro Host über alle Sitzungen hinweg vergeben (da die Zielwebsite Ihre IP sieht, nicht Ihre Sitzungen), und Muster unterstützen Platzhalter:

Muster

Übereinstimmungen

Bucket

*

Jeder Host

Jeder Host wird unabhängig gedrosselt

*.reddit.com

Nur Subdomains (www.reddit.com, old.reddit.com) – nicht reddit.com

Alle passenden Subdomains teilen sich einen Bucket

g2.com

g2.com + seine Subdomains

Apex + Subdomains teilen sich einen Bucket

Standardmäßig deaktiviert. Aktivieren Sie mit einer nicht leeren Domain-Liste und einer Verzögerung ungleich Null:

# Via CLI flags
bun run src/index.ts --rate-limit-domains=*.reddit.com,g2.com --rate-limit-min-delay-ms=2000 --rate-limit-jitter-ms=1500

# Or via environment / .env
RATE_LIMIT_DOMAINS=*.reddit.com,g2.com
RATE_LIMIT_MIN_DELAY_MS=2000
RATE_LIMIT_JITTER_MS=1500

Proxy

Halten Sie Ihre echte IP vom Ziel fern. Setzen Sie einen einzigen PROXY_SERVER und SlimAtlas leitet den gesamten HTTP-Datenverkehr beider Browserebenen darüber – keine pro-Browser-Verkabelung erforderlich:

  • Schlanker Browser (Stufe 1) – über das native --http-proxy-Flag weitergeleitet.

  • Chrome-Fallback (Stufe 2) – über --proxy-server beim Start angewendet.

# Via CLI flag
bun run src/index.ts --proxy-server=http://host:8080

# Or via environment / .env
PROXY_SERVER=http://user:pass@host:8080

Inline-Basisauthentifizierung (http://user:pass@host:port) wird auf der schlanken Browserebene unterstützt. Für Proxys mit IP-Freischaltung (ohne Anmeldedaten) funktioniert es auf beiden Ebenen sofort. (Pro-Seiten-Chrome-Authentifizierung über page.authenticate ist auf der Roadmap.)

CLI-Flags

Jede Umgebungsvariable kann auch als Kleinbuchstaben-CLI-Flag im Format --flag=value übergeben werden. CLI-Flags überschreiben Umgebungsvariablen. Unbekannte Flags führen dazu, dass der Server beim Start beendet wird. Die vollständige Liste finden Sie in docs/configs.md.

bun run src/index.ts --fallback-browser=headful --lightpanda-pool-size=3 --skip-lightpanda-domains=g2.com --navigate-timeout=60000

Um Flags von einem MCP-Client aus zu verwenden, hängen Sie sie an das args-Array an:

{
  "mcpServers": {
    "slimatlas": {
      "command": "bun",
      "args": [
        "run",
        "path/to/mcp/src/index.ts",
        "--fallback-browser=headful",
        "--skip-lightpanda-domains=g2.com,linkedin.com",
        "--chrome-pool-size=3"
      ]
    }
  }
}

Arbeitsablauf

# Example: Navigate, snapshot, and interact with a page

# 1. Navigate to a URL (creates a new session automatically)
result = mcp.call("browser_navigate", {"url": "https://example.com"})
# Returns: session_id: abc1, result: Navigated to https://example.com. Title: Example Domain

# 2. Take a snapshot to see the page structure
snapshot = mcp.call("browser_snapshot", {"session_id": "abc1"})
# Returns YAML with node IDs like: 0: {type: div, children: ...}

# 3. Click a node by ID (from the snapshot)
mcp.call("browser_click", {"session_id": "abc1", "nodeId": 2})

# 4. Type into a search box
mcp.call("browser_type", {"session_id": "abc1", "nodeId": 5, "text": "search query"})

# 5. Close the session when done
mcp.call("browser_close", {"session_id": "abc1"})

Verfügbare Tools

Tool

Beschreibung

Wert

browser_navigate

Navigiere zu einer URL mit konfigurierbarer Warte-Strategie

Einstiegspunkt für alle Web-Interaktionen. Unterstützt load, domcontentloaded, networkidle0, networkidle2

browser_snapshot

YAML-Barrierefreiheitsbaum mit eindeutigen Knoten-IDs abrufen

Strukturierte Seitenrepräsentation, ideal für LLM-Verständnis. Knoten-IDs ermöglichen präzises Zielen für Klicks/Eingaben

browser_view_node

Bestimmten Knoteninhalt per ID anzeigen (Text oder Bild)

Einzelne Elemente ohne vollständiges erneutes Lesen der Seite prüfen. Gibt Bilder als base64 zur visuellen Überprüfung zurück

browser_click

Element per Knoten-ID oder CSS-Selektor klicken

Knoten-ID (aus Snapshot) ist gegenüber CSS-Selektoren für Zuverlässigkeit und Einfachheit empfohlen

browser_type

Text in Element mit optionaler Tastenanschlags-Verzögerung eingeben

Simuliert menschliches Tippen. Für Suchfelder, Formulare und Texteingaben verwenden

browser_fill

Eingabeelement sofort mit einem Wert füllen

Schneller als browser_type für Formularfelder. Löscht vorhandenen Wert vor dem Füllen

browser_go_back

In der Browser-Historie zurück navigieren

Wesentlich für mehrstufige Arbeitsabläufe und zur Korrektur von Navigationsfehlern

browser_go_forward

In der Browser-Historie vorwärts navigieren

Ergänzt browser_go_back für bidirektionale Navigation

browser_reload

Aktuelle Seite neu laden

Dynamischen Inhalt aktualisieren oder von veraltetem Seitenzustand erholen

browser_get_page_info

Aktuelle Seiten-URL und Titel abrufen

Schnelle Möglichkeit, Navigationserfolg und aktuellen Kontext zu überprüfen

browser_close

Browser-Sitzung schließen und Ressourcen freigeben

Wichtig für die Bereinigung. Sitzungen schließen sich bei Timeout automatisch, aber explizites Schließen wird empfohlen

Tests ausführen

# Run all tests
bun test

# Run tests in watch mode
bun test --watch

Anforderungen

  • Bun ≥1.1

  • Linux oder macOS (lädt automatisch herunter) oder Chrome/Chromium (Fallback)

Lizenz

MIT

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

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    Not graded
    quality
    A
    maintenance
    An MCP server that lets LLM agents control all Chrome browser tabs via accessibility snapshots, element references, and a virtual cursor, supporting operations like click, type, navigate, screenshot, and video recording.
    MIT

View all related MCP servers

Related MCP Connectors

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

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

  • MCP server for AI dialogue using various LLM models via AceDataCloud

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/hasindu-madushan/slim-atlas-ai'

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