CLI commands
MCP
openclaw mcp remplit deux fonctions :
- exécuter OpenClaw en tant que serveur MCP avec
openclaw mcp serve - gérer les définitions de serveurs MCP sortants administrées par OpenClaw avec
list,show,status,doctor,probe,add,set,configure,tools,login,logout,reloadetunset
Avec serve, OpenClaw agit en tant que serveur MCP. Avec les autres sous-commandes, OpenClaw agit en tant que registre côté client MCP pour les serveurs que ses propres environnements d’exécution pourront utiliser ultérieurement.
Utilisez openclaw acp lorsqu’OpenClaw doit héberger lui-même une session d’environnement de développement et acheminer cet environnement d’exécution via ACP.
Choisir le bon mode d’utilisation de MCP
| Objectif | Utilisation | Pourquoi |
|---|---|---|
| Permettre à un client MCP externe de lire et d’envoyer des conversations de canaux OpenClaw | openclaw mcp serve |
OpenClaw est le serveur MCP et expose via stdio les conversations prises en charge par le Gateway. |
| Enregistrer des serveurs MCP tiers pour les exécutions d’agents administrées par OpenClaw | openclaw mcp add, set, configure, tools, login |
OpenClaw est le registre côté client MCP et projette ensuite ces serveurs dans les environnements d’exécution compatibles. |
| Vérifier un serveur enregistré sans exécuter un tour d’agent | openclaw mcp status, doctor, probe |
status et doctor inspectent la configuration ; probe ouvre une connexion MCP active et répertorie les fonctionnalités. |
| Modifier la configuration MCP depuis un navigateur | Interface de contrôle /settings/mcp (alias /mcp) |
La page affiche l’inventaire, l’activation, les résumés OAuth et des filtres, des suggestions de commandes et un éditeur mcp ciblé. |
| Fournir à Codex app-server un serveur MCP natif ciblé | mcp.servers.<name>.codex |
Le bloc codex affecte uniquement la projection des fils de discussion de Codex app-server et est retiré avant la transmission de la configuration native. |
| Exécuter des sessions d’environnement hébergées par ACP | openclaw acp et Agents ACP |
Le mode pont ACP n’accepte pas l’injection de serveurs MCP par session ; configurez plutôt des ponts de Gateway ou de Plugin. |
OpenClaw en tant que serveur MCP
Il s’agit du mode openclaw mcp serve.
Quand utiliser serve
Utilisez openclaw mcp serve lorsque :
- Codex, Claude Code ou un autre client MCP doit communiquer directement avec des conversations de canaux prises en charge par OpenClaw
- vous disposez déjà d’un Gateway OpenClaw local ou distant avec des sessions acheminées
- vous souhaitez utiliser un serveur MCP unique fonctionnant avec tous les systèmes de canaux d’OpenClaw, plutôt que d’exécuter des ponts distincts pour chaque canal
Utilisez plutôt openclaw acp lorsqu’OpenClaw doit héberger lui-même l’environnement d’exécution de développement et conserver la session de l’agent dans OpenClaw.
Fonctionnement
openclaw mcp serve démarre un serveur MCP stdio. Le client MCP est propriétaire de ce processus. Tant que le client maintient la session stdio ouverte, le pont se connecte à un Gateway OpenClaw local ou distant via WebSocket et expose les conversations de canaux acheminées via MCP.
Le client lance le pont
Le client MCP lance openclaw mcp serve.
Le pont se connecte au Gateway
Le pont se connecte au Gateway OpenClaw via WebSocket.
Les sessions deviennent des conversations MCP
Les sessions acheminées deviennent des conversations MCP et des outils de transcription et d’historique.
Mise en file d’attente des événements en direct
Les événements en direct sont mis en file d’attente en mémoire tant que le pont est connecté.
Notifications push Claude facultatives
Si le mode de canal Claude est activé, la même session peut également recevoir des notifications push propres à Claude.
Comportement important
- l’état de la file d’attente en direct commence lorsque le pont se connecte
- l’historique antérieur des transcriptions est lu avec
messages_read - les notifications push Claude n’existent que tant que la session MCP est active
- lorsque le client se déconnecte, le pont s’arrête et la file d’attente en direct disparaît
- les points d’entrée d’agent ponctuels tels que
openclaw agentetopenclaw infer model runarrêtent tous les environnements d’exécution MCP intégrés qu’ils ouvrent une fois la réponse terminée, afin que les exécutions répétées par script n’accumulent pas de processus enfants MCP stdio - les serveurs MCP stdio lancés par OpenClaw, qu’ils soient intégrés ou configurés par l’utilisateur, sont arrêtés avec toute leur arborescence de processus lors de l’arrêt, afin que les sous-processus enfants démarrés par le serveur ne survivent pas après l’arrêt du client stdio parent
- la suppression ou la réinitialisation d’une session libère les clients MCP de cette session via le mécanisme partagé de nettoyage des environnements d’exécution, de sorte qu’aucune connexion stdio persistante ne reste associée à une session supprimée
Choisir un mode client
Clients MCP génériques
Outils MCP standard uniquement. Utilisez conversations_list, messages_read, events_poll, events_wait, messages_send et les outils d’approbation.
Claude Code
Outils MCP standard avec l’adaptateur de canal propre à Claude. Activez --claude-channel-mode on ou conservez la valeur par défaut auto.
Éléments exposés par serve
Le pont utilise les métadonnées existantes d’acheminement des sessions du Gateway pour exposer les conversations prises en charge par les canaux. Une conversation apparaît lorsqu’OpenClaw possède déjà un état de session avec un itinéraire connu, tel que :
channel- les métadonnées du destinataire ou de la destination
- un
accountIdfacultatif - un
threadIdfacultatif
Les clients MCP disposent ainsi d’un emplacement unique pour :
- répertorier les conversations récentes acheminées
- lire l’historique récent des transcriptions
- attendre de nouveaux événements entrants
- renvoyer une réponse via le même itinéraire
- voir les demandes d’approbation reçues tant que le pont est connecté
Utilisation
Gateway local
openclaw mcp serveGateway distant (jeton)
openclaw mcp serve --url wss://gateway-host:18789 --token-file ~/.openclaw/gateway.tokenGateway distant (mot de passe)
openclaw mcp serve --url wss://gateway-host:18789 --password-file ~/.openclaw/gateway.passwordMode détaillé / Claude désactivé
openclaw mcp serve --verboseopenclaw mcp serve --claude-channel-mode offOutils du pont
conversations_list
Répertorie les conversations récentes liées à des sessions qui possèdent déjà des métadonnées d’acheminement dans l’état des sessions du Gateway.
Filtres : limit (500 maximum), search, channel, includeDerivedTitles, includeLastMessage.
conversation_get
Renvoie une conversation à partir de session_key en effectuant une recherche directe de session dans le Gateway.
messages_read
Lit les messages récents de la transcription d’une conversation liée à une session. La valeur par défaut de limit est 20, avec un maximum de 200.
attachments_fetch
Extrait les blocs de contenu non textuel d’un message de transcription. Il s’agit d’une vue des métadonnées du contenu de la transcription, et non d’un stockage autonome et persistant d’objets de pièces jointes.
events_poll
Lit les événements en direct mis en file d’attente depuis un curseur numérique. La valeur maximale de limit est 200.
events_wait
Effectue une interrogation longue jusqu’à l’arrivée du prochain événement en file d’attente correspondant ou jusqu’à l’expiration du délai (30 s par défaut, 300 s maximum).
Utilisez cette fonction lorsqu’un client MCP générique a besoin d’une remise presque en temps réel sans protocole push propre à Claude.
messages_send
Renvoie du texte via le même itinéraire que celui déjà enregistré pour la session.
Comportement actuel :
- nécessite un itinéraire de conversation existant
- utilise le canal, le destinataire, l’identifiant de compte et l’identifiant de fil de discussion de la session
- envoie uniquement du texte
permissions_list_open
Répertorie les demandes d’approbation d’exécution ou de Plugin en attente que le pont a observées depuis sa connexion au Gateway.
permissions_respond
Résout une demande d’approbation d’exécution ou de Plugin en attente avec :
allow-onceallow-alwaysdeny
Modèle d’événements
Le pont conserve une file d’attente d’événements en mémoire tant qu’il est connecté.
Types d’événements actuels :
messageexec_approval_requestedexec_approval_resolvedplugin_approval_requestedplugin_approval_resolvedclaude_permission_request
Notifications de canal Claude
Le pont peut également exposer des notifications de canal propres à Claude. Il s’agit de l’équivalent OpenClaw d’un adaptateur de canal Claude Code : les outils MCP standard restent disponibles, mais les messages entrants en direct peuvent également arriver sous forme de notifications MCP propres à Claude.
off
--claude-channel-mode off : outils MCP standard uniquement.
on
--claude-channel-mode on : active les notifications de canal Claude.
auto (par défaut)
--claude-channel-mode auto : valeur par défaut actuelle ; même comportement du pont qu’avec on.
Lorsque le mode de canal Claude est activé, le serveur annonce les fonctionnalités expérimentales de Claude et peut émettre :
notifications/claude/channelnotifications/claude/channel/permission
Comportement actuel du pont :
- les messages de transcription
userentrants sont transmis sous forme denotifications/claude/channel - les demandes d’autorisation Claude reçues via MCP sont suivies en mémoire
- si le propriétaire de la commande dans la conversation liée envoie ensuite
yes <id>ouno <id>(<id>est l’identifiant de demande à 5 lettres, sansl), le pont convertit ce message ennotifications/claude/channel/permission - ces notifications n’existent que pendant la session active ; si le client MCP se déconnecte, aucune cible push n’est disponible
Ce comportement est volontairement propre au client. Les clients MCP génériques doivent s’appuyer sur les outils d’interrogation standard.
Configuration du client MCP
Exemple de configuration d’un client stdio :
{ "mcpServers": { "openclaw": { "command": "openclaw", "args": [ "mcp", "serve", "--url", "wss://gateway-host:18789", "--token-file", "/path/to/gateway.token" ] } }}Pour la plupart des clients MCP génériques, commencez par l’ensemble d’outils standard et ignorez le mode Claude. Activez le mode Claude uniquement pour les clients qui prennent réellement en charge les méthodes de notification propres à Claude.
Options
openclaw mcp serve prend en charge :
--urlstringURL WebSocket du Gateway. Utilise par défaut gateway.remote.url lorsqu’il est configuré.
--tokenstringJeton du Gateway.
--token-filestringLire le jeton depuis un fichier.
--passwordstringMot de passe du Gateway.
--password-filestringLire le mot de passe depuis un fichier.
--claude-channel-mode"auto" | "on" | "off"Mode de notification de Claude. Valeur par défaut : auto.
-v, --verbosebooleanJournaux détaillés sur stderr.
Sécurité et frontière de confiance
Le pont n’invente pas le routage. Il expose uniquement les conversations que le Gateway sait déjà acheminer.
Cela signifie que :
- les listes d’expéditeurs autorisés, l’association et la confiance au niveau du canal relèvent toujours de la configuration du canal OpenClaw sous-jacent
messages_sendpeut uniquement répondre par l’intermédiaire d’une route existante enregistrée- l’état des approbations est actif et conservé uniquement en mémoire pour la session actuelle du pont
- l’authentification du pont doit utiliser les mêmes contrôles de jeton ou de mot de passe du Gateway que ceux auxquels vous feriez confiance pour tout autre client distant du Gateway
Si une conversation est absente de conversations_list, la cause habituelle n’est pas la configuration MCP. Il s’agit de métadonnées de routage manquantes ou incomplètes dans la session du Gateway sous-jacente.
Tests
OpenClaw fournit un test de fumée Docker déterministe pour ce pont :
pnpm test:docker:mcp-channelsCe test de fumée exécute un seul conteneur : il initialise l’état des conversations, démarre le Gateway, puis lance openclaw mcp serve comme processus enfant stdio et le pilote en tant que client MCP. Il vérifie la découverte des conversations, la lecture des transcriptions, la lecture des métadonnées des pièces jointes, le comportement de la file d’événements en direct, ainsi que les notifications de canal et d’autorisation de style Claude sur le véritable pont MCP stdio. Le routage des envois sortants (messages_send réutilisant la route de conversation enregistrée) est couvert séparément par les tests unitaires dans src/mcp/channel-server.test.ts.
C’est le moyen le plus rapide de prouver que le pont fonctionne sans intégrer un véritable compte Telegram, Discord ou iMessage à l’exécution du test.
Pour un contexte de test plus général, consultez Tests.
Résolution des problèmes
Aucune conversation renvoyée
Cela signifie généralement que la session du Gateway ne peut pas déjà être acheminée. Vérifiez que la session sous-jacente contient des métadonnées de routage enregistrées pour le canal ou fournisseur, le destinataire et, éventuellement, le compte ou fil de discussion.
events_poll ou events_wait omet les anciens messages
C’est normal. La file en direct démarre lorsque le pont se connecte. Lisez l’historique antérieur des transcriptions avec messages_read.
Les notifications de Claude ne s’affichent pas
Vérifiez tous les points suivants :
- le client a maintenu la session MCP stdio ouverte
--claude-channel-modeest défini suronouauto- le client comprend effectivement les méthodes de notification propres à Claude
- le message entrant est arrivé après la connexion du pont
Les approbations sont absentes
permissions_list_open affiche uniquement les demandes d’approbation observées pendant que le pont était connecté. Il ne s’agit pas d’une API durable d’historique des approbations.
OpenClaw comme registre de clients MCP
Il s’agit du parcours openclaw mcp list, show, status, doctor, probe, add, set,
configure, tools, login, logout, reload et unset.
Ces commandes n’exposent pas OpenClaw via MCP. Elles gèrent les définitions de serveurs MCP administrées par OpenClaw sous mcp.servers dans la configuration d’OpenClaw. Elles ne lisent pas les serveurs mcporter depuis config/mcporter.json.
Ces définitions enregistrées sont destinées aux environnements d’exécution qu’OpenClaw lancera ou configurera ultérieurement, comme OpenClaw intégré et d’autres adaptateurs d’environnement d’exécution. OpenClaw stocke les définitions de manière centralisée afin que ces environnements d’exécution n’aient pas à conserver leurs propres listes de serveurs MCP en double.
Comportement important
- ces commandes lisent ou écrivent uniquement la configuration d’OpenClaw
status,list,show,doctorsans--probe,set,configure,tools,logout,reloadetunsetne se connectent pas au serveur MCP cibleloginexécute le flux réseau OAuth MCP pour le serveur HTTP configuré et enregistre les identifiants locaux obtenusstatus --verboseaffiche le transport résolu, l’authentification, le délai d’expiration, le filtre et les indications d’appels d’outils parallèles sans se connecterdoctorvérifie les définitions enregistrées à la recherche de problèmes de configuration locale, tels que des commandes stdio manquantes, des répertoires de travail non valides, des fichiers TLS manquants, des serveurs désactivés, des valeurs sensibles littérales dans les en-têtes ou variables d’environnement et une autorisation OAuth incomplètedoctor --probeajoute la même preuve de connexion en direct queprobeune fois les vérifications statiques réussiesprobese connecte au serveur sélectionné ou à tous les serveurs configurés, répertorie les outils et signale les fonctionnalités et diagnosticsaddconstruit une définition à partir des options et la teste avant de l’enregistrer, sauf si--no-probeest défini ou si une autorisation OAuth est d’abord nécessaire- les adaptateurs d’environnement d’exécution déterminent les formes de transport qu’ils prennent effectivement en charge au moment de l’exécution
enabled: falseconserve un serveur enregistré, mais l’exclut de la découverte par l’environnement d’exécution intégrétimeoutetconnectTimeoutdéfinissent les délais d’expiration des requêtes et connexions par serveur, en secondessupportsParallelToolCalls: truedésigne les serveurs que les adaptateurs peuvent appeler simultanément- les serveurs HTTP peuvent utiliser des en-têtes statiques, une connexion OAuth, le contrôle de la vérification TLS et des chemins de certificat et de clé mTLS
- OpenClaw intégré expose les outils MCP configurés dans les profils d’outils normaux
codingetmessaging;minimalles masque toujours ettools.deny: ["bundle-mcp"]les désactive explicitement - les propriétés
toolFilter.includeettoolFilter.excludede chaque serveur filtrent les outils MCP découverts avant qu’ils ne deviennent des outils OpenClaw - les serveurs qui annoncent des ressources ou des invites exposent également des outils utilitaires permettant de répertorier ou lire les ressources et de répertorier ou récupérer les invites ; ces noms d’utilitaires générés (
resources_list,resources_read,prompts_list,prompts_get) utilisent le même filtre d’inclusion et d’exclusion - les modifications dynamiques de la liste d’outils MCP invalident le catalogue mis en cache pour cette session ; la découverte ou l’utilisation suivante l’actualise depuis le serveur
- les échecs répétés de requêtes d’outils ou de protocole MCP suspendent brièvement ce serveur afin qu’un serveur défaillant ne consomme pas l’intégralité du tour
- les environnements d’exécution MCP groupés et limités à une session sont libérés après
mcp.sessionIdleTtlMsmillisecondes d’inactivité (10 minutes par défaut ; définissez0pour désactiver ce comportement), et les exécutions intégrées ponctuelles les nettoient à la fin de l’exécution
Les adaptateurs d’environnement d’exécution peuvent normaliser ce registre partagé selon la forme attendue par leur client en aval. Par exemple, OpenClaw intégré consomme directement les valeurs transport d’OpenClaw, tandis que Claude Code et Gemini reçoivent des valeurs type natives de la CLI, telles que http, sse ou stdio.
Le serveur d’application Codex respecte également un bloc facultatif codex sur chaque serveur. Il s’agit
de métadonnées de projection OpenClaw réservées aux fils de discussion du serveur d’application Codex ; elles ne
modifient pas les sessions ACP, la configuration générique du harnais Codex ni les autres adaptateurs d’environnement d’exécution.
Utilisez une valeur codex.agents non vide pour projeter un serveur uniquement dans des identifiants
d’agents OpenClaw précis. Les listes d’agents vides, ne contenant que des espaces ou non valides sont rejetées par la validation
de la configuration et omises par le parcours de projection de l’environnement d’exécution au lieu de devenir
globales. Utilisez codex.defaultToolsApprovalMode (auto, prompt ou approve)
pour émettre la valeur native default_tools_approval_mode de Codex pour un serveur de confiance.
OpenClaw supprime les métadonnées codex avant de transmettre la configuration native mcp_servers
à Codex.
Définitions de serveurs MCP enregistrées
Commandes :
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>
Remarques :
listtrie les noms des serveurs.showsans nom affiche l’objet complet des serveurs MCP configurés.statusclasse les transports configurés sans se connecter.--verboseinclut les détails résolus du lancement, des délais d’expiration, d’OAuth, des filtres et des appels parallèles.doctoreffectue des vérifications statiques sans se connecter. Ajoutez--probelorsque la commande doit également vérifier que les serveurs activés peuvent se connecter.probese connecte et signale le nombre d’outils, la prise en charge des ressources et invites, la prise en charge des changements de liste et les diagnostics.addaccepte des options stdio telles que--command,--arg,--envet--cwd, ou des options HTTP telles que--url,--transport,--header,--auth oauth, ainsi que des options TLS, de délai d’expiration et de sélection des outils.setattend une valeur d’objet JSON sur la ligne de commande.configuremet à jour l’activation, les filtres d’outils, les délais d’expiration, OAuth, TLS et les indications d’appels d’outils parallèles sans remplacer la définition complète du serveur. Ajoutez--probepour vérifier le serveur mis à jour avant l’enregistrement.toolsmet à jour les filtres d’outils par serveur. Les entrées d’inclusion et d’exclusion sont des noms d’outils MCP et des motifs simples avec*.loginexécute le flux OAuth pour les serveurs HTTP configurés avecauth: "oauth". La première exécution affiche une URL d’autorisation ; relancez la commande avec--codeaprès l’approbation.logoutefface les identifiants OAuth enregistrés pour le serveur nommé sans supprimer sa définition enregistrée.reloadlibère les environnements d’exécution MCP en processus mis en cache uniquement pour le processus CLI actuel. Les processus Gateway ou d’agent exécutés dans un autre processus nécessitent toujours leur propre parcours de rechargement ou de redémarrage.- Utilisez
transport: "streamable-http"pour les serveurs MCP HTTP diffusables.openclaw mcp setnormalise également la valeur native de la CLItype: "http"vers la même forme de configuration canonique à des fins de compatibilité. unsetéchoue si le serveur nommé n’existe pas.
Exemples :
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 context7Recettes courantes de serveurs
Ces exemples enregistrent uniquement les définitions des serveurs. Exécutez ensuite openclaw mcp doctor --probe pour prouver que le serveur démarre et expose des outils.
Système de fichiers
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 --probeLimitez les serveurs de système de fichiers à la plus petite arborescence de répertoires que l’agent doit lire ou modifier.
Mémoire
openclaw mcp add memory \ --command npx \ --arg -y \ --arg @modelcontextprotocol/server-memoryopenclaw mcp probe memory --jsonUtilisez un filtre d’outils si le serveur expose des outils d’écriture qui ne doivent pas être accessibles aux agents normaux.
Script local
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 vérifie que cwd existe et que la commande peut être résolue depuis l’environnement configuré.
HTTP distant
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 --probeUtilisez OAuth lorsque le serveur distant le prend en charge. Si le serveur exige des en-têtes statiques, évitez de valider dans le dépôt des jetons porteurs en clair.
Bureau/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 --probeLes serveurs de contrôle direct du bureau héritent des autorisations du processus qu'ils lancent. Utilisez des filtres d'outils restrictifs et les invites d'autorisation du système d'exploitation.
Structures de sortie JSON
Utilisez --json pour les scripts et les tableaux de bord. Les ensembles de champs peuvent s'enrichir au fil du temps ; les consommateurs doivent donc ignorer les clés inconnues.
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": true, "path": "/home/user/.openclaw/openclaw.json", "servers": [ { "name": "docs", "ok": true, "issues": [ { "level": "warning", "message": "Les identifiants OAuth ne sont pas autorisés ; exécutez openclaw mcp login docs" } ] } ]}doctor --json se termine avec un code différent de zéro lorsqu'un serveur activé et vérifié présente un problème de niveau error. Les problèmes warning et info sont signalés, mais ne font pas échouer la commande à eux seuls.
probe --json
{ "generatedAt": "2026-05-31T09:00:00.000Z", "servers": { "docs": { "launch": "streamable-http https://mcp.example.com/mcp", "tools": 2, "resources": true, "listChanged": { "tools": true, "resources": false, "prompts": false } } }, "tools": ["docs__read_page", "docs__search"], "diagnostics": []}probe --json ouvre une session cliente MCP active et affiche directement son résultat ; contrairement à status/doctor, la sortie ne comporte aucun champ path de premier niveau. Les clés resources et prompts ne sont présentes que lorsque le serveur annonce réellement cette capacité (un serveur sans invites omet la clé prompts au lieu d'indiquer false). Utilisez probe pour prouver l'accessibilité et les capacités, et non pour les audits de configuration statique.
Exemple de structure de configuration :
{ "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_*"] } } } }}Transport stdio
Lance un processus enfant local et communique via stdin/stdout.
| Champ | Description |
|---|---|
command |
Exécutable à lancer (obligatoire) |
args |
Tableau d'arguments de ligne de commande |
env |
Variables d'environnement supplémentaires |
cwd / workingDirectory |
Répertoire de travail du processus |
Transport SSE / HTTP
Se connecte à un serveur MCP distant via les événements envoyés par le serveur HTTP.
| Champ | Description |
|---|---|
url |
URL HTTP ou HTTPS du serveur distant (obligatoire) |
headers |
Mappage clé-valeur facultatif des en-têtes HTTP (par exemple, des jetons d'authentification) |
connectionTimeoutMs |
Délai d'expiration de connexion par serveur en ms (facultatif) |
connectTimeout |
Délai d'expiration de connexion par serveur en secondes (facultatif) |
timeout / requestTimeoutMs |
Délai d'expiration des requêtes MCP par serveur en secondes ou en ms |
auth: "oauth" |
Utiliser les identifiants OAuth MCP enregistrés par openclaw mcp login |
sslVerify |
Définir sur false uniquement pour les points de terminaison HTTPS privés explicitement approuvés |
clientCert / clientKey |
Chemins du certificat et de la clé client mTLS |
supportsParallelToolCalls |
Indique que les appels simultanés sont sûrs pour ce serveur |
Exemple :
{ "mcp": { "servers": { "remote-tools": { "url": "https://mcp.example.com", "auth": "oauth", "timeout": 20, "headers": { "Authorization": "Bearer <token>" } } } }}Les valeurs sensibles dans url (informations utilisateur) et headers sont masquées dans les journaux et la sortie d'état. openclaw mcp doctor avertit lorsque des entrées headers ou env apparemment sensibles contiennent des valeurs littérales, afin que les opérateurs puissent retirer ces valeurs de la configuration validée dans le dépôt.
Flux de travail OAuth
OAuth est destiné aux serveurs MCP HTTP qui annoncent le flux OAuth MCP. Les en-têtes Authorization statiques sont ignorés pour un serveur lorsque auth: "oauth" est activé. Les identifiants enregistrés par openclaw mcp login fonctionnent avec le MCP intégré, les exécuteurs CLI et le serveur d'application Codex local.
Tant que les identifiants ne sont pas disponibles, OpenClaw omet uniquement ce serveur MCP de l'exécution de l'agent au lieu de faire échouer le tour de l'agent. L'opérateur, ou un agent disposant d'un accès au shell, peut alors exécuter openclaw mcp login <name> et utiliser le serveur lors d'un tour ultérieur.
Lorsqu'un service MCP distant s'appuie déjà sur un profil d'authentification OpenClaw distinct capable d'actualiser les identifiants, vous pouvez éventuellement définir oauth.authProfileId. OpenClaw actualise l'une ou l'autre source d'identifiants avant la projection d'exécution et transmet uniquement le jeton d'accès actuel au client MCP en aval.
Enregistrer le serveur
Ajoutez ou mettez à jour le serveur avec auth: "oauth" et les éventuelles métadonnées OAuth facultatives.
openclaw mcp set docs '{"url":"https://mcp.example.com/mcp","transport":"streamable-http","auth":"oauth","oauth":{"scope":"docs.read"}}'Pour un jeton porteur adossé à un profil d'authentification, enregistrez l'association au profil :
openclaw mcp set docs '{"url":"https://mcp.example.com/mcp","transport":"streamable-http","auth":"oauth","oauth":{"authProfileId":"docs:mcp"}}'Démarrer la connexion
Exécutez la connexion pour créer la demande d'autorisation.
openclaw mcp login docsOpenClaw affiche l'URL d'autorisation et stocke l'état temporaire du vérificateur OAuth dans le répertoire d'état d'OpenClaw.
Terminer avec le code
Après avoir approuvé la demande dans le navigateur, transmettez le code renvoyé à OpenClaw.
openclaw mcp login docs --code abc123Vérifier l'autorisation
Utilisez l'état ou le diagnostic pour confirmer la présence des jetons.
openclaw mcp status --verboseopenclaw mcp doctor docs --probeEffacer les identifiants
La déconnexion supprime les identifiants OAuth stockés, mais conserve la définition de serveur enregistrée.
openclaw mcp logout docsSi le fournisseur renouvelle les jetons ou si l'état d'autorisation reste bloqué, exécutez openclaw mcp logout <name>, puis répétez login. logout peut effacer les identifiants d'un serveur HTTP enregistré même après la suppression de auth: "oauth" de la configuration, tant que le nom et l'URL du serveur permettent toujours d'identifier l'entrée du magasin d'identifiants.
Transport HTTP avec diffusion en continu
streamable-http est une option de transport supplémentaire aux côtés de sse et stdio. Elle utilise la diffusion HTTP pour la communication bidirectionnelle avec les serveurs MCP distants.
| Champ | Description |
|---|---|
url |
URL HTTP ou HTTPS du serveur distant (obligatoire) |
transport |
Définissez sur "streamable-http" pour sélectionner ce transport ; en cas d’omission, OpenClaw utilise sse |
headers |
Mappage clé-valeur facultatif des en-têtes HTTP (par exemple, des jetons d’authentification) |
connectionTimeoutMs |
Délai d’expiration de la connexion par serveur en ms (facultatif) |
connectTimeout |
Délai d’expiration de la connexion par serveur en secondes (facultatif) |
timeout / requestTimeoutMs |
Délai d’expiration des requêtes MCP par serveur en secondes ou en ms |
auth: "oauth" |
Utilise les identifiants OAuth MCP enregistrés par openclaw mcp login |
sslVerify |
Définissez sur false uniquement pour les points de terminaison HTTPS privés explicitement approuvés |
clientCert / clientKey |
Chemins du certificat client mTLS et de la clé |
supportsParallelToolCalls |
Indique que les appels simultanés sont sûrs pour ce serveur |
La configuration OpenClaw utilise transport: "streamable-http" comme orthographe canonique. Les valeurs MCP natives de la CLI type: "http" sont acceptées lorsqu’elles sont enregistrées avec openclaw mcp set et corrigées par openclaw doctor --fix dans une configuration existante, mais transport est la valeur directement utilisée par OpenClaw intégré.
Exemple :
{ "mcp": { "servers": { "streaming-tools": { "url": "https://mcp.example.com/stream", "transport": "streamable-http", "connectTimeout": 10, "timeout": 30, "headers": { "Authorization": "Bearer <token>" } } } }}Interface de contrôle
L’interface de contrôle dans le navigateur comprend une page dédiée aux paramètres MCP à l’adresse /settings/mcp ; l’ancien chemin /mcp reste un alias. La page affiche le nombre de serveurs configurés, des récapitulatifs des serveurs activés, OAuth et filtrés, des lignes de transport par serveur, des commandes d’activation et de désactivation, des commandes CLI courantes et un éditeur limité à la section de configuration mcp.
Utilisez cette page pour les modifications opérateur et un inventaire rapide. Utilisez openclaw mcp doctor --probe ou openclaw mcp probe lorsque vous avez besoin d’une vérification en direct du serveur.
Procédure opérateur :
- Ouvrez l’interface de contrôle et choisissez MCP.
- Consultez les cartes récapitulatives pour connaître le nombre total de serveurs, les serveurs activés, OAuth et filtrés.
- Utilisez chaque ligne de serveur pour consulter le transport, l’authentification, le filtre, le délai d’expiration et les indications de commande.
- Basculez l’activation lorsque vous souhaitez conserver une définition tout en l’excluant de la découverte à l’exécution.
- Modifiez la section de configuration
mcpdédiée pour les changements structurels tels que de nouveaux serveurs, des en-têtes, TLS, des métadonnées OAuth ou des filtres d’outils. - Choisissez Enregistrer pour uniquement conserver la configuration, ou Enregistrer et publier pour l’appliquer par l’intermédiaire du chemin de configuration du Gateway.
- Exécutez
openclaw mcp doctor --probelorsque vous avez besoin de vérifier en direct que le serveur modifié démarre et répertorie les outils.
Remarques :
- les extraits de commande placent les noms de serveur entre guillemets afin que les noms inhabituels restent copiables dans un shell
- les valeurs affichées ressemblant à des URL sont masquées avant le rendu lorsqu’elles contiennent des identifiants intégrés
- la page ne démarre pas elle-même les transports MCP
- les environnements d’exécution actifs peuvent nécessiter
openclaw mcp reload, la publication de la configuration du Gateway ou un redémarrage du processus, selon le processus qui possède les clients MCP
Applications MCP
OpenClaw peut afficher les outils qui implémentent l’extension MCP Apps stable. Les applications sont facultatives, car leur HTML provient du serveur MCP configuré et peut demander des outils ou des ressources visibles par l’application à ce même serveur.
Activez le pont hôte :
openclaw config set mcp.apps.enabled true --strict-jsonRedémarrez le Gateway après avoir modifié ce paramètre. Lorsqu’il est activé, OpenClaw démarre un écouteur HTTP(S) réservé au bac à sable sur le port du Gateway plus un (pour le Gateway par défaut, 18790). L’interface de contrôle charge les applications depuis cette origine distincte ; l’écouteur ne sert jamais l’interface de contrôle, les routes Gateway authentifiées ni les données utilisateur.
Les connexions directes au Gateway doivent avoir accès aux deux ports. Si un proxy inverse ou un terminateur TLS expose l’interface de contrôle, attribuez aux applications une origine publique dédiée et transmettez uniquement cette origine à l’écouteur du bac à sable :
{ mcp: { apps: { enabled: true, sandboxOrigin: "https://mcp-apps.example.com", sandboxPort: 18790, }, },}L’origine du bac à sable doit être différente de celle de l’interface de contrôle. N’y hébergez aucun autre contenu authentifié ou sensible.
Par exemple, la démonstration React basique officielle peut être configurée comme suit :
{ mcp: { apps: { enabled: true }, servers: { "basic-react": { command: "npx", args: ["-y", "@modelcontextprotocol/server-basic-react", "--stdio"], }, }, },}Comportement et limites de sécurité :
- OpenClaw annonce l’extension
io.modelcontextprotocol/uiuniquement lorsque les applications sont activées. - Seules les ressources
ui://avec le type MIME exacttext/html;profile=mcp-appsont affichées. - Les ressources de l’interface utilisateur sont limitées à 2 Mio, placées derrière un proxy à double iframe sur une origine externe dédiée, chargées dans une origine d’application interne opaque et contraintes par une CSP dérivée des métadonnées de la ressource.
- Les outils réservés aux applications (
_meta.ui.visibility: ["app"]) restent absents des listes d’outils du modèle. Les applications ne peuvent appeler que les outils qui leur sont visibles sur leur serveur propriétaire. - Les autorisations d’application liées à l’origine, telles que la caméra, le microphone et la géolocalisation, ne sont pas accordées tant que les documents internes de l’application utilisent des origines opaques pour assurer l’isolation entre les applications.
- Le HTML de l’application, les arguments complets des outils et les résultats bruts résident dans un bail d’affichage en mémoire limité à dix minutes. Ils ne sont ni écrits sur le disque ni copiés dans les métadonnées d’aperçu de la transcription, et une vue expirée ne redémarre pas son environnement d’exécution MCP.
openclaw security auditémet un avertissement tant que le pont est activé. Désactivez-le avecopenclaw config set mcp.apps.enabled false --strict-jsonlorsqu’il n’est pas nécessaire.
Limites actuelles
Cette page documente le pont tel qu’il est fourni aujourd’hui.
Limites actuelles :
- la découverte des conversations dépend des métadonnées existantes des routes de session du Gateway
- aucun protocole push générique au-delà de l’adaptateur propre à Claude
- aucun outil de modification de message ni de réaction pour le moment
- le transport HTTP/SSE/streamable-http se connecte à un seul serveur distant ; aucun serveur amont multiplexé pour le moment
permissions_list_openinclut uniquement les approbations observées pendant que le pont est connecté