Einen MCP-Client mit Guard.ch verbinden
Gib einem KI-Agenten einen echten, isolierten Chrome-Browser über einen einzigen gehosteten Model-Context-Protocol-Endpunkt.
Guard.ch betreibt einen gehosteten MCP-Server über Streamable HTTP. Claude Code, Cursor, VS Code, Windsurf, Codex CLI, Gemini CLI und andere Clients, die Authentifizierungs-Header unterstützen, verbinden sich mit einer einzigen URL und erhalten 21 Browser-Tools.
Es gibt keinen lokalen Browser-Dienst und keinen Modell-API-Schlüssel zu konfigurieren. Dein Client bringt das Modell mit; Guard.ch liefert den isolierten Browser, den Sitzungs-Lebenszyklus und auf Wunsch die Übergabe an einen Menschen.
Das brauchst du
- Endpunkt
- https://api.guard.ch/mcp
- Transport
- Streamable HTTP
- Authentifizierung
- Ein App-Schlüssel von Guard.ch
- Plan
- Jeder aktive Guard.ch-Plan
- Parallelität
- Eine laufende Browser-Sitzung pro Benutzer
Endpunkt und Authentifizierung
Verbinde den Client mit diesem einen MCP-Endpunkt:
https://api.guard.ch/mcpÜbergib einen App-Schlüssel von Guard.ch in einem dieser Header. Schlüssel in URLs werden abgewiesen, damit sie weder im Browserverlauf noch in Proxy-Logs oder Analysedaten landen:
Authorization: Bearer YOUR_API_KEYals Bearer-Token im Authorization-Header (empfohlen)x-api-key: YOUR_API_KEYin einem x-api-key-Header
Client verbinden
Wähle das passende Beispiel und ersetze YOUR_API_KEY durch einen App-Schlüssel aus deinem Dashboard. Ein Client, der keinen Authentifizierungs-Header senden kann, wird vom App-Schlüssel-Endpunkt nicht unterstützt.
Claude Code
claude mcp add --transport http guardch https://api.guard.ch/mcp \
--header "Authorization: Bearer YOUR_API_KEY"Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"guardch": {
"url": "https://api.guard.ch/mcp",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}
}VS Code
code --add-mcp '{"name":"guardch","type":"http","url":"https://api.guard.ch/mcp","headers":{"Authorization":"Bearer YOUR_API_KEY"}}'Windsurf (~/.codeium/windsurf/mcp_config.json)
{
"mcpServers": {
"guardch": {
"serverUrl": "https://api.guard.ch/mcp",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}
}Codex CLI
codex mcp add guardch --url https://api.guard.ch/mcp \
--bearer-token-env-var GUARDCH_API_KEYGemini CLI
gemini mcp add --transport http guardch https://api.guard.ch/mcp \
--header "Authorization: Bearer YOUR_API_KEY"Verfügbare Tools
Der Server stellt 21 Tools mit strukturierten Resultaten und Sicherheits-Annotationen bereit. Ein Agent kann direkt mit browser_navigate beginnen: Guard.ch erstellt automatisch eine Sitzung und liefert einen Snapshot mit Ref-IDs für spätere Interaktionen.
Sitzungs-Lebenszyklus
| Tool | Beschreibung |
|---|---|
browser_create_session | Startet idempotent eine Sitzung, optional mit Anzeigename, Timeout, Bildschirmgrösse, Ausgangsland, Proxy oder Start-URL. |
browser_list_sessions | Listet aktive Sitzungen mit ihren IDs, Namen und Live-View-URLs auf. |
browser_stop_session | Beendet eine Sitzung und gibt ihren Browser-Slot wieder frei. |
browser_get_usage | Zeigt die aktuelle Parallelität und die Sitzungszahlen der letzten 30 Tage. |
Seitensteuerung
| Tool | Beschreibung |
|---|---|
browser_navigate | Öffnet eine URL und erstellt bei Bedarf automatisch eine Sitzung. |
browser_navigate_back | Kehrt zur vorherigen Seite zurück. |
browser_snapshot | Gibt einen Accessibility-Snapshot mit Ref-IDs zurück. |
browser_click | Klickt ein Element anhand seiner Snapshot-Ref an. |
browser_type | Tippt Text in ein Eingabefeld und schickt ihn optional mit Enter ab. |
browser_press_key | Drückt eine einzelne Taste, etwa Enter oder Escape. |
browser_hover | Fährt anhand der Snapshot-Ref mit dem Mauszeiger über ein Element. |
browser_scroll | Scrollt um eine Pixeldistanz oder bringt ein Element in den sichtbaren Bereich. |
browser_wait_for | Wartet auf Text, eine URL, einen Ladezustand oder das Verschwinden von Text. |
browser_handle_dialog | Bestätigt oder verwirft den nächsten Browser-Dialog. |
browser_select_option | Wählt Optionen in einem Select-Element aus. |
browser_screenshot | Erfasst den Viewport oder die ganze Seite als JPEG. |
browser_evaluate | Führt JavaScript auf der Seite aus und gibt das Resultat zurück. |
browser_tab_new | Öffnet einen neuen Tab. |
browser_tab_select | Wechselt zu einem anderen Tab. |
browser_tab_close | Schliesst einen Tab. |
browser_tab_list | Listet Tabs mit stabilen IDs, Titeln und URLs auf. |
So verhalten sich Sitzungen
- Automatische Erstellung. Der erste Aufruf eines Seiten-Tools erstellt eine Sitzung, wenn der App-Schlüssel gerade keine aktive hat. Hat der Schlüssel mehrere aktive Sitzungen, verlangt Guard.ch eine session_id, statt unvorhersehbar eine auszuwählen.
- Automatisches Aufräumen. Eine Sitzung endet zwei Minuten nach dem letzten Tool-Aufruf oder CDP-Disconnect, spätestens aber bei ihrem absoluten Timeout. Mit browser_stop_session beendest du sie früher.
- Übergabe an einen Menschen. Über die Live-View-URL kann eine Person zuschauen oder mit Maus und Tastatur übernehmen, etwa für ein Login oder ein Captcha.
- Standortwahl. Wähle ein Ausgangsland oder eine Stadt, oder leite den Browser über deinen eigenen Proxy.
- Eine Sitzung pro Benutzer. Pro Benutzer deines Plans steht ein gleichzeitiger Browser-Slot bereit. Solange dieser Slot belegt ist, lehnt Guard.ch neue Sitzungen ab, statt sie in eine Warteschlange zu stellen.
REST- und CDP-Zugriff
Dieselben Browser-Sitzungen gibt es auch ohne MCP. Erstelle und verwalte sie über die Guard.ch-API und verbinde dann Playwright oder Puppeteer mit dem zurückgegebenen CDP-Websocket.
POST /v8/web/sessionserstellt idempotent eine Sitzung, optional mit Bildschirmgrösse, und gibt connectUrl sowie liveViewUrl zurückGET /v8/web/sessionslistet aktive Sitzungen auf; mit status=all erhältst du die Historie der letzten 30 TageDELETE /v8/web/sessions/:idbeendet eine SitzungGET /v8/web/usagegibt Nutzung und Parallelität zurück
Dieses Beispiel erstellt eine Sitzung. Übergib ihre connectUrl wie unten gezeigt an Playwright.
curl -X POST https://api.guard.ch/v8/web/sessions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"timeout":900,"country":"us","screen":{"width":1440,"height":900},"idempotencyKey":"task-123"}'const browser = await chromium.connectOverCDP(session.connectUrl);Nächste Schritte
Erstelle unter Apps einen Schlüssel, hinterlege den Endpunkt in deinem Client und bitte ihn, eine Seite zu öffnen. Brauchst du Hilfe mit einem Client oder planst du ein grösseres Deployment: Melde dich bei uns.