CLI commands
MCP
openclaw mcp hat zwei Aufgaben:
- OpenClaw als MCP-Server mit
openclaw mcp serveausführen - von OpenClaw verwaltete Definitionen ausgehender MCP-Server mit
list,show,status,doctor,probe,add,set,configure,tools,login,logout,reloadundunsetverwalten
Anders gesagt:
serveist OpenClaw, das als MCP-Server agiert- die anderen Unterbefehle sind OpenClaw, das als clientseitige MCP-Registry für MCP-Server agiert, die seine Laufzeiten später verwenden können
Verwenden Sie openclaw acp, wenn OpenClaw selbst eine Coding-Harness-Sitzung hosten und diese Laufzeit über ACP weiterleiten soll.
Den richtigen MCP-Pfad wählen
OpenClaw hat mehrere MCP-Oberflächen. Wählen Sie diejenige, die dazu passt, wer die Agent-Laufzeit besitzt und wer die Tools besitzt.
| Ziel | Verwenden | Warum |
|---|---|---|
| Einem externen MCP-Client das Lesen/Senden von OpenClaw-Kanalunterhaltungen ermöglichen | openclaw mcp serve |
OpenClaw ist der MCP-Server und stellt Gateway-gestützte Unterhaltungen über stdio bereit. |
| Drittanbieter-MCP-Server für von OpenClaw verwaltete Agent-Läufe speichern | openclaw mcp add, set, configure, tools, login |
OpenClaw ist die clientseitige MCP-Registry und projiziert diese Server später in geeignete Laufzeiten. |
| Einen gespeicherten Server prüfen, ohne einen Agent-Turn auszuführen | openclaw mcp status, doctor, probe |
status und doctor prüfen die Konfiguration; probe öffnet eine Live-MCP-Verbindung und listet Fähigkeiten auf. |
| MCP-Konfiguration im Browser bearbeiten | Control UI /mcp |
Die Seite zeigt Inventar, Aktivierung, OAuth-/Filterzusammenfassungen, Befehlshinweise und einen bereichsbezogenen mcp-Editor. |
| Codex app-server einen bereichsbezogenen nativen MCP-Server geben | mcp.servers.<name>.codex |
Der codex-Block wirkt sich nur auf die Thread-Projektion des Codex app-server aus und wird vor der nativen Konfigurationsübergabe entfernt. |
| ACP-gehostete Harness-Sitzungen ausführen | openclaw acp und ACP Agents |
Der ACP-Bridge-Modus akzeptiert keine MCP-Server-Injektion pro Sitzung; konfigurieren Sie stattdessen Gateway-/Plugin-Bridges. |
OpenClaw als MCP-Server
Dies ist der Pfad openclaw mcp serve.
Wann Sie serve verwenden sollten
Verwenden Sie openclaw mcp serve, wenn:
- Codex, Claude Code oder ein anderer MCP-Client direkt mit OpenClaw-gestützten Kanalunterhaltungen sprechen soll
- Sie bereits ein lokales oder entferntes OpenClaw Gateway mit weitergeleiteten Sitzungen haben
- Sie einen MCP-Server möchten, der über die Kanal-Backends von OpenClaw hinweg funktioniert, statt separate Bridges pro Kanal auszuführen
Verwenden Sie stattdessen openclaw acp, wenn OpenClaw die Coding-Laufzeit selbst hosten und die Agent-Sitzung innerhalb von OpenClaw behalten soll.
Funktionsweise
openclaw mcp serve startet einen stdio-MCP-Server. Der MCP-Client besitzt diesen Prozess. Solange der Client die stdio-Sitzung offen hält, verbindet sich die Bridge über WebSocket mit einem lokalen oder entfernten OpenClaw Gateway und stellt weitergeleitete Kanalunterhaltungen über MCP bereit.
Client spawns the bridge
Der MCP-Client startet openclaw mcp serve.
Bridge connects to Gateway
Die Bridge verbindet sich über WebSocket mit dem OpenClaw Gateway.
Sessions become MCP conversations
Weitergeleitete Sitzungen werden zu MCP-Unterhaltungen und Transkript-/Verlaufstools.
Live events queue
Live-Ereignisse werden im Speicher in eine Warteschlange gestellt, während die Bridge verbunden ist.
Optional Claude push
Wenn der Claude-Kanalmodus aktiviert ist, kann dieselbe Sitzung auch Claude-spezifische Push-Benachrichtigungen empfangen.
Important behavior
- der Live-Warteschlangenstatus beginnt, wenn die Bridge eine Verbindung herstellt
- ältere Transkriptverläufe werden mit
messages_readgelesen - Claude-Push-Benachrichtigungen existieren nur, solange die MCP-Sitzung aktiv ist
- wenn der Client die Verbindung trennt, beendet sich die Bridge und die Live-Warteschlange ist weg
- einmalige Agent-Einstiegspunkte wie
openclaw agentundopenclaw infer model runbeenden alle gebündelten MCP-Laufzeiten, die sie öffnen, sobald die Antwort abgeschlossen ist, sodass wiederholte geskriptete Läufe keine stdio-MCP-Kindprozesse ansammeln - von OpenClaw gestartete stdio-MCP-Server (gebündelt oder benutzerkonfiguriert) werden beim Herunterfahren als Prozessbaum beendet, sodass vom Server gestartete Kind-Unterprozesse nach dem Beenden des übergeordneten stdio-Clients nicht weiterlaufen
- das Löschen oder Zurücksetzen einer Sitzung entsorgt die MCP-Clients dieser Sitzung über den gemeinsamen Laufzeit-Bereinigungspfad, sodass keine verbleibenden stdio-Verbindungen an eine entfernte Sitzung gebunden bleiben
Einen Client-Modus wählen
Verwenden Sie dieselbe Bridge auf zwei verschiedene Arten:
Generic MCP clients
Nur Standard-MCP-Tools. Verwenden Sie conversations_list, messages_read, events_poll, events_wait, messages_send und die Genehmigungstools.
Claude Code
Standard-MCP-Tools plus der Claude-spezifische Kanaladapter. Aktivieren Sie --claude-channel-mode on oder belassen Sie die Standardeinstellung auto.
Was serve bereitstellt
Die Bridge verwendet vorhandene Gateway-Sitzungsroutenmetadaten, um kanalgestützte Unterhaltungen bereitzustellen. Eine Unterhaltung erscheint, wenn OpenClaw bereits Sitzungsstatus mit einer bekannten Route hat, wie etwa:
channel- Empfänger- oder Zielmetadaten
- optional
accountId - optional
threadId
Dadurch erhalten MCP-Clients einen Ort, um:
- zuletzt weitergeleitete Unterhaltungen aufzulisten
- aktuellen Transkriptverlauf zu lesen
- auf neue eingehende Ereignisse zu warten
- eine Antwort über dieselbe Route zurückzusenden
- Genehmigungsanfragen zu sehen, die eintreffen, während die Bridge verbunden ist
Verwendung
Local Gateway
openclaw mcp serveRemote Gateway (token)
openclaw mcp serve --url wss://gateway-host:18789 --token-file ~/.openclaw/gateway.tokenRemote Gateway (password)
openclaw mcp serve --url wss://gateway-host:18789 --password-file ~/.openclaw/gateway.passwordVerbose / Claude off
openclaw mcp serve --verboseopenclaw mcp serve --claude-channel-mode offBridge-Tools
Die aktuelle Bridge stellt diese MCP-Tools bereit:
conversations_list
Listet aktuelle sitzungsgestützte Unterhaltungen auf, die bereits Routenmetadaten im Gateway-Sitzungsstatus haben.
Nützliche Filter:
limitsearchchannelincludeDerivedTitlesincludeLastMessage
conversation_get
Gibt eine Unterhaltung anhand von session_key über eine direkte Gateway-Sitzungssuche zurück.
messages_read
Liest aktuelle Transkriptnachrichten für eine sitzungsgestützte Unterhaltung.
attachments_fetch
Extrahiert nicht-textuelle Nachrichteninhaltsblöcke aus einer Transkriptnachricht. Dies ist eine Metadatenansicht über Transkriptinhalte, kein eigenständiger dauerhafter Blob-Speicher für Anhänge.
events_poll
Liest seit einem numerischen Cursor eingereihte Live-Ereignisse.
events_wait
Führt Long-Polling aus, bis das nächste passende eingereihte Ereignis eintrifft oder ein Timeout abläuft.
Verwenden Sie dies, wenn ein generischer MCP-Client nahezu Echtzeit-Zustellung ohne Claude-spezifisches Push-Protokoll benötigt.
messages_send
Sendet Text über dieselbe Route zurück, die bereits in der Sitzung aufgezeichnet ist.
Aktuelles Verhalten:
- erfordert eine vorhandene Unterhaltungsroute
- verwendet Kanal, Empfänger, Konto-ID und Thread-ID der Sitzung
- sendet nur Text
permissions_list_open
Listet ausstehende exec-/Plugin-Genehmigungsanfragen auf, die die Bridge seit ihrer Verbindung mit dem Gateway beobachtet hat.
permissions_respond
Löst eine ausstehende exec-/Plugin-Genehmigungsanfrage auf mit:
allow-onceallow-alwaysdeny
Ereignismodell
Die Bridge hält eine Ereigniswarteschlange im Speicher, solange sie verbunden ist.
Aktuelle Ereignistypen:
messageexec_approval_requestedexec_approval_resolvedplugin_approval_requestedplugin_approval_resolvedclaude_permission_request
Claude-Kanalbenachrichtigungen
Die Bridge kann auch Claude-spezifische Kanalbenachrichtigungen bereitstellen. Dies ist das OpenClaw-Äquivalent eines Claude Code-Kanaladapters: Standard-MCP-Tools bleiben verfügbar, aber eingehende Live-Nachrichten können auch als Claude-spezifische MCP-Benachrichtigungen eintreffen.
off
--claude-channel-mode off: nur Standard-MCP-Tools.
on
--claude-channel-mode on: Claude-Kanalbenachrichtigungen aktivieren.
auto (default)
--claude-channel-mode auto: aktuelle Standardeinstellung; dasselbe Bridge-Verhalten wie on.
Wenn der Claude-Kanalmodus aktiviert ist, kündigt der Server experimentelle Claude-Fähigkeiten an und kann Folgendes ausgeben:
notifications/claude/channelnotifications/claude/channel/permission
Aktuelles Bridge-Verhalten:
- eingehende
user-Transkriptnachrichten werden alsnotifications/claude/channelweitergeleitet - über MCP empfangene Claude-Berechtigungsanfragen werden im Speicher verfolgt
- wenn der Befehlsinhaber in der verknüpften Unterhaltung später
yes abcdeoderno abcdesendet, wandelt die Bridge dies innotifications/claude/channel/permissionum - diese Benachrichtigungen gelten nur für Live-Sitzungen; wenn der MCP-Client die Verbindung trennt, gibt es kein Push-Ziel
Dies ist absichtlich clientspezifisch. Generische MCP-Clients sollten sich auf die Standard-Polling-Tools verlassen.
MCP-Client-Konfiguration
Beispiel für eine stdio-Client-Konfiguration:
{ "mcpServers": { "openclaw": { "command": "openclaw", "args": [ "mcp", "serve", "--url", "wss://gateway-host:18789", "--token-file", "/path/to/gateway.token" ] } }}Für die meisten generischen MCP-Clients beginnen Sie mit der Standard-Tool-Oberfläche und ignorieren den Claude-Modus. Schalten Sie den Claude-Modus nur für Clients ein, die die Claude-spezifischen Benachrichtigungsmethoden tatsächlich verstehen.
Optionen
openclaw mcp serve unterstützt:
--urlstringGateway-WebSocket-URL.
--tokenstringGateway-Token.
--token-filestringToken aus Datei lesen.
--passwordstringGateway-Passwort.
--password-filestringPasswort aus Datei lesen.
--claude-channel-mode"auto" | "on" | "off"Claude-Benachrichtigungsmodus.
-v, --verbosebooleanAusführliche Logs auf stderr.
Sicherheits- und Vertrauensgrenze
Die Bridge erfindet kein Routing. Sie macht nur Unterhaltungen verfügbar, die Gateway bereits routen kann.
Das bedeutet:
- Sender-Allowlists, Pairing und Vertrauen auf Kanalebene gehören weiterhin zur zugrunde liegenden OpenClaw-Kanalkonfiguration
messages_sendkann nur über eine vorhandene gespeicherte Route antworten- der Genehmigungsstatus ist nur für die aktuelle Bridge-Sitzung live/im Speicher
- Bridge-Authentifizierung sollte dieselben Gateway-Token- oder Passwortkontrollen verwenden, denen Sie auch für jeden anderen Remote-Gateway-Client vertrauen würden
Wenn eine Unterhaltung in conversations_list fehlt, liegt die übliche Ursache nicht in der MCP-Konfiguration. Es fehlen Routenmetadaten in der zugrunde liegenden Gateway-Sitzung, oder sie sind unvollständig.
Testen
OpenClaw liefert einen deterministischen Docker-Smoke-Test für diese Bridge:
pnpm test:docker:mcp-channelsDieser Smoke-Test:
- startet einen Gateway-Container mit Seed-Daten
- startet einen zweiten Container, der
openclaw mcp serveerzeugt - verifiziert Unterhaltungserkennung, Lesen von Transkripten, Lesen von Anhangsmetadaten, Verhalten der Live-Event-Queue und Routing ausgehender Sendungen
- validiert Claude-artige Kanal- und Berechtigungsbenachrichtigungen über die echte stdio-MCP-Bridge
Dies ist der schnellste Weg, um nachzuweisen, dass die Bridge funktioniert, ohne ein echtes Telegram-, Discord- oder iMessage-Konto in den Testlauf einzubinden.
Weiteren Testkontext finden Sie unter Testen.
Fehlerbehebung
Keine Unterhaltungen zurückgegeben
Bedeutet in der Regel, dass die Gateway-Sitzung noch nicht routbar ist. Bestätigen Sie, dass die zugrunde liegende Sitzung gespeicherte Kanal-/Provider-, Empfänger- und optionale Konto-/Thread-Routenmetadaten enthält.
events_poll oder events_wait verpasst ältere Nachrichten
Erwartet. Die Live-Queue beginnt, wenn die Bridge eine Verbindung herstellt. Lesen Sie ältere Transkriptverläufe mit messages_read.
Claude-Benachrichtigungen werden nicht angezeigt
Prüfen Sie all dies:
- der Client hat die stdio-MCP-Sitzung offen gehalten
--claude-channel-modeistonoderauto- der Client versteht tatsächlich die Claude-spezifischen Benachrichtigungsmethoden
- die eingehende Nachricht ist nach dem Verbindungsaufbau der Bridge eingetroffen
Genehmigungen fehlen
permissions_list_open zeigt nur Genehmigungsanfragen, die beobachtet wurden, während die Bridge verbunden war. Es ist keine dauerhafte API für Genehmigungsverläufe.
OpenClaw als MCP-Client-Registry
Dies ist der Pfad für openclaw mcp list, show, status, doctor, probe, add, set,
configure, tools, login, logout, reload und unset.
Diese Befehle stellen OpenClaw nicht über MCP bereit. Sie verwalten von OpenClaw verwaltete MCP-Serverdefinitionen unter mcp.servers in der OpenClaw-Konfiguration. Sie lesen keine mcporter-Server aus config/mcporter.json.
Diese gespeicherten Definitionen sind für Laufzeiten bestimmt, die OpenClaw später startet oder konfiguriert, etwa eingebettetes OpenClaw und andere Laufzeitadapter. OpenClaw speichert die Definitionen zentral, damit diese Laufzeiten keine eigenen doppelten MCP-Serverlisten pflegen müssen.
Wichtiges Verhalten
- diese Befehle lesen oder schreiben nur die OpenClaw-Konfiguration
status,list,show,doctorohne--probe,set,configure,tools,logout,reloadundunsetverbinden sich nicht mit dem Ziel-MCP-Serverloginführt den MCP-OAuth-Netzwerkfluss für den konfigurierten HTTP-Server aus und speichert die daraus resultierenden lokalen Zugangsdatenstatus --verbosegibt aufgelösten Transport, Authentifizierung, Timeout, Filter und Hinweise zu parallelen Tool-Aufrufen aus, ohne eine Verbindung herzustellendoctorprüft gespeicherte Definitionen auf lokale Einrichtungsprobleme wie fehlende stdio-Befehle, ungültige Arbeitsverzeichnisse, fehlende TLS-Dateien, deaktivierte Server, wörtliche sensible Header-/Env-Werte und unvollständige OAuth-Autorisierungdoctor --probeergänzt nach bestandenen statischen Prüfungen denselben Live-Verbindungsnachweis wieprobeprobeverbindet sich mit dem ausgewählten Server oder allen konfigurierten Servern, listet Tools auf und meldet Fähigkeiten/Diagnosenadderstellt eine Definition aus Flags und prüft sie vor dem Speichern, sofern--no-probenicht gesetzt ist oder zuerst eine OAuth-Autorisierung erforderlich ist- Laufzeitadapter entscheiden zur Ausführungszeit, welche Transportformen sie tatsächlich unterstützen
enabled: falsehält einen Server gespeichert, schließt ihn aber aus der eingebetteten Laufzeiterkennung austimeoutundconnectTimeoutlegen pro Server Anfrage- und Verbindungstimeouts in Sekunden festsupportsParallelToolCalls: truemarkiert Server, die Adapter gleichzeitig aufrufen können- HTTP-Server können statische Header, OAuth-Login, TLS-Verifikationssteuerung und mTLS-Zertifikat-/Schlüsselpfade verwenden
- eingebettetes OpenClaw stellt konfigurierte MCP-Tools in den normalen Tool-Profilen
codingundmessagingbereit;minimalblendet sie weiterhin aus, undtools.deny: ["bundle-mcp"]deaktiviert sie explizit toolFilter.includeundtoolFilter.excludepro Server filtern erkannte MCP-Tools, bevor sie zu OpenClaw-Tools werden- Server, die Ressourcen oder Prompts ankündigen, stellen auch Hilfstools zum Auflisten/Lesen von Ressourcen und Auflisten/Abrufen von Prompts bereit; diese generierten Hilfsnamen (
resources_list,resources_read,prompts_list,prompts_get) verwenden denselben Include-/Exclude-Filter - dynamische Änderungen der MCP-Tool-Liste invalidieren den zwischengespeicherten Katalog für diese Sitzung; die nächste Erkennung/Nutzung aktualisiert ihn vom Server
- wiederholte MCP-Tool-Anfrage-/Protokollfehler pausieren diesen Server kurz, damit ein defekter Server nicht den gesamten Turn verbraucht
- sitzungsbezogene gebündelte MCP-Laufzeiten werden nach
mcp.sessionIdleTtlMsMillisekunden Leerlaufzeit abgeräumt (Standard 10 Minuten; setzen Sie0, um dies zu deaktivieren), und einmalige eingebettete Läufe bereinigen sie am Laufende
Laufzeitadapter können diese gemeinsame Registry in die Form normalisieren, die ihr nachgelagerter Client erwartet. Beispielsweise verwendet eingebettetes OpenClaw OpenClaw-transport-Werte direkt, während Claude Code und Gemini CLI-native type-Werte wie http, sse oder stdio erhalten.
Codex app-server berücksichtigt außerdem einen optionalen codex-Block auf jedem Server. Dies sind
OpenClaw-Projektionsmetadaten nur für Codex app-server-Threads; sie ändern keine
ACP-Sitzungen, generische Codex-Harness-Konfigurationen oder andere Laufzeitadapter.
Verwenden Sie nicht leere codex.agents, um einen Server nur in bestimmte OpenClaw-
Agent-IDs zu projizieren. Leere, blanke oder ungültige Agent-Listen werden von der Konfigurationsvalidierung
abgelehnt und vom Laufzeit-Projektionspfad ausgelassen, statt global zu werden.
Verwenden Sie codex.defaultToolsApprovalMode (auto, prompt oder approve),
um Codexs natives default_tools_approval_mode für einen vertrauenswürdigen Server auszugeben.
OpenClaw entfernt die codex-Metadaten, bevor es die native mcp_servers-
Konfiguration an Codex übergibt.
Gespeicherte MCP-Serverdefinitionen
OpenClaw speichert außerdem eine leichtgewichtige MCP-Server-Registry in der Konfiguration für Oberflächen, die von OpenClaw verwaltete MCP-Definitionen verwenden möchten.
Befehle:
openclaw mcp listopenclaw mcp show [name]openclaw mcp status [--verbose]openclaw mcp doctor [name] [--probe]openclaw mcp probe [name]openclaw mcp add <name> [flags]openclaw mcp set <name> <json>openclaw mcp configure <name> [flags]openclaw mcp tools <name> [--include csv] [--exclude csv] [--clear]openclaw mcp login <name> [--code code]openclaw mcp logout <name>openclaw mcp reloadopenclaw mcp unset <name>
Hinweise:
listsortiert Servernamen.showohne Namen gibt das vollständig konfigurierte MCP-Serverobjekt aus.statusklassifiziert konfigurierte Transporte, ohne eine Verbindung herzustellen.--verboseenthält aufgelöste Details zu Start, Timeout, OAuth, Filter und parallelen Aufrufen.doctorführt statische Prüfungen ohne Verbindungsaufbau durch. Fügen Sie--probehinzu, wenn der Befehl auch verifizieren soll, dass aktivierte Server eine Verbindung herstellen.probeverbindet sich und meldet Tool-Anzahlen, Unterstützung für Ressourcen/Prompts, Unterstützung für Listenänderungen und Diagnosen.addakzeptiert stdio-Flags wie--command,--arg,--envund--cwdoder HTTP-Flags wie--url,--transport,--header,--auth oauth, TLS, Timeout und Tool-Auswahl-Flags.seterwartet einen JSON-Objektwert auf der Befehlszeile.configureaktualisiert Aktivierung, Tool-Filter, Timeouts, OAuth, TLS und Hinweise zu parallelen Tool-Aufrufen, ohne die gesamte Serverdefinition zu ersetzen.toolsaktualisiert Tool-Filter pro Server. Include-/Exclude-Einträge sind MCP-Tool-Namen und einfache*-Globs.loginführt den OAuth-Fluss für HTTP-Server aus, die mitauth: "oauth"konfiguriert sind. Der erste Lauf gibt eine Autorisierungs-URL aus; führen Sie ihn nach der Genehmigung erneut mit--codeaus.logoutlöscht gespeicherte OAuth-Zugangsdaten für den benannten Server, ohne die gespeicherte Serverdefinition zu entfernen.reloadverwirft zwischengespeicherte MCP-Laufzeiten im Prozess. Gateway- oder Agent-Prozesse in einem anderen Prozess benötigen weiterhin ihren eigenen Reload- oder Neustartpfad.- Verwenden Sie
transport: "streamable-http"für Streamable-HTTP-MCP-Server.openclaw mcp setnormalisiert außerdem CLI-nativetype: "http"zur Kompatibilität in dieselbe kanonische Konfigurationsform. unsetschlägt fehl, wenn der benannte Server nicht existiert.
Beispiele:
openclaw mcp listopenclaw mcp show context7 --jsonopenclaw mcp status --verboseopenclaw mcp doctor --probeopenclaw mcp probe context7 --jsonopenclaw mcp add memory --command npx --arg -y --arg @modelcontextprotocol/server-memoryopenclaw mcp set context7 '{"command":"uvx","args":["context7-mcp"]}'openclaw mcp tools context7 --include 'resolve-library-id,get-library-docs'openclaw mcp set docs '{"url":"https://mcp.example.com","transport":"streamable-http"}'openclaw mcp configure docs --timeout 20 --connect-timeout 5 --include 'search,read_*'openclaw mcp configure docs --auth oauth --oauth-scope 'docs.read'openclaw mcp login docsopenclaw mcp logout docsopenclaw mcp unset context7Gängige Serverrezepte
Diese Beispiele speichern nur Serverdefinitionen. Führen Sie anschließend openclaw mcp doctor --probe aus, um nachzuweisen, dass der Server startet und Tools bereitstellt.
Dateisystem
openclaw mcp add files \ --command npx \ --arg -y \ --arg @modelcontextprotocol/server-filesystem \ --arg "$HOME/Documents" \ --include 'read_file,list_directory,search_files'openclaw mcp doctor files --probeBegrenzen Sie Dateisystemserver auf den kleinsten Verzeichnisbaum, den der Agent lesen oder bearbeiten soll.
Speicher
openclaw mcp add memory \ --command npx \ --arg -y \ --arg @modelcontextprotocol/server-memoryopenclaw mcp probe memory --jsonVerwenden Sie einen Tool-Filter, wenn der Server Schreibtools bereitstellt, die normalen Agenten nicht zur Verfügung stehen sollten.
Lokales Skript
openclaw mcp add local-tools \ --command node \ --arg ./dist/mcp-server.js \ --cwd /srv/openclaw-tools \ --env API_BASE=https://internal.exampleopenclaw mcp status --verbosedoctor prüft, dass cwd existiert und dass der Befehl aus der konfigurierten Umgebung aufgelöst wird.
Remote HTTP
openclaw mcp add docs \ --url https://mcp.example.com/mcp \ --transport streamable-http \ --auth oauth \ --oauth-scope docs.read \ --timeout 20 \ --connect-timeout 5 \ --include 'search,read_*'openclaw mcp doctor docs --probeVerwenden Sie OAuth, wenn der Remote-Server es unterstützt. Wenn der Server statische Header erfordert, vermeiden Sie es, wörtliche Bearer-Tokens zu committen.
Desktop/CUA
openclaw mcp set cua-driver '{"command":"cua-driver","args":["mcp"]}'openclaw mcp tools cua-driver --include 'list_apps,observe,click,type'openclaw mcp doctor cua-driver --probeServer für direkte Desktop-Steuerung erben die Berechtigungen des Prozesses, den sie starten. Verwenden Sie enge Tool-Filter und Berechtigungsabfragen auf Betriebssystemebene.
JSON-Ausgabeformen
Verwenden Sie --json für Skripte und Dashboards. Feldmengen können im Laufe der Zeit wachsen, daher sollten Verbraucher unbekannte Schlüssel ignorieren.
status --json
{ "path": "/home/user/.openclaw/openclaw.json", "servers": [ { "name": "docs", "configured": true, "enabled": true, "ok": true, "transport": "streamable-http", "launch": "streamable-http https://mcp.example.com/mcp", "auth": "oauth", "authStatus": { "hasTokens": true, "hasClientInformation": true, "hasCodeVerifier": false, "hasDiscoveryState": true, "hasLastAuthorizationUrl": false }, "requestTimeoutMs": 20000, "connectionTimeoutMs": 5000, "toolFilter": { "include": ["search", "read_*"], "exclude": [] }, "supportsParallelToolCalls": true } ]}doctor --json
{ "ok": false, "path": "/home/user/.openclaw/openclaw.json", "servers": [ { "name": "docs", "ok": false, "issues": [ { "level": "error", "message": "OAuth credentials are not authorized; run openclaw mcp login docs" } ] } ]}doctor --json wird mit einem Exit-Code ungleich null beendet, wenn ein aktivierter geprüfter Server einen Fehler hat. Warnungen werden gemeldet, lassen den Befehl für sich genommen aber nicht fehlschlagen.
probe --json
{ "path": "/home/user/.openclaw/openclaw.json", "generatedAt": "2026-05-31T09:00:00.000Z", "servers": { "docs": { "launch": "streamable-http https://mcp.example.com/mcp", "tools": 2, "resources": true, "prompts": false, "listChanged": { "tools": true, "resources": false, "prompts": false } } }, "tools": ["docs__read_page", "docs__search"], "diagnostics": []}probe öffnet eine Live-MCP-Client-Sitzung. Verwenden Sie es für Erreichbarkeits- und Funktionsnachweise, nicht für statische Konfigurationsprüfungen.
Beispiel-Konfigurationsform:
{ "mcp": { "servers": { "context7": { "command": "uvx", "args": ["context7-mcp"] }, "docs": { "url": "https://mcp.example.com", "transport": "streamable-http", "timeout": 20, "connectTimeout": 5, "supportsParallelToolCalls": true, "auth": "oauth", "oauth": { "scope": "docs.read" }, "sslVerify": true, "clientCert": "/path/to/client.crt", "clientKey": "/path/to/client.key", "toolFilter": { "include": ["search_*"], "exclude": ["admin_*"] } } } }}Stdio-Transport
Startet einen lokalen Kindprozess und kommuniziert über stdin/stdout.
| Feld | Beschreibung |
|---|---|
command |
Zu startende ausführbare Datei (erforderlich) |
args |
Array von Befehlszeilenargumenten |
env |
Zusätzliche Umgebungsvariablen |
cwd / workingDirectory |
Arbeitsverzeichnis für den Prozess |
SSE-/HTTP-Transport
Stellt über HTTP Server-Sent Events eine Verbindung zu einem Remote-MCP-Server her.
| Feld | Beschreibung |
|---|---|
url |
HTTP- oder HTTPS-URL des Remote-Servers (erforderlich) |
headers |
Optionale Schlüssel-Wert-Zuordnung von HTTP-Headern (z. B. Auth-Tokens) |
connectionTimeoutMs |
Verbindungstimeout pro Server in ms (optional) |
connectTimeout |
Verbindungstimeout pro Server in Sekunden (optional) |
timeout / requestTimeoutMs |
MCP-Request-Timeout pro Server in Sekunden oder ms |
auth: "oauth" |
MCP-OAuth-Token-Speicherung und openclaw mcp login verwenden |
sslVerify |
Nur für ausdrücklich vertrauenswürdige private HTTPS-Endpunkte auf false setzen |
clientCert / clientKey |
Pfade für mTLS-Clientzertifikat und -Schlüssel |
supportsParallelToolCalls |
Hinweis, dass gleichzeitige Aufrufe für diesen Server sicher sind |
Beispiel:
{ "mcp": { "servers": { "remote-tools": { "url": "https://mcp.example.com", "auth": "oauth", "timeout": 20, "headers": { "Authorization": "Bearer <token>" } } } }}Vertrauliche Werte in url (userinfo) und headers werden in Logs und Statusausgaben geschwärzt. openclaw mcp doctor warnt, wenn vertraulich wirkende headers- oder env-Einträge wörtliche Werte enthalten, damit Operatoren diese Werte aus committeter Konfiguration entfernen können.
OAuth-Workflow
OAuth ist für HTTP-MCP-Server vorgesehen, die den MCP-OAuth-Flow ankündigen. Statische Authorization-Header werden für einen Server ignoriert, solange auth: "oauth" aktiviert ist.
Server speichern
Fügen Sie den Server mit auth: "oauth" und optionalen OAuth-Metadaten hinzu oder aktualisieren Sie ihn.
openclaw mcp set docs '{"url":"https://mcp.example.com/mcp","transport":"streamable-http","auth":"oauth","oauth":{"scope":"docs.read"}}'Anmeldung starten
Führen Sie login aus, um die Autorisierungsanforderung zu erstellen.
openclaw mcp login docsOpenClaw gibt die Autorisierungs-URL aus und speichert temporären OAuth-Verifier-Zustand im OpenClaw-State-Verzeichnis.
Mit dem Code abschließen
Übergeben Sie den zurückgegebenen Code nach der Genehmigung im Browser wieder an OpenClaw.
openclaw mcp login docs --code abc123Autorisierung prüfen
Verwenden Sie status oder doctor, um zu bestätigen, dass Tokens vorhanden sind.
openclaw mcp status --verboseopenclaw mcp doctor docs --probeZugangsdaten löschen
Logout entfernt gespeicherte OAuth-Zugangsdaten, behält aber die gespeicherte Serverdefinition bei.
openclaw mcp logout docsWenn der Provider Tokens rotiert oder der Autorisierungszustand hängen bleibt, führen Sie openclaw mcp logout <name> aus und wiederholen Sie dann login. logout kann Zugangsdaten für einen gespeicherten HTTP-Server löschen, selbst nachdem auth: "oauth" aus der Konfiguration entfernt wurde, solange Servername und URL den Eintrag im Zugangsdaten-Speicher weiterhin identifizieren.
Streamable-HTTP-Transport
streamable-http ist eine zusätzliche Transportoption neben sse und stdio. Sie verwendet HTTP-Streaming für bidirektionale Kommunikation mit Remote-MCP-Servern.
| Feld | Beschreibung |
|---|---|
url |
HTTP- oder HTTPS-URL des Remote-Servers (erforderlich) |
transport |
Auf "streamable-http" setzen, um diesen Transport auszuwählen; wenn weggelassen, verwendet OpenClaw sse |
headers |
Optionale Schlüssel-Wert-Zuordnung von HTTP-Headern (z. B. Auth-Tokens) |
connectionTimeoutMs |
Verbindungstimeout pro Server in ms (optional) |
connectTimeout |
Verbindungstimeout pro Server in Sekunden (optional) |
timeout / requestTimeoutMs |
MCP-Request-Timeout pro Server in Sekunden oder ms |
auth: "oauth" |
MCP-OAuth-Token-Speicherung und openclaw mcp login verwenden |
sslVerify |
Nur für ausdrücklich vertrauenswürdige private HTTPS-Endpunkte auf false setzen |
clientCert / clientKey |
Pfade für mTLS-Clientzertifikat und -Schlüssel |
supportsParallelToolCalls |
Hinweis, dass gleichzeitige Aufrufe für diesen Server sicher sind |
Die OpenClaw-Konfiguration verwendet transport: "streamable-http" als kanonische Schreibweise. CLI-native MCP-Werte type: "http" werden akzeptiert, wenn sie über openclaw mcp set gespeichert werden, und in bestehender Konfiguration durch openclaw doctor --fix repariert, aber transport ist das, was eingebettetes OpenClaw direkt verarbeitet.
Beispiel:
{ "mcp": { "servers": { "streaming-tools": { "url": "https://mcp.example.com/stream", "transport": "streamable-http", "connectTimeout": 10, "timeout": 30, "headers": { "Authorization": "Bearer <token>" } } } }}Control UI
Die Browser-Control-UI enthält eine eigene MCP-Einstellungsseite unter /mcp. Sie zeigt die Anzahl konfigurierter Server, Zusammenfassungen zu aktiviert/OAuth/Filtern, Transportzeilen pro Server, Steuerelemente zum Aktivieren/Deaktivieren, gängige CLI-Befehle und einen bereichsbezogenen Editor für den Konfigurationsabschnitt mcp.
Verwenden Sie die Seite für Operator-Bearbeitungen und schnelle Inventarisierung. Verwenden Sie openclaw mcp doctor --probe oder openclaw mcp probe, wenn Sie einen Live-Server-Nachweis benötigen.
Operator-Workflow:
- Öffnen Sie die Control UI und wählen Sie MCP.
- Prüfen Sie die Übersichtskarten für Gesamtzahl, aktivierte, OAuth- und gefilterte Server.
- Nutzen Sie jede Serverzeile für Hinweise zu Transport, Auth, Filter, Timeout und Befehlen.
- Schalten Sie die Aktivierung um, wenn Sie eine Definition behalten, sie aber von der Laufzeiterkennung ausschließen möchten.
- Bearbeiten Sie den bereichsspezifischen
mcp-Konfigurationsabschnitt für strukturelle Änderungen wie neue Server, Header, TLS, OAuth-Metadaten oder Tool-Filter. - Wählen Sie Speichern, um nur die Konfiguration zu speichern, oder Speichern & Veröffentlichen, um sie über den Gateway-Konfigurationspfad anzuwenden.
- Führen Sie
openclaw mcp doctor --probeaus, wenn Sie Live-Nachweise benötigen, dass der bearbeitete Server startet und Tools auflistet.
Hinweise:
- Befehlssnippets setzen Servernamen in Anführungszeichen, damit ungewöhnliche Namen in einer Shell kopierbar bleiben
- angezeigte URL-ähnliche Werte werden vor dem Rendern redigiert, wenn sie eingebettete Anmeldedaten enthalten
- die Seite startet MCP-Transporte nicht selbst
- aktive Laufzeiten benötigen möglicherweise
openclaw mcp reload, eine Gateway-Konfigurationsveröffentlichung oder einen Prozessneustart, je nachdem, welcher Prozess die MCP-Clients besitzt
Aktuelle Grenzen
Diese Seite dokumentiert die Bridge, wie sie heute ausgeliefert wird.
Aktuelle Grenzen:
- die Konversationserkennung hängt von vorhandenen Gateway-Sitzungsrouten-Metadaten ab
- kein generisches Push-Protokoll über den Claude-spezifischen Adapter hinaus
- noch keine Tools zum Bearbeiten von Nachrichten oder zum Reagieren
- HTTP/SSE/streamable-http-Transport verbindet sich mit einem einzelnen Remote-Server; noch kein multiplexter Upstream
permissions_list_openenthält nur Genehmigungen, die beobachtet wurden, während die Bridge verbunden ist