Alle Integrationen

Einen KI-Assistenten über MCP anbinden

Guard.ch betreibt einen gehosteten MCP-Server, der einem KI-Assistenten einen echten Browser in unserer Cloud gibt. Diese Anleitung zeigt den App-Schlüssel, die Konfiguration im Client, die Tools, die dein Assistent bekommt, und wie sich die Sitzungen verhalten.

Über MCP (Model Context Protocol) kommt ein Assistent an Werkzeuge, die er selbst nicht mitbringt. Richte deinen auf Guard.ch aus, und er kann Seiten öffnen und lesen, klicken, tippen, Formulare ausfüllen, Dateien hochladen, JavaScript ausführen und Screenshots machen: in einem isolierten Cloud-Browser, vom Standort deiner Wahl aus.

Auf deinem Rechner läuft dabei nichts. Kein lokaler Browser-Dienst, kein Treiber, den du aktuell halten musst, und auch kein Modell-Schlüssel, den du hier hinterlegst. Guard.ch stellt den Browser, den Lebenszyklus der Sitzung, den Ausgang ins Netz und eine Live-Ansicht, in der du jederzeit übernehmen kannst; das Modell bleibt bei deinem Client.

Was du brauchst

Endpunkt
https://api.guard.ch/mcp
Transport
Streamable HTTP, jede Anfrage für sich
Authentifizierung
Ein App-Schlüssel von Guard.ch im Header
Plan
Ein Plan mit programmatischem Zugriff; die 30-tägige Testphase deckt ihn ab
Browser
Jedes Chromium-Image, das dein Plan erlaubt, standardmässig Chrome
Parallelität
Bis zu drei laufende Sitzungen pro Person, aus denen die Person und ihre Agenten gleichermassen schöpfen

App-Schlüssel erstellen

Erstelle und verwalte deine API-Schlüssel im Dashboard von browser.lol. Melde dich mit demselben Konto an wie bei Guard.ch.

  • Ein Schlüssel pro Client. Einer pro Assistent, Rechner oder Pipeline hält den Widerruf chirurgisch präzise: Ziehst du einen, steht dieser eine Client still und sonst nichts.
  • Ablaufdatum setzen. Nie, 30 Tage, 90 Tage oder ein Jahr, festgelegt beim Erstellen. Alles, was unbeaufsichtigt läuft, fährt mit einem Datum sicherer.
  • Nur einmal sichtbar. Der Schlüssel wird genau einmal angezeigt, beim Erstellen. Ein verlorener Schlüssel wird ersetzt, nicht wiederhergestellt: widerrufen und einen neuen anlegen.
  • Widerruf wirkt sofort. Ein widerrufener Schlüssel funktioniert augenblicklich nicht mehr, auch mitten im Gespräch.

Endpunkt und Authentifizierung

Es gibt einen Endpunkt, und er spricht Model Context Protocol über Streamable HTTP. Jede Anfrage steht für sich, ein Gespräch übersteht also einen Neustart des Clients mitten in der Arbeit.

https://api.guard.ch/mcp

Schick den Schlüssel in einem dieser beiden Header. In die URL gehört er nie, dort würde er in Browserverlauf, Proxy-Logs und Analysedaten landen:

  • Authorization: Bearer YOUR_API_KEY als Bearer-Token, so wie es jeder Schnipsel unten macht.
  • x-api-key: YOUR_API_KEY im Hersteller-Header, für Clients, die Authorization nicht setzen können.

Server im Client eintragen

Such deinen Client, setz die Konfiguration ein und ersetze YOUR_API_KEY durch den Schlüssel, den du eben erstellt hast. Derselbe Schlüssel gilt überall, ein zweiter Rechner braucht also nur diesen Schritt.

Claude Code

Im Terminal ausführen.

claude mcp add --transport http guardch https://api.guard.ch/mcp \
  --header "Authorization: Bearer YOUR_API_KEY"

Claude Desktop

Kommt in claude_desktop_config.json.

{
  "mcpServers": {
    "guardch": {
      "command": "npx",
      "args": [
        "-y", "mcp-remote", "https://api.guard.ch/mcp",
        "--header", "Authorization:Bearer YOUR_API_KEY"
      ]
    }
  }
}

Cursor

Kommt in ~/.cursor/mcp.json.

{
  "mcpServers": {
    "guardch": {
      "url": "https://api.guard.ch/mcp",
      "headers": { "Authorization": "Bearer YOUR_API_KEY" }
    }
  }
}

VS Code

Im Terminal ausführen.

code --add-mcp '{"name":"guardch","type":"http","url":"https://api.guard.ch/mcp","headers":{"Authorization":"Bearer YOUR_API_KEY"}}'

Codex CLI

Im Terminal ausführen, mit dem Schlüssel in der Umgebungsvariable GUARDCH_API_KEY.

codex mcp add guardch --url https://api.guard.ch/mcp \
  --bearer-token-env-var GUARDCH_API_KEY

Gemini CLI

Im Terminal ausführen.

gemini mcp add --transport http guardch https://api.guard.ch/mcp \
  --header "Authorization: Bearer YOUR_API_KEY"

Windsurf

Kommt in ~/.codeium/windsurf/mcp_config.json.

{
  "mcpServers": {
    "guardch": {
      "serverUrl": "https://api.guard.ch/mcp",
      "headers": { "Authorization": "Bearer YOUR_API_KEY" }
    }
  }
}

Starte den Client danach neu, damit er den neuen Server sieht. Mehr wird nicht installiert: Der Browser steht bei uns.

Etwas verlangen

Gib deinem Assistenten eine Aufgabe, für die er einen Browser braucht. Die Sitzung öffnet er selbst:

Öffne example.com in einem Guard.ch-Browser und sag mir, was auf der Seite steht.

Kommt eine Beschreibung der Seite zurück, steht die Verbindung. Meldet der Client, es gebe keine Tools, hat er seine MCP-Konfiguration noch nicht neu gelesen.

Die Tools für deinen Assistenten

35 Tools, alle mit dem Präfix browser_, mit strukturierten Antworten. Ein Assistent kann direkt bei browser_navigate anfangen: Guard.ch öffnet ihm dafür eine Sitzung und antwortet mit einem Accessibility-Snapshot der Seite, dessen ref-Kennungen alle weiteren Tools ansteuern. Das ist günstiger und viel präziser als das Arbeiten mit Screenshots.

Sitzungen und Lebenszyklus

Die ausdrückliche Kontrolle über den Browser: welcher, wo er ins Netz geht, wie lange er lebt.

ToolWas es macht
browser_session_createStartet eine Sitzung und gibt ihre Kennung zurück: Browser-Image, Name, absolutes Zeitlimit, Ausgangsland, Ausgang über Residential-Adresse oder eigenen Proxy, Bildschirmgrösse, eine erste URL und einen Wiederholungsschlüssel.
browser_session_getLiest den Zustand einer Sitzung: Status, Image, aktuelle URL, ob die Analyse dranhängt, wann sie abläuft, und ihre Live-Ansicht.
browser_session_listListet alle Sitzungen des Kontos, neueste zuerst, mit dem Kontingent an gleichzeitigen Sitzungen und 30 Tagen Nutzung. Jede Zeile sagt, ob ein Agent oder ein Mensch sie gestartet hat.
browser_session_closeBeendet eine Sitzung und gibt ihren Platz sofort frei, statt auf das Leerlauf-Zeitlimit zu warten.
browser_session_renameGibt einer Sitzung einen Namen, damit in der Liste erkennbar ist, wofür sie läuft.
browser_session_analysisSchaltet die Live-Analyse für eine Sitzung ein oder aus, die ein Mensch in der App gestartet hat.
browser_set_locationÄndert im Betrieb, wo der Verkehr einer Sitzung ins Netz geht, ohne Neustart.

Navigation

Bewegung durchs Netz, und die Tabs, in denen sie stattfindet.

ToolWas es macht
browser_navigateÖffnet eine URL und gibt die Seite als Accessibility-Snapshot zurück. Das ist der Einstieg: Gibt es noch keine Sitzung, entsteht sie hier.
browser_go_backEinen Schritt zurück im Verlauf des Tabs.
browser_go_forwardEinen Schritt vorwärts.
browser_reloadLädt die Seite neu, auf Wunsch am Cache vorbei.
browser_tabsTabs auflisten, öffnen, wechseln und schliessen; jedes Seiten-Tool nimmt eine Tab-Kennung.

Die Seite lesen

Was der Assistent sieht, vom günstigen Snapshot der Struktur bis zum Netzverkehr der Seite.

ToolWas es macht
browser_snapshotDer Accessibility-Snapshot der Seite, mit den ref-Kennungen, auf die alle Bedien-Tools zielen.
browser_findSucht auf der Seite nach Text oder regulärem Ausdruck und gibt die passenden refs zurück.
browser_screenshotNimmt den sichtbaren Bereich, die ganze Seite oder ein einzelnes Element auf.
browser_console_messagesLiest die Konsolenausgabe und die Fehler der Seite.
browser_network_requestsListet die Anfragen der Seite, filterbar nach Methode, Status und Host.
browser_network_requestÖffnet eine Anfrage im Detail: Header, Zeiten, Inhalt.
browser_extractBeschreib in Worten, welche Daten du willst, und bekomm sie strukturiert zurück. Dabei gehen sichtbarer Text und Accessibility-Baum der Seite an OpenRouter; der Aufruf belastet das tägliche KI-Budget.

Bedienen

Alles, was ein Mensch mit Maus und Tastatur täte, dazu die Notausgänge.

ToolWas es macht
browser_clickKlickt ein Element per ref, mit Zusatztasten und Doppelklick.
browser_typeTippt in ein Feld und schickt es auf Wunsch ab.
browser_fill_formFüllt mehrere Felder in einem Aufruf.
browser_select_optionWählt Einträge in einem Auswahlfeld.
browser_hoverFährt ein Element an, für Menüs, die nur so aufgehen.
browser_dragZieht ein Element auf ein anderes.
browser_press_keyDrückt eine einzelne Taste, etwa Enter oder Escape.
browser_scrollScrollt um Pixel oder holt ein Element ins Bild.
browser_wait_forWartet auf Text, eine URL, einen Ladezustand oder darauf, dass etwas verschwindet.
browser_handle_dialogBeantwortet den JavaScript-Dialog, der die Seite blockiert, nachdem ein Tool dialog_open gemeldet hat: bestätigen, verwerfen oder Text in einen Prompt schreiben.
browser_file_uploadÜbergibt eine Datei an ein Upload-Feld, mit dem Namen, den die Seite sehen soll.
browser_evaluateFührt JavaScript in der Seite aus und gibt das Ergebnis zurück.
browser_resizeÄndert die Grösse des sichtbaren Bereichs.
browser_mouseRohe Mausbewegungen, Klicks und Scrollrad, für Canvas und Karten.
browser_actBeschreib einen Schritt in Worten, und der Browser wählt den nötigen Klick oder Tastendruck. Dabei geht der Accessibility-Baum der Seite an OpenRouter; der Aufruf belastet das tägliche KI-Budget.

Downloads

Dateien, die die Seite herausgibt.

ToolWas es macht
browser_downloadsListet, was diese Sitzung heruntergeladen hat, mit einem geschützten Link pro fertiger Datei.

Browser und Standort wählen

image beim Erstellen bestimmt den Browser: jedes Chromium-Image, das das Konto fahren darf, und Chrome, wenn du keines nennst. Firefox und Tor sind reine Surf-Browser und lassen sich nicht programmatisch steuern; wer sie verlangt, bekommt eine Absage samt Liste der Kennungen, die gehen.

country legt fest, wo die Sitzung ins Netz geht, als Land oder Stadt (us, de, us-dal), und residential verlangt statt des üblichen Tunnels eine Residential-Adresse; proxy nimmt einen Ausgang, den du selbst betreibst. Im Betrieb ändert browser_set_location das Ganze, was zählt, sobald eine Seite nach Land sperrt oder je nach Land etwas anderes zeigt.

Zusehen und übernehmen

Zu jeder Sitzung gehört eine Live-Ansicht, und die Sitzungen deiner Agenten stehen im Reiter Agenten deines Dashboards. Öffne eine davon, und du bist in derselben Ansicht, die auch ein Mensch nutzt: Die Seite läuft live, und beenden kannst du die Sitzung von dort ebenfalls.

Nimm Maus und Tastatur, sobald der Assistent an einer Anmeldung, einem Captcha oder einer Entscheidung hängt, die du lieber selbst triffst, und lass ihn danach weitermachen. Es ist ein Browser, auf den ihr beide zugreift, also fängt nichts von vorn an.

Analyse neben der Seite

In einem Chromium-Browser kann die Analyse von Guard.ch neben der Seite mitlaufen: Anfragen, Weiterleitungsketten, Antwort-Header, Konsolenausgabe, Sicherheitsprobleme, Downloads, Formulare, Cookies und Speicher, erkannte Technologien und Tracker, WHOIS-, IP- und Zertifikatsabfragen auf Zuruf, dazu eine Einschätzung pro Host mit ihren Quellen.

browser_session_analysis schaltet diese Spur für eine Sitzung ein und aus, die ein Mensch in der App gestartet hat: Eingeschaltet wird sie mitlesbar und im Dashboard als Untersuchung geführt. Eine Sitzung, die der Assistent selbst erstellt hat, kommt dafür nicht in Frage und wird in beide Richtungen abgelehnt (analysis_unavailable).

Wie sich die Sitzungen verhalten

  • Sitzungen entstehen von selbst. Das erste Seiten-Tool öffnet eine, wenn unter dem Schlüssel keine läuft. Laufen mehrere, wird ein Aufruf ohne session_id abgelehnt statt geraten. So landet ein beiläufiger Aufruf nie im falschen Browser.
  • Sitzungen im Leerlauf enden von selbst. Eine Sitzung endet wenige Minuten nach dem letzten Tool-Aufruf oder nachdem sich ein CDP-Client getrennt hat, spätestens aber an ihrem absoluten Zeitlimit (eine Minute bis sechs Stunden, standardmässig eine Stunde). Beendest du sie selbst, ist der Platz sofort frei.
  • Wiederholungen sind ungefährlich. Ein Idempotenzschlüssel beim Erstellen spielt die geglückte Erstellung noch einmal ab, statt einen zweiten Browser zu öffnen. Genau das willst du hinter einer Warteschlange oder einem Job, der es erneut versucht.
  • Mensch und Agent teilen ein Konto. Dein Assistent kann die Sitzungen auflisten, steuern und beenden, die du in der App gestartet hast, und du kannst dasselbe mit seinen. Schliesst er eine von deinen, ist das Fenster weg, dem du gerade zusiehst: ein guter Grund, Sitzungen zu benennen.
  • Weiter als bis zu deinem Konto reicht es nicht. Jedes Tool arbeitet nur auf deinen eigenen Sitzungen. Sitzungen anderer Mitglieder sind über den Server weder sichtbar noch erreichbar.

Grenzen und Absagen

  • Programmatischer Zugriff hängt am Plan. Ohne ihn antwortet jeder Aufruf mit einem Hinweis auf ein Upgrade statt mit einem Ergebnis. Beide bezahlten Pläne haben ihn, die 30-tägige Testphase ebenfalls.
  • Gerechnet wird in gleichzeitigen Sitzungen: bis zu drei pro Person. Jede Person im Plan darf bis zu drei Sitzungen gleichzeitig laufen haben, und die Agenten, die mit ihrem Schlüssel arbeiten, schöpfen aus denselben drei. Sind alle drei belegt, wird eine neue Sitzung abgelehnt und nicht eingereiht.
  • Die meisten Tools sind kostenlos. Nur browser_act und browser_extract brauchen je einen Modellaufruf und belasten das tägliche KI-Budget des Kontos. Residential-Ausgänge werden gegen das Datenvolumen des Workspaces in dieser Abrechnungsperiode gezählt. Alle anderen Tools sind kostenlos.
  • Das Erstellen ist ratenbegrenzt. Limits pro Minute, Stunde und Tag schützen die Plattform. Normale Agentenarbeit kommt nie in ihre Nähe, eine Schleife ausser Kontrolle schon.
  • Gespeichert wird nichts. Eine geschlossene Sitzung ist weg, mitsamt allem, was sie gesehen hat. Die Liste behält 30 Tage an Einträgen (was lief, wann, wie lange), nie die Seiten selbst.

Sicherheit

  • Ein App-Schlüssel ist ein Passwort-Äquivalent: Er gehört in den Schlüsselspeicher deines Clients oder in eine Umgebungsvariable, nie in eine geteilte Konfigurationsdatei oder einen Link. Rutscht er dir raus, widerrufst du ihn im Reiter «Apps».
  • Der Schlüssel reist im Header. Halte ihn aus URLs heraus, dort würde er in Browserverlauf, Proxy-Logs und Analysedaten landen.
  • Seiten laden in unserer Infrastruktur, nie auf dem Rechner, auf dem der Assistent läuft, und nie in einem Browserprofil von dir: Jede Sitzung ist ein Wegwerf-Container.
  • browser_act sendet den Accessibility-Baum der Seite an OpenRouter; browser_extract sendet zusätzlich den sichtbaren Text. Hat sich eine Person über die Live-Ansicht angemeldet, können darin ihre eigenen Daten enthalten sein. Kein anderes Tool sendet Seiteninhalte aus dem Cluster.
  • Die Sitzung eines Agenten ist so sichtbar wie die eines Menschen. Sie steht im Dashboard, du kannst live zusehen und sie jederzeit von Hand beenden.
  • Alles läuft über TLS, und für die Sitzungen gilt derselbe AVV wie für den Rest des Produkts.

Wenn etwas klemmt

Fast immer ist es einer dieser Fälle:

Der Client zeigt keine Tools. Er hat seine Konfiguration nicht neu gelesen. Starte ihn nach dem Eintragen neu und prüf, ob wirklich der /mcp-Endpunkt oben eingetragen ist und nicht die REST-Basis.

Jeder Aufruf antwortet mit einem Upgrade-Hinweis. Das Konto hinter dem Schlüssel hat keinen Plan mit programmatischem Zugriff. Starte die Testphase, oder frag einen Workspace-Manager nach einem Platz.

Ein Aufruf wird als mehrdeutige Sitzung abgelehnt. Unter dem Schlüssel laufen zwei oder mehr Sitzungen, und Guard.ch rät nicht, welche gemeint ist. Lass sie auflisten und gib die session_id von da an ausdrücklich mit.

Eine neue Sitzung wird abgelehnt. Entweder sind alle drei laufenden Sitzungen des Kontos belegt, oder das gewünschte Image lässt sich nicht programmatisch steuern. Die Absage sagt, was von beidem, und nennt die Kennungen, die gehen.

Der Schlüssel hörte mitten im Gespräch auf zu funktionieren. Er wurde widerrufen oder ist abgelaufen. Leg einen neuen an und trag ihn im Client nach.

Dieselben Browser ohne MCP

Ein Client, der kein MCP spricht, erstellt dieselben Sitzungen über REST und hängt Playwright oder Puppeteer an den CDP-Endpunkt, den jede zurückgibt. Diesen Weg beschreibt die API-Anleitung.

Nächste Schritte

Schlüssel unter Apps anlegen, Endpunkt im Client eintragen, den Assistenten um eine Seite bitten. Im Reiter Agenten stehen die Sitzungen deiner Assistenten, und du kannst dort zusehen oder sie beenden. Fehlt dein Client in dieser Anleitung, melde dich bei uns.

Alles, 30 Tage gratis.

In der Testphase wird nichts zurückgehalten. Du hinterlegst vorab eine Karte, belastet wird sie erst am Ende, und aufhören kannst du in ein paar Klicks.

30 Tage gratis testen