58 58
59Claude vous pose des questions sur votre cas d'usage et crée un serveur HTTP distant ou un serveur stdio local.59Claude vous pose des questions sur votre cas d'usage et crée un serveur HTTP distant ou un serveur stdio local.
60 60
61## Installation des serveurs MCP61## Installer des serveurs MCP
62 62
63Les serveurs MCP peuvent être configurés de plusieurs façons selon vos besoins :63Les serveurs MCP peuvent être configurés de plusieurs façons selon vos besoins :
64 64
65### Option 1 : Ajouter un serveur HTTP distant65### Option 1 : ajouter un serveur HTTP distant
66 66
67Les serveurs HTTP sont l'option recommandée pour se connecter à des serveurs MCP distants. C'est le transport le plus largement supporté pour les services basés sur le cloud.67Les serveurs HTTP sont l'option recommandée pour se connecter à des serveurs MCP distants. C'est le transport le plus largement pris en charge pour les services basés sur le cloud.
68 68
69```bash theme={null}69```bash theme={null}
70# Syntaxe de base70# Basic syntax
71claude mcp add --transport http <name> <url>71claude mcp add --transport http <name> <url>
72 72
73# Exemple réel : Se connecter à Notion73# Real example: Connect to Notion
74claude mcp add --transport http notion https://mcp.notion.com/mcp74claude mcp add --transport http notion https://mcp.notion.com/mcp
75 75
76# Exemple avec jeton Bearer76# Example with Bearer token
77claude mcp add --transport http secure-api https://api.example.com/mcp \77claude mcp add --transport http secure-api https://api.example.com/mcp \
78 --header "Authorization: Bearer your-token"78 --header "Authorization: Bearer your-token"
79```79```
80 80
81Lors de la configuration des serveurs MCP via JSON dans `.mcp.json`, `~/.claude.json`, ou `claude mcp add-json`, le champ `type` accepte `streamable-http` comme alias pour `http`. La spécification MCP utilise le nom `streamable-http` pour ce transport, donc les configurations copiées à partir de la documentation du serveur fonctionnent sans modification.81Lorsque vous configurez des serveurs MCP via JSON dans `.mcp.json`, `~/.claude.json` ou `claude mcp add-json`, le champ `type` accepte `streamable-http` comme alias de `http`. La spécification MCP utilise le nom `streamable-http` pour ce transport, de sorte que les configurations copiées depuis la documentation d'un serveur fonctionnent sans modification.
82 82
83Une entrée JSON qui a une `url` mais pas de `type` est une erreur de configuration, car Claude Code lit une entrée sans `type` comme un serveur stdio. Claude Code ignore ce serveur et signale `MCP server "<name>" has a "url" but no "type"; add "type": "http" (or "sse" / "ws") to this entry`.83Une entrée JSON qui possède un `url` mais pas de `type` constitue une erreur de configuration, car Claude Code lit une entrée sans `type` comme un serveur stdio. Claude Code ignore ce serveur et signale `MCP server "<name>" has a "url" but no "type"; add "type": "http" (or "sse" / "ws") to this entry`.
84 84
85Seule une application hôte du SDK, telle qu'une application [Agent SDK](https://code.claude.com/docs/fr/agent-sdk/mcp.md) ou l'[application de bureau](https://code.claude.com/docs/fr/desktop.md), peut enregistrer un serveur `"type": "sdk"` en processus. Claude Code ignore une entrée `"type": "sdk"` dans `.mcp.json`, `~/.claude.json`, ou les paramètres et signale `Skipped — MCP server "<name>" declares type "sdk", which only an SDK host application can register`.85Seule une application hôte SDK, comme une application [Agent SDK](https://code.claude.com/docs/fr/agent-sdk/mcp.md) ou l'[application de bureau](https://code.claude.com/docs/fr/desktop.md), peut enregistrer un serveur in-process `"type": "sdk"`. Claude Code ignore une entrée `"type": "sdk"` dans `.mcp.json`, `~/.claude.json` ou les paramètres et signale `Skipped — MCP server "<name>" declares type "sdk", which only an SDK host application can register`.
86 86
87> [!NOTE]87> [!NOTE]
88>88>
89> Dans les exécutions `--output-format stream-json`, Claude Code signale également une entrée `--mcp-config` ignorée dans le [champ `mcp_server_errors`](https://code.claude.com/docs/fr/headless#stream-responses) de l'événement `system/init`, afin que les scripts puissent détecter que le serveur n'a jamais été chargé.89> Lors des exécutions `--output-format stream-json`, Claude Code signale également une entrée `--mcp-config` ignorée dans le [champ `mcp_server_errors`](https://code.claude.com/docs/fr/headless#stream-responses) de l'événement `system/init`, afin que les scripts puissent détecter que le serveur ne s'est jamais chargé.
90 90
91### Option 2 : Ajouter un serveur SSE distant91### Option 2 : ajouter un serveur SSE distant
92 92
93> [!WARNING]93> [!WARNING]
94>94>
95> Le transport SSE (Server-Sent Events) est déprécié. Utilisez plutôt des serveurs HTTP, si disponibles.95> Le transport SSE (Server-Sent Events) est déprécié. Utilisez plutôt des serveurs HTTP lorsqu'ils sont disponibles.
96 96
97Certains services exposent toujours uniquement un endpoint SSE. Ajoutez-les avec la même commande `claude mcp add --transport http <name> <url>` que [un serveur HTTP](#option-1-add-a-remote-http-server). Claude Code essaie d'abord le transport HTTP et bascule vers SSE lorsque le serveur ne l'accepte pas. Le basculement automatique nécessite Claude Code v2.1.265 ou ultérieur.97Certains services n'exposent encore qu'un endpoint SSE. Ajoutez-les avec la même commande `claude mcp add --transport http <name> <url>` que [pour un serveur HTTP](#option-1-add-a-remote-http-server). Claude Code essaie d'abord le transport HTTP et bascule sur SSE lorsque le serveur ne l'accepte pas. Ce basculement automatique nécessite Claude Code v2.1.265 ou une version ultérieure.
98 98
99Sur une version antérieure, ou pour vous connecter directement via SSE, passez plutôt `--transport sse` :99Sur une version antérieure, ou pour vous connecter directement via SSE, passez plutôt `--transport sse` :
100 100
101```bash theme={null}101```bash theme={null}
102# Syntaxe de base102# Basic syntax
103claude mcp add --transport sse <name> <url>103claude mcp add --transport sse <name> <url>
104 104
105# Exemple réel : Se connecter à Asana105# Real example: Connect to Asana
106claude mcp add --transport sse asana https://mcp.asana.com/sse106claude mcp add --transport sse asana https://mcp.asana.com/sse
107 107
108# Exemple avec en-tête d'authentification108# Example with authentication header
109claude mcp add --transport sse private-api https://api.company.com/sse \109claude mcp add --transport sse private-api https://api.company.com/sse \
110 --header "X-API-Key: your-key-here"110 --header "X-API-Key: your-key-here"
111```111```
112 112
113### Option 3 : Ajouter un serveur stdio local113### Option 3 : ajouter un serveur stdio local
114 114
115Les serveurs stdio s'exécutent en tant que processus locaux sur votre machine. Ils sont idéaux pour les outils qui ont besoin d'un accès direct au système ou de scripts personnalisés.115Les serveurs stdio s'exécutent comme des processus locaux sur votre machine. Ils sont idéaux pour les outils qui nécessitent un accès direct au système ou pour des scripts personnalisés.
116 116
117Claude Code définit `CLAUDE_PROJECT_DIR` dans l'environnement du serveur généré pour la racine du projet, afin que votre serveur puisse résoudre les chemins relatifs au projet sans dépendre du répertoire de travail. C'est le même répertoire que les hooks reçoivent dans leur variable `CLAUDE_PROJECT_DIR`. Lisez-le depuis l'intérieur de votre processus serveur, par exemple `process.env.CLAUDE_PROJECT_DIR` en Node ou `os.environ["CLAUDE_PROJECT_DIR"]` en Python.117Claude Code définit `CLAUDE_PROJECT_DIR` dans l'environnement du serveur lancé sur la racine du projet, afin que votre serveur puisse résoudre les chemins relatifs au projet sans dépendre du répertoire de travail. Il s'agit du même répertoire que celui que les hooks reçoivent dans leur variable `CLAUDE_PROJECT_DIR`. Lisez-la depuis votre processus serveur, par exemple `process.env.CLAUDE_PROJECT_DIR` en Node ou `os.environ["CLAUDE_PROJECT_DIR"]` en Python.
118 118
119`CLAUDE_PROJECT_DIR` est la racine de projet stable et ne change pas lorsque vous ajoutez ou supprimez des répertoires de travail en cours de session. Un serveur qui limite son propre accès au système de fichiers à un ensemble de répertoires autorisés devrait implémenter la requête MCP `roots/list` à la place. Claude Code répond à `roots/list` avec le répertoire de lancement de la session plus chaque [répertoire de travail supplémentaire](https://code.claude.com/docs/fr/permissions.md#working-directories) que vous avez accordé avec `--add-dir`, `/add-dir`, ou le paramètre `additionalDirectories`. Claude Code envoie `notifications/roots/list_changed` lorsque cet ensemble change.119`CLAUDE_PROJECT_DIR` est la racine stable du projet et ne change pas lorsque vous ajoutez ou supprimez des répertoires de travail en cours de session. Un serveur qui limite son propre accès au système de fichiers à un ensemble de répertoires autorisés doit plutôt implémenter la requête MCP `roots/list`. Claude Code répond à `roots/list` avec le répertoire de lancement de la session ainsi que chaque [répertoire de travail supplémentaire](https://code.claude.com/docs/fr/permissions.md#working-directories) que vous avez accordé avec `--add-dir`, `/add-dir` ou le paramètre `additionalDirectories`. Claude Code envoie `notifications/roots/list_changed` lorsque cet ensemble change.
120 120
121Cette variable est définie dans l'environnement du serveur, pas dans l'environnement de Claude Code lui-même, donc la référencer via l'expansion `${VAR}` dans la `command` ou `args` d'une entrée `.mcp.json` de portée projet ou d'une entrée de serveur de portée locale ou utilisateur dans `~/.claude.json` nécessite une valeur par défaut telle que `${CLAUDE_PROJECT_DIR:-.}`. Les configurations MCP fournies par les plugins substituent `${CLAUDE_PROJECT_DIR}` directement et n'ont pas besoin de la valeur par défaut.121Cette variable est définie dans l'environnement du serveur, et non dans celui de Claude Code lui-même. Y faire référence via l'expansion `${VAR}` dans le `command` ou les `args` d'une entrée `.mcp.json` de portée projet, ou d'une entrée de serveur de portée locale ou utilisateur dans `~/.claude.json`, nécessite donc une valeur par défaut telle que `${CLAUDE_PROJECT_DIR:-.}`. Les configurations MCP fournies par des plugins substituent `${CLAUDE_PROJECT_DIR}` directement et n'ont pas besoin de valeur par défaut.
122 122
123```bash theme={null}123```bash theme={null}
124# Syntaxe de base124# Basic syntax
125claude mcp add [options] <name> -- <command> [args...]125claude mcp add [options] <name> -- <command> [args...]
126 126
127# Exemple réel : Ajouter un serveur Airtable127# Real example: Add Airtable server
128claude mcp add --env AIRTABLE_API_KEY=YOUR_KEY --transport stdio airtable \128claude mcp add --env AIRTABLE_API_KEY=YOUR_KEY --transport stdio airtable \
129 -- npx -y airtable-mcp-server129 -- npx -y airtable-mcp-server
130```130```
131 131
132> [!NOTE]132> [!NOTE]
133>133>
134> Pour les serveurs stdio, le `--` (double tiret) sépare les options propres à Claude, telles que `--transport`, `--env`, et `--scope`, de la commande et des arguments qui exécutent le serveur. Tout ce qui suit `--` est transmis au serveur sans modification.134> Pour les serveurs stdio, le `--` (double tiret) sépare les options propres à Claude, comme `--transport`, `--env` et `--scope`, de la commande et des arguments qui exécutent le serveur. Tout ce qui suit `--` est transmis au serveur sans modification.
135>135>
136> Par exemple :136> Par exemple :
137>137>
140>140>
141> Sans `--`, Claude Code essaierait d'analyser les flags du serveur, comme `--port` ci-dessus, comme ses propres options.141> Sans `--`, Claude Code essaierait d'analyser les flags du serveur, comme `--port` ci-dessus, comme ses propres options.
142>142>
143> `--env` accepte plusieurs paires `KEY=value`. Si le nom du serveur vient directement après `--env`, la CLI lit le nom comme une autre paire et le rejette, donc placez au moins une autre option, telle que `--transport stdio`, entre `--env` et le nom du serveur.143> `--env` accepte plusieurs paires `KEY=value`. Si le nom du serveur suit directement `--env`, la CLI lit le nom comme une autre paire et le rejette. Placez donc au moins une autre option, comme `--transport stdio`, entre `--env` et le nom du serveur.
144 144
145#### Comment Claude Code arrête un serveur stdio145#### Comment Claude Code arrête un serveur stdio
146 146
147Lorsque Claude Code déconnecte un serveur stdio, par exemple à la fin de votre session, il envoie un signal au processus du serveur et attend brièvement qu'il se termine avant de le forcer à s'arrêter. Si votre serveur enregistre un état ou supprime des fichiers de verrouillage à l'arrêt, gérez le signal propre à votre plateforme et terminez dans ce délai :147Lorsque Claude Code déconnecte un serveur stdio, par exemple à la fin de votre session, il envoie un signal au processus du serveur et attend brièvement qu'il se termine avant de forcer son arrêt. Si votre serveur enregistre un état ou supprime des fichiers de verrou à l'arrêt, gérez le signal propre à votre plateforme et terminez dans ce délai :
148 148
149* **Sur macOS et Linux** : Claude Code envoie `SIGINT`, puis `SIGTERM` si le processus s'exécute toujours 100 millisecondes plus tard, puis `SIGKILL` après 400 millisecondes supplémentaires.149* **Sur macOS et Linux** : Claude Code envoie `SIGINT`, puis `SIGTERM` si le processus tourne encore 100 millisecondes plus tard, puis `SIGKILL` après 400 millisecondes supplémentaires.
150* **Sur Windows** : Claude Code ferme le stdin du serveur, puis met fin à l'arborescence de processus du serveur si le processus s'exécute toujours 300 millisecondes plus tard.150* **Sur Windows** : Claude Code ferme le stdin du serveur, puis met fin à l'arborescence de processus du serveur si le processus tourne encore 300 millisecondes plus tard.
151 151
152Avant la v2.1.296, Claude Code sous Windows mettait fin immédiatement à l'arborescence de processus du serveur, sans fermer d'abord stdin ni attendre.152Avant la v2.1.296, Claude Code sur Windows mettait fin immédiatement à l'arborescence de processus du serveur, sans fermer d'abord stdin ni attendre.
153 153
154### Option 4 : Ajouter un serveur WebSocket distant154### Option 4 : ajouter un serveur WebSocket distant
155 155
156Les serveurs WebSocket maintiennent une connexion bidirectionnelle persistante, ce qui convient aux serveurs MCP distants qui poussent des événements vers Claude sans être sollicités. Utilisez plutôt HTTP lorsque votre serveur répond uniquement aux requêtes, car HTTP supporte OAuth et le flag `claude mcp add --transport`, tandis que WebSocket ne supporte ni l'un ni l'autre.156Les serveurs WebSocket maintiennent une connexion bidirectionnelle persistante, ce qui convient aux serveurs MCP distants qui envoient des événements à Claude sans sollicitation. Utilisez plutôt HTTP lorsque votre serveur ne fait que répondre à des requêtes, car HTTP prend en charge OAuth et le flag `claude mcp add --transport`, alors que WebSocket ne prend en charge ni l'un ni l'autre.
157 157
158Configurez les serveurs WebSocket dans `.mcp.json` ou avec `claude mcp add-json` :158Configurez les serveurs WebSocket dans `.mcp.json` ou avec `claude mcp add-json` :
159 159
162 '{"type":"ws","url":"wss://mcp.example.com/socket","headers":{"Authorization":"Bearer YOUR_TOKEN"}}'162 '{"type":"ws","url":"wss://mcp.example.com/socket","headers":{"Authorization":"Bearer YOUR_TOKEN"}}'
163```163```
164 164
165L'entrée `type: "ws"` accepte les mêmes champs `url`, `headers`, `headersHelper`, `timeout`, et `alwaysLoad` que `http`. L'authentification est basée sur les en-têtes uniquement, donc passez un jeton statique dans `headers` ou générez-en un au moment de la connexion avec [`headersHelper`](#use-dynamic-headers-for-custom-authentication). Le flag `claude mcp add --transport` n'accepte pas `ws`.165L'entrée `type: "ws"` accepte les mêmes champs `url`, `headers`, `headersHelper`, `timeout` et `alwaysLoad` que `http`. L'authentification se fait uniquement par en-têtes : passez donc un jeton statique dans `headers` ou générez-en un au moment de la connexion avec [`headersHelper`](#use-dynamic-headers-for-custom-authentication). Le flag `claude mcp add --transport` n'accepte pas `ws`.
166 166
167### Ajouter un serveur à partir d'instructions de configuration écrites pour un autre client167### Ajouter un serveur à partir d'instructions d'installation écrites pour un autre client
168 168
169Les serveurs MCP ne sont pas spécifiques à Claude Code, donc les instructions de configuration d'un serveur peuvent être écrites pour Claude Desktop, Cursor, ou un autre client MCP et ne pas donner de commande `claude mcp add`. Pour ajouter le serveur quand même, cherchez dans ces instructions une URL, une commande de lancement, ou un bloc JSON :169Les serveurs MCP ne sont pas propres à Claude Code : les instructions d'installation d'un serveur peuvent donc être écrites pour Claude Desktop, Cursor ou un autre client MCP, sans fournir de commande `claude mcp add`. Pour ajouter tout de même le serveur, cherchez dans ces instructions une URL, une commande de lancement ou un bloc JSON :
170 170
171* **Une URL** telle que `https://mcp.example.com/mcp` : le serveur est distant.171* **Une URL** telle que `https://mcp.example.com/mcp` : le serveur est distant.
172* **Une commande de lancement** telle que `npx -y @example/mcp-server` : le serveur s'exécute sur votre machine.172* **Une commande de lancement** telle que `npx -y @example/mcp-server` : le serveur s'exécute sur votre machine.
173* **Un bloc JSON `mcpServers`** : configuration écrite pour le fichier de paramètres d'un autre client.173* **Un bloc JSON `mcpServers`** : une configuration écrite pour le fichier de paramètres d'un autre client.
174 174
175Chacun est l'une des entrées que les quatre options dans [Installation des serveurs MCP](#installing-mcp-servers) prennent. Trouvez la forme que vous avez ci-dessous pour la transformer en commande que Claude Code accepte. Chaque commande écrit dans la [portée locale](#local-scope) sauf si vous ajoutez `--scope project` ou `--scope user`.175Chacun correspond à l'une des entrées attendues par les quatre options de la section [Installer des serveurs MCP](#installing-mcp-servers). Trouvez ci-dessous la forme dont vous disposez pour la convertir en commande acceptée par Claude Code. Chaque commande écrit dans la [portée locale](#local-scope), sauf si vous ajoutez `--scope project` ou `--scope user`.
176 176
177#### Ajouter un serveur à partir d'une URL177#### Ajouter un serveur à partir d'une URL
178 178
179Une URL signifie que le serveur est distant. Pour un endpoint `https://`, ajoutez-le avec `--transport http`, ou suivez [Option 2](#option-2-add-a-remote-sse-server) lorsque les instructions indiquent que l'endpoint utilise SSE. Pour un endpoint `wss://`, utilisez plutôt [Option 4](#option-4-add-a-remote-websocket-server), car `--transport` n'accepte pas `ws` :179Une URL signifie que le serveur est distant. Pour un endpoint `https://`, ajoutez-le avec `--transport http`, ou suivez l'[Option 2](#option-2-add-a-remote-sse-server) lorsque les instructions indiquent que l'endpoint utilise SSE. Pour un endpoint `wss://`, utilisez plutôt l'[Option 4](#option-4-add-a-remote-websocket-server), car `--transport` n'accepte pas `ws` :
180 180
181```bash theme={null}181```bash theme={null}
182claude mcp add --transport http example https://mcp.example.com/mcp182claude mcp add --transport http example https://mcp.example.com/mcp
183```183```
184 184
185Si les instructions donnent également une clé API ou un en-tête de jeton, passez-le avec `--header` comme montré dans [Option 1](#option-1-add-a-remote-http-server).185Si les instructions fournissent également une clé API ou un en-tête de jeton, passez-le avec `--header` comme indiqué dans l'[Option 1](#option-1-add-a-remote-http-server).
186 186
187#### Ajouter un serveur à partir d'une commande `npx`, `uvx`, ou binaire187#### Ajouter un serveur à partir d'une commande `npx`, `uvx` ou d'un binaire
188 188
189Une commande de lancement signifie que le serveur s'exécute en tant que processus stdio local. Mettez la commande entière après `--`, afin que Claude Code transmette les flags tels que `-y` à la commande qui démarre le serveur au lieu de les lire comme ses propres options. Passez toutes les variables d'environnement que les instructions demandent avec `--env`, après le nom du serveur et avant `--` :189Une commande de lancement signifie que le serveur s'exécute comme un processus stdio local. Placez la commande entière après `--`, afin que Claude Code transmette les flags tels que `-y` à la commande qui démarre le serveur au lieu de les lire comme ses propres options. Passez les variables d'environnement demandées par les instructions avec `--env`, après le nom du serveur et avant `--` :
190 190
191```bash theme={null}191```bash theme={null}
192claude mcp add example --env API_KEY=your-key -- npx -y @example/mcp-server192claude mcp add example --env API_KEY=your-key -- npx -y @example/mcp-server
193```193```
194 194
195[Option 3](#option-3-add-a-local-stdio-server) couvre le séparateur `--` en détail.195L'[Option 3](#option-3-add-a-local-stdio-server) décrit en détail le séparateur `--`.
196 196
197#### Ajouter un serveur à partir d'un bloc JSON `mcpServers`197#### Ajouter un serveur à partir d'un bloc JSON `mcpServers`
198 198
199Un bloc `mcpServers` écrit pour un autre client MCP, tel que Claude Desktop, utilise la clé wrapper et la forme d'entrée que Claude Code lit. Passez à `claude mcp add-json` l'objet à l'intérieur de `mcpServers`, pas le wrapper. Deux entrées ont besoin d'une réparation d'abord :199Un bloc `mcpServers` écrit pour un autre client MCP, comme Claude Desktop, utilise la clé englobante et la forme d'entrée que lit Claude Code. Passez à `claude mcp add-json` l'objet situé à l'intérieur de `mcpServers`, et non l'enveloppe. Deux types d'entrées doivent d'abord être corrigés :
200 200
201* **Une `url` sans `type`** : ajoutez `"type": "http"`, `"type": "sse"`, ou `"type": "ws"` pour correspondre à l'endpoint. Claude Code lit une entrée sans `type` comme un serveur stdio, donc une entrée `url` sans `type` échoue.201* **Un `url` sans `type`** : ajoutez `"type": "http"`, `"type": "sse"` ou `"type": "ws"` selon l'endpoint. Claude Code lit une entrée sans `type` comme un serveur stdio, si bien qu'une entrée `url` sans `type` échoue.
202* **Une clé avec des caractères autres que des lettres, des chiffres, des tirets, et des traits de soulignement** : choisissez un nom de serveur qui utilise uniquement ces caractères. Sinon, la clé est le nom du serveur.202* **Une clé contenant des caractères autres que des lettres, des chiffres, des tirets et des tirets bas** : choisissez un nom de serveur qui n'utilise que ces caractères. Sinon, la clé est le nom du serveur.
203 203
204Par exemple, ce bloc :204Par exemple, ce bloc :
205 205
220claude mcp add-json example '{"command":"npx","args":["-y","@example/mcp-server"]}'220claude mcp add-json example '{"command":"npx","args":["-y","@example/mcp-server"]}'
221```221```
222 222
223[Ajouter des serveurs MCP à partir de la configuration JSON](#add-mcp-servers-from-json-configuration) couvre l'échappement du shell et le flag `--scope` pour `add-json`. Pour partager le serveur avec votre équipe à la place, ajoutez `--scope project`, ou ajoutez l'entrée sous `mcpServers` dans `.mcp.json` à la racine de votre projet et faites-en un commit. [Portée du projet](#project-scope) couvre comment Claude Code charge et approuve ce fichier.223La section [Ajouter des serveurs MCP à partir d'une configuration JSON](#add-mcp-servers-from-json-configuration) traite de l'échappement shell et du flag `--scope` pour `add-json`. Pour partager plutôt le serveur avec votre équipe, ajoutez `--scope project`, ou ajoutez l'entrée sous `mcpServers` dans `.mcp.json` à la racine de votre projet et faites-en un commit. La section [Portée projet](#project-scope) explique comment Claude Code charge et approuve ce fichier.
224 224
225Chaque commande `claude mcp add` et `claude mcp add-json` imprime une ligne `Added ...` en cas de succès. Pour vérifier que Claude Code s'est connecté, exécutez `claude mcp get <name>` ; [État du serveur](#server-status) couvre les statuts qu'il affiche et l'étape d'approbation pour les serveurs `.mcp.json`.225Chaque commande `claude mcp add` et `claude mcp add-json` affiche une ligne `Added ...` en cas de succès. Pour vérifier que Claude Code s'est connecté, exécutez `claude mcp get <name>` ; la section [Statut du serveur](#server-status) décrit les statuts affichés et l'étape d'approbation pour les serveurs `.mcp.json`.
226 226
227### Gestion de vos serveurs227### Gérer vos serveurs
228 228
229Une fois configurés, vous pouvez gérer vos serveurs MCP avec ces commandes :229Une fois configurés, vous pouvez gérer vos serveurs MCP avec ces commandes :
230 230
231```bash theme={null}231```bash theme={null}
232# Lister tous les serveurs configurés232# List all configured servers
233claude mcp list233claude mcp list
234 234
235# Obtenir les détails d'un serveur spécifique235# Get details for a specific server
236claude mcp get notion236claude mcp get notion
237 237
238# Supprimer un serveur238# Remove a server
239claude mcp remove notion239claude mcp remove notion
240 240
241# (dans Claude Code) Vérifier l'état du serveur241# (within Claude Code) Check server status
242/mcp242/mcp
243```243```
244 244
245Lorsque vous supprimez un serveur distant, Claude Code supprime également les jetons OAuth et l'enregistrement client qu'il avait stockés pour ce serveur. Claude Code ne révoque pas les jetons auprès du serveur d'autorisation qui les a émis. Pour révoquer les jetons lorsque le serveur d'autorisation prend en charge la révocation, exécutez [`claude mcp logout <name>`](#authenticate-from-the-command-line) dans votre shell avant `claude mcp remove <name>`.245Lorsque vous supprimez un serveur distant, Claude Code supprime également les jetons OAuth et l'enregistrement client qu'il avait stockés pour ce serveur. Claude Code ne révoque pas les jetons auprès du serveur d'autorisation qui les a émis. Pour révoquer les jetons lorsque le serveur d'autorisation prend en charge la révocation, exécutez [`claude mcp logout <name>`](#authenticate-from-the-command-line) dans votre shell avant `claude mcp remove <name>`.
246 246
247#### État du serveur247#### Statut du serveur
248 248
249`claude mcp add` confirme un ajout réussi en imprimant une ligne `Added ...`, ce qui signifie que la configuration a été écrite. Si la commande imprime plutôt un message `was not saved`, voir [MCP server was not saved or removed](https://code.claude.com/docs/fr/errors.md#mcp-server-was-not-saved-or-removed) ; pour un message `may not have been saved`, voir [MCP server may not have been saved or removed](https://code.claude.com/docs/fr/errors.md#mcp-server-may-not-have-been-saved-or-removed).249`claude mcp add` confirme un ajout réussi en affichant une ligne `Added ...`, ce qui signifie que la configuration a été écrite. Si la commande affiche plutôt un message `was not saved`, consultez [Le serveur MCP n'a pas été enregistré ou supprimé](https://code.claude.com/docs/fr/errors.md#mcp-server-was-not-saved-or-removed) ; pour un message `may not have been saved`, consultez [Le serveur MCP n'a peut-être pas été enregistré ou supprimé](https://code.claude.com/docs/fr/errors.md#mcp-server-may-not-have-been-saved-or-removed).
250 250
251`claude mcp list` affiche un statut de santé à côté de chaque serveur qu'il liste, tel que `✔ Connected`, `! Needs authentication`, ou `✘ Failed to connect`. Un statut d'échec signifie que Claude Code n'a pas pu se connecter à ce serveur, pas que la commande list a échoué.251`claude mcp list` affiche un statut de santé à côté de chaque serveur listé, comme `✔ Connected`, `! Needs authentication` ou `✘ Failed to connect`. Un statut d'échec signifie que Claude Code n'a pas pu se connecter à ce serveur, et non que la commande de listage a échoué.
252 252
253Les statuts dans cette liste signalent une décision de configuration plutôt qu'une tentative de connexion, donc Claude Code les imprime sans se connecter au serveur :253Les statuts de cette liste rendent compte d'une décision de configuration plutôt que d'une tentative de connexion : Claude Code les affiche donc sans se connecter au serveur :
254 254
255* ``⏸ Pending approval (run `claude` to approve)`` : un serveur de portée projet provenant de `.mcp.json` que vous n'avez pas encore approuvé. Claude Code l'affiche dans `claude mcp list` et dans `claude mcp get <name>`. Exécutez `claude` en mode interactif pour l'examiner et l'approuver.255* ``⏸ Pending approval (run `claude` to approve)`` : un serveur de portée projet issu de `.mcp.json` que vous n'avez pas encore approuvé. Claude Code l'affiche à la fois dans `claude mcp list` et dans `claude mcp get <name>`. Exécutez `claude` en mode interactif pour l'examiner et l'approuver.
256* `✘ Rejected (see disabledMcpjsonServers in settings)` : un serveur `.mcp.json` qu'une entrée [`disabledMcpjsonServers`](https://code.claude.com/docs/fr/settings-reference#disabledmcpjsonservers) rejette. Claude Code l'affiche uniquement dans `claude mcp get <name>`.256* `✘ Rejected (see disabledMcpjsonServers in settings)` : un serveur `.mcp.json` qu'une entrée [`disabledMcpjsonServers`](https://code.claude.com/docs/fr/settings-reference#disabledmcpjsonservers) rejette. Claude Code ne l'affiche que dans `claude mcp get <name>`.
257* `⊘ Disabled for this project (re-enable via /mcp)` : un serveur que la liste [`disabledMcpServers`](#disable-a-server-without-removing-it) du projet nomme. Claude Code l'affiche à la fois dans `claude mcp list` et `claude mcp get <name>`. Réactivez le serveur à partir du panneau `/mcp`.257* `⊘ Disabled for this project (re-enable via /mcp)` : un serveur nommé dans la liste [`disabledMcpServers`](#disable-a-server-without-removing-it) du projet. Claude Code l'affiche à la fois dans `claude mcp list` et dans `claude mcp get <name>`. Réactivez le serveur depuis le panneau `/mcp`.
258* `✘ Blocked by enterprise managed policy` : un serveur refusé par l'une des politiques de votre organisation. Claude Code l'affiche à la fois dans `claude mcp list` et `claude mcp get <name>`. Un serveur bloqué par une liste d'autorisation, une liste de refus ou une autre restriction de la [configuration MCP gérée](https://code.claude.com/docs/fr/managed-mcp.md#how-restrictions-appear-to-users) est masqué dans les deux commandes plutôt qu'affiché avec ce statut. Demandez à votre administrateur quelle politique bloque le serveur.258* `✘ Blocked by enterprise managed policy` : un serveur refusé par l'une des politiques de votre organisation. Claude Code l'affiche à la fois dans `claude mcp list` et dans `claude mcp get <name>`. Un serveur bloqué par une liste d'autorisation, une liste de refus ou une autre restriction de la [configuration MCP gérée](https://code.claude.com/docs/fr/managed-mcp.md#how-restrictions-appear-to-users) est masqué dans les deux commandes plutôt qu'affiché avec ce statut. Demandez à votre administrateur quelle politique bloque le serveur.
259 259
260#### Approbations des serveurs de projet et confiance de l'espace de travail260#### Approbations des serveurs de projet et confiance de l'espace de travail
261 261
262`claude mcp list` et `claude mcp get` lisent les approbations `.mcp.json` uniquement à partir des fichiers de paramètres qui ne sont pas commités dans le dépôt jusqu'à ce que vous fassiez confiance à l'espace de travail en y exécutant `claude` et en acceptant la boîte de dialogue de confiance de l'espace de travail. Un dépôt cloné ne peut pas approuver ses propres serveurs : [`enableAllProjectMcpServers`](https://code.claude.com/docs/fr/settings-reference#enableallprojectmcpservers) ou [`enabledMcpjsonServers`](https://code.claude.com/docs/fr/settings-reference#enabledmcpjsonservers) commité dans le `.claude/settings.json` du projet est ignoré dans un dossier non approuvé, et le serveur reste à `⏸ Pending approval` au lieu d'être connecté et vérifié.262`claude mcp list` et `claude mcp get` ne lisent les approbations `.mcp.json` que depuis des fichiers de paramètres qui ne sont pas versionnés dans le dépôt, jusqu'à ce que vous fassiez confiance à l'espace de travail en y exécutant `claude` et en acceptant la boîte de dialogue de confiance de l'espace de travail. Un dépôt cloné ne peut pas approuver ses propres serveurs : [`enableAllProjectMcpServers`](https://code.claude.com/docs/fr/settings-reference#enableallprojectmcpservers) ou [`enabledMcpjsonServers`](https://code.claude.com/docs/fr/settings-reference#enabledmcpjsonservers) commités dans le `.claude/settings.json` du projet sont ignorés dans un dossier non approuvé, et le serveur reste à `⏸ Pending approval` au lieu d'être connecté et vérifié.
263 263
264Les approbations de ces sources s'appliquent toujours dans un dossier non approuvé :264Les approbations provenant de ces sources s'appliquent néanmoins dans un dossier non approuvé :
265 265
266* votre `~/.claude/settings.json` utilisateur266* votre `~/.claude/settings.json` utilisateur
267* paramètres gérés267* les paramètres gérés
268* paramètres passés avec `--settings`268* les paramètres passés avec `--settings`
269 269
270Claude Code applique également les approbations à partir d'un `.claude/settings.local.json` non suivi, mais il exécute git pour vérifier si le fichier est suivi, et il n'exécute cette vérification que dans un [dossier approuvé](https://code.claude.com/docs/fr/permissions.md#project-allow-rules-and-workspace-trust). Dans un dossier que vous n'avez jamais approuvé, Claude Code attend la boîte de dialogue de confiance avant d'appliquer les approbations du fichier, sauf si le dossier est votre répertoire de configuration personnel : votre répertoire personnel, ou un répertoire dont vous avez défini le `.claude` comme [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/fr/env-vars). Avant la v2.1.207, Claude Code appliquait les approbations à partir d'un `.claude/settings.local.json` non suivi même dans un dossier que vous n'aviez jamais approuvé.270Claude Code applique également les approbations d'un `.claude/settings.local.json` non suivi, mais il exécute git pour vérifier si le fichier est suivi, et n'effectue cette vérification que dans un [dossier approuvé](https://code.claude.com/docs/fr/permissions.md#project-allow-rules-and-workspace-trust). Dans un dossier auquel vous n'avez jamais fait confiance, Claude Code attend la boîte de dialogue de confiance avant d'appliquer les approbations du fichier, sauf si le dossier est votre propre répertoire de configuration : votre répertoire personnel, ou un répertoire dont vous avez défini le `.claude` comme [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/fr/env-vars). Avant la v2.1.207, Claude Code appliquait les approbations d'un `.claude/settings.local.json` non suivi même dans un dossier auquel vous n'aviez jamais fait confiance.
271 271
272Une entrée `disabledMcpjsonServers` dans n'importe quel fichier de paramètres rejette toujours le serveur.272Une entrée `disabledMcpjsonServers` dans n'importe quel fichier de paramètres rejette toujours le serveur.
273 273
274#### Détail de l'état du serveur274#### Détail du statut du serveur
275 275
276Dans `/mcp`, y compris le menu d'un serveur là-bas, et dans le gestionnaire [`/plugin`](https://code.claude.com/docs/fr/plugins/install), un serveur HTTP ou SSE distant que vous avez utilisé auparavant peut afficher un statut `cached` tel que `cached 2h ago · connects on first use · 5 tools`. Claude Code a chargé la liste d'outils du serveur à partir de son cache de découverte, enregistré dans une session précédente, au lieu de se connecter au démarrage, et Claude Code connecte le serveur la première fois que Claude appelle l'un des outils du serveur. Les outils sont disponibles à partir de votre premier message, donc vous n'avez rien à faire. Le cache de découverte et son statut `cached` nécessitent Claude Code v2.1.221 ou ultérieur.276Dans `/mcp`, y compris dans le menu d'un serveur, ainsi que dans le gestionnaire [`/plugin`](https://code.claude.com/docs/fr/plugins/install), un serveur HTTP ou SSE distant que vous avez déjà utilisé peut afficher un statut `cached` tel que `cached 2h ago · connects on first use · 5 tools`. Claude Code a chargé la liste d'outils du serveur depuis son cache de découverte, enregistré lors d'une session précédente, au lieu de se connecter au démarrage, et Claude Code connecte le serveur la première fois que Claude appelle l'un de ses outils. Les outils sont disponibles dès votre premier message : vous n'avez donc rien à faire. Le cache de découverte et son statut `cached` nécessitent Claude Code v2.1.221 ou une version ultérieure.
277 277
278Le cache de découverte est désactivé par défaut sauf si un déploiement progressif l'a activé pour votre compte. Définissez [`MCP_DISCOVERY_CACHE=1`](https://code.claude.com/docs/fr/env-vars) pour l'activer, ou `0` pour le garder désactivé même lorsque le déploiement l'a activé. Avant la v2.1.238, le cache était activé par défaut.278Le cache de découverte est désactivé par défaut, sauf si un déploiement progressif l'a activé pour votre compte. Définissez [`MCP_DISCOVERY_CACHE=1`](https://code.claude.com/docs/fr/env-vars) pour l'activer, ou `0` pour le garder désactivé même lorsque le déploiement progressif l'a activé. Avant la v2.1.238, le cache était activé par défaut.
279 279
280Lorsque vous sélectionnez **Disable** ou **Clear authentication** dans le menu d'un serveur dans `/mcp`, Claude Code supprime également l'entrée du cache de ce serveur. **Reconnect** la supprime également sur un serveur connecté ou défaillant ; sur un serveur `cached`, **Reconnect** connecte le serveur maintenant et conserve l'entrée. La prochaine fois que Claude Code se connecte au serveur après suppression de l'entrée, il récupère la liste d'outils du serveur au lieu du cache.280Lorsque vous sélectionnez **Disable** ou **Clear authentication** dans le menu d'un serveur dans `/mcp`, Claude Code supprime également l'entrée de cache de ce serveur. **Reconnect** la supprime aussi sur un serveur connecté ou en échec ; sur un serveur `cached`, **Reconnect** connecte le serveur immédiatement et conserve l'entrée. La prochaine fois que Claude Code se connecte au serveur après avoir supprimé l'entrée, il récupère la liste d'outils depuis le serveur plutôt que depuis le cache.
281 281
282##### Échecs de connexion et serveurs non configurés282##### Échecs de connexion et serveurs non configurés
283 283
284Lorsque le statut d'un serveur est `✘ Failed to connect`, `claude mcp list` ajoute le détail de l'échec à cette ligne de statut, et `claude mcp get <name>` l'affiche sur une ligne `Issue:`. Le détail correspond au statut HTTP ou au code d'erreur, ainsi qu'à tout texte d'erreur renvoyé par le serveur. La vue détaillée du serveur dans `/mcp` inclut le même texte signalé par le serveur dans sa ligne `Issue:`.284Lorsque le statut d'un serveur est `✘ Failed to connect`, `claude mcp list` ajoute le détail de l'échec à cette ligne de statut, et `claude mcp get <name>` l'affiche sur une ligne `Issue:`. Le détail est le statut HTTP ou le code d'erreur, ainsi que tout texte d'erreur renvoyé par le serveur. La vue détaillée du serveur dans `/mcp` inclut le même texte rapporté par le serveur dans sa ligne `Issue:`.
285 285
286Claude Code masque dans ce détail tout texte ressemblant à des identifiants et n'inclut jamais l'URL développée du serveur, qui peut contenir des secrets. Claude Code n'ajoute aucun détail à un statut `✘ Connection error`, car le texte d'exception qu'il y afficherait peut intégrer cette URL.286Claude Code masque dans ce détail tout texte ressemblant à des identifiants et n'inclut jamais l'URL développée du serveur, qui peut contenir des secrets. Claude Code n'ajoute aucun détail à un statut `✘ Connection error`, car le texte d'exception qu'il y afficherait peut contenir cette URL.
287 287
288Lorsque vous terminez l'authentification à partir de `/mcp` et que la connexion échoue toujours avec un code de statut HTTP ou un code d'erreur de transport, Claude Code ajoute ce code et l'origine de l'URL du serveur au message qu'il imprime après la tentative. L'origine est le schéma et l'hôte, plus le port lorsque l'URL en nomme un, tel que `https://mcp.example.com`.288Lorsque vous terminez l'authentification depuis `/mcp` et que la connexion échoue toujours avec un statut HTTP ou un code d'erreur de transport, Claude Code ajoute ce code et l'origine de l'URL du serveur au message qu'il affiche après la tentative. L'origine est le schéma et l'hôte, plus le port lorsque l'URL en spécifie un, comme `https://mcp.example.com`.
289 289
290* Le chemin et la chaîne de requête n'apparaissent jamais dans ce message.290* Le chemin et la chaîne de requête n'apparaissent jamais dans ce message.
291* Pour un serveur dans la [portée](#mcp-installation-scopes) locale, projet ou utilisateur, ou dans la configuration MCP gérée, l'origine affiche l'hôte tel qu'écrit dans cette configuration, donc une référence `${VAR}` dans l'hôte n'est pas développée dans le message.291* Pour un serveur de [portée](#mcp-installation-scopes) locale, projet ou utilisateur, ou issu de la configuration MCP gérée, l'origine affiche l'hôte tel qu'il est écrit dans cette configuration : une référence `${VAR}` dans l'hôte n'est donc pas développée dans le message.
292* Pour un échec sans code de statut ou d'erreur, Claude Code affiche le texte d'erreur sans l'origine.292* Pour un échec sans statut ni code d'erreur, Claude Code affiche le texte d'erreur sans l'origine.
293 293
294Un serveur distant dont la configuration a une `url` vide s'affiche comme `not configured` dans `/mcp`, dans `claude mcp list`, et dans le gestionnaire [`/plugin`](https://code.claude.com/docs/fr/plugins/install), et Claude Code ne tente pas de s'y connecter. Un plugin peut inclure une entrée d'espace réservé comme celle-ci pour un connecteur que vous configurez plus tard, afin que Claude Code ne le signale pas comme une erreur ou un problème de configuration. La vue détaillée du serveur dans `/mcp` indique `No URL configured for this server` ; définissez la `url` de l'entrée pour la connecter.294Un serveur distant dont la configuration a un `url` vide s'affiche comme `not configured` dans `/mcp`, dans `claude mcp list` et dans le gestionnaire [`/plugin`](https://code.claude.com/docs/fr/plugins/install), et Claude Code ne tente pas de s'y connecter. Un plugin peut inclure une entrée d'attente de ce type pour un connecteur que vous configurerez plus tard : Claude Code ne le signale donc ni comme une erreur ni comme un problème de configuration. La vue détaillée du serveur dans `/mcp` indique `No URL configured for this server` ; définissez le `url` de l'entrée pour le connecter.
295 295
296#### Avertissements de configuration296#### Avertissements de configuration
297 297
298Claude Code avertit des problèmes de configuration ci-dessous. Chaque entrée indique ce que Claude Code vérifie et comment effacer l'avertissement :298Claude Code émet des avertissements pour les problèmes de configuration ci-dessous. Chaque entrée indique ce que Claude Code vérifie et comment faire disparaître l'avertissement :
299 299
300* **Espaces blancs cachés** : Claude Code avertit lorsqu'une valeur de configuration MCP porte des espaces blancs cachés en début ou en fin, ce qui provient souvent du collage d'un jeton avec une nouvelle ligne de fin. Claude Code vérifie `command`, `url`, chaque entrée `args`, et les valeurs et noms de clés sous `env` et `headers`. Claude Code affiche l'avertissement dans la sortie de `claude mcp list` et dans `/mcp`, en nommant les champs affectés sans répéter leurs valeurs, par exemple `Leading or trailing whitespace in: headers.Authorization`. Claude Code ne supprime pas les espaces blancs et utilise les valeurs exactement telles qu'écrites, donc modifiez la configuration pour les supprimer.300* **Espaces invisibles** : Claude Code émet un avertissement lorsqu'une valeur de configuration MCP contient des espaces invisibles en début ou en fin, ce qui provient souvent du collage d'un jeton suivi d'un saut de ligne. Claude Code vérifie `command`, `url`, chaque entrée `args`, ainsi que les valeurs et noms de clés sous `env` et `headers`. Claude Code affiche l'avertissement dans la sortie de `claude mcp list` et dans `/mcp`, en nommant les champs concernés sans reproduire leurs valeurs, par exemple `Leading or trailing whitespace in: headers.Authorization`. Claude Code ne supprime pas ces espaces et utilise les valeurs exactement telles qu'elles sont écrites : modifiez donc la configuration pour les supprimer.
301* **Même nom dans plus d'une portée** : si vous définissez le même nom de serveur dans plus d'une [portée](#mcp-installation-scopes) avec des endpoints différents, Claude Code avertit du conflit dans la sortie de `claude mcp list` et dans `/mcp`. Claude Code stocke les connexions OAuth par endpoint, donc lorsque vous authentifiez la définition qui se charge dans un projet, vous devez toujours vous connecter séparément dans un projet où une définition différente se charge. Conservez l'endpoint que vous voulez et supprimez les autres avec `claude mcp remove <name> --scope <scope>`. Dans l'avertissement, Claude Code cite l'endpoint de chaque portée tel qu'écrit dans votre configuration, avec les [références `${VAR}`](#environment-variable-expansion-in-mcp-json) non développées, donc il n'affiche jamais une valeur résolue telle qu'une clé API.301* **Même nom dans plusieurs portées** : si vous définissez le même nom de serveur dans plusieurs [portées](#mcp-installation-scopes) avec des endpoints différents, Claude Code signale le conflit dans la sortie de `claude mcp list` et dans `/mcp`. Claude Code stocke les connexions OAuth par endpoint : lorsque vous authentifiez la définition chargée dans un projet, vous devez donc encore vous connecter séparément dans un projet où une autre définition est chargée. Conservez l'endpoint souhaité et supprimez les autres avec `claude mcp remove <name> --scope <scope>`. Dans l'avertissement, Claude Code cite l'endpoint de chaque portée tel qu'il est écrit dans votre configuration, avec les [références `${VAR}`](#environment-variable-expansion-in-mcp-json) non développées, de sorte qu'il n'affiche jamais une valeur résolue comme une clé API.
302* **Noms réservés** : Claude Code réserve les noms de ses serveurs intégrés, y compris `workspace`, `claude-in-chrome`, `computer-use`, `Claude Preview`, et `Claude Browser`. Si votre configuration définit un serveur avec un nom réservé, Claude Code l'ignore au moment du chargement et affiche un avertissement vous demandant de le renommer. `claude mcp add` rejette un nom réservé avec une erreur. `Claude Preview` et `Claude Browser` nomment tous deux le serveur intégré que le [volet d'aperçu de l'application de bureau Claude Code](https://code.claude.com/docs/fr/desktop.md#preview-your-app) utilise.302* **Noms réservés** : Claude Code réserve les noms de ses serveurs intégrés, notamment `workspace`, `claude-in-chrome`, `computer-use`, `Claude Preview` et `Claude Browser`. Si votre configuration définit un serveur avec un nom réservé, Claude Code l'ignore au chargement et affiche un avertissement vous demandant de le renommer. `claude mcp add` rejette un nom réservé avec une erreur. `Claude Preview` et `Claude Browser` désignent tous deux le serveur intégré utilisé par le [volet d'aperçu de l'application de bureau Claude Code](https://code.claude.com/docs/fr/desktop.md#preview-your-app).
303* **Variable d'environnement manquante** : si une [référence `${VAR}`](#environment-variable-expansion-in-mcp-json) dans la configuration d'un serveur nomme une variable qui n'est pas définie et n'a pas de `:-default`, Claude Code avertit dans la sortie de `claude mcp list` et dans `/mcp`, en nommant la variable, et charge toujours le serveur avec le texte `${VAR}` non développé. Définissez la variable ou ajoutez une valeur de secours `${VAR:-default}`. Dans l'`url` et les `headers` d'un serveur distant, certaines variables d'identifiants [sont lues comme vides](#credential-variables-that-read-as-empty) à la place, sans avertissement.303* **Variable d'environnement manquante** : si une [référence `${VAR}`](#environment-variable-expansion-in-mcp-json) dans la configuration d'un serveur nomme une variable qui n'est pas définie et n'a pas de `:-default`, Claude Code émet un avertissement dans la sortie de `claude mcp list` et dans `/mcp`, en nommant la variable, et charge quand même le serveur avec le texte `${VAR}` non développé. Définissez la variable ou ajoutez une valeur de secours `${VAR:-default}`. Dans le `url` et les `headers` d'un serveur distant, certaines variables d'identifiants [sont lues comme vides](#credential-variables-that-read-as-empty) à la place, sans avertissement.
304 304
305#### Disponibilité des outils305#### Disponibilité des outils
306 306
307Le panneau `/mcp` affiche le nombre d'outils à côté de chaque serveur connecté et signale les serveurs qui annoncent la capacité des outils mais n'exposent aucun outil.307Le panneau `/mcp` affiche le nombre d'outils à côté de chaque serveur connecté et signale les serveurs qui annoncent la capacité tools mais n'exposent aucun outil.
308 308
309##### Nombre d'outils dans une session cloud309##### Nombre d'outils dans une session cloud
310 310
311Dans une [session cloud](https://code.claude.com/docs/fr/claude-code-on-the-web.md), un nombre tel que `3 of 13 tools available` signifie que Claude ne peut pas utiliser les 10 autres. Vérifiez notamment les causes suivantes :311Dans une [session cloud](https://code.claude.com/docs/fr/claude-code-on-the-web.md), un décompte tel que `3 of 13 tools available` signifie que Claude ne peut pas utiliser les 10 autres. Vérifiez notamment ces causes :
312 312
313* **Une règle de refus dans le `.claude/settings.json` de votre dépôt nomme l'outil ou l'ensemble de son serveur** : supprimez la [règle](https://code.claude.com/docs/fr/permissions.md#mcp), si [votre session lit ce fichier](https://code.claude.com/docs/fr/settings.md#settings-in-cloud-sessions)313* **Une règle de refus dans le `.claude/settings.json` de votre dépôt nomme l'outil ou son serveur entier** : supprimez la [règle](https://code.claude.com/docs/fr/permissions.md#mcp), si [votre session lit ce fichier](https://code.claude.com/docs/fr/settings.md#settings-in-cloud-sessions)
314* **Le nom complet de l'outil dépasse 128 caractères** : suivez [les étapes pour un nom trop long](https://code.claude.com/docs/fr/errors.md#mcp-tool-name-over-128-characters)314* **Le nom complet de l'outil dépasse 128 caractères** : suivez [les étapes pour un nom trop long](https://code.claude.com/docs/fr/errors.md#mcp-tool-name-over-128-characters)
315* **Le serveur liste l'outil pour sa propre interface et non pour Claude** : si vous maintenez le serveur, ajoutez `model` à `_meta.ui.visibility` de l'outil pour le mettre à la disposition de Claude. Sinon, il n'y a rien à corriger.315* **Le serveur liste l'outil pour sa propre interface et non pour Claude** : si vous maintenez le serveur, ajoutez `model` au `_meta.ui.visibility` de l'outil pour donner l'outil à Claude. Sinon, il n'y a rien à corriger.
316 316
317##### Outils d'un serveur encore en cours de connexion317##### Outils d'un serveur encore en cours de connexion
318 318
319Si votre demande a besoin d'outils d'un serveur qui se connecte toujours en arrière-plan, Claude attend ce serveur avant de continuer. La façon dont l'attente se produit dépend de votre configuration :319Si votre demande nécessite des outils d'un serveur encore en cours de connexion en arrière-plan, Claude attend ce serveur avant de continuer. La manière dont l'attente se déroule dépend de votre configuration :
320 320
321* **Avec la [recherche d'outils](#scale-with-mcp-tool-search), la valeur par défaut** : l'attente se produit à l'intérieur de l'appel `ToolSearch`.321* **Avec la [recherche d'outils](#scale-with-mcp-tool-search), par défaut** : l'attente a lieu à l'intérieur de l'appel `ToolSearch`.
322* **Sans recherche d'outils** : Claude utilise plutôt l'outil `WaitForMcpServers`. Les configurations sans recherche d'outils incluent `ENABLE_TOOL_SEARCH=false` et un modèle antérieur à Claude Opus 4.5, Claude Sonnet 4.5 et Claude Haiku 4.5 sur la plateforme Agent de Google Cloud. Pour une passerelle `ANTHROPIC_BASE_URL`, voir [Recherche d'outils via une passerelle LLM](#tool-search-through-a-gateway).322* **Sans recherche d'outils** : Claude utilise plutôt l'outil `WaitForMcpServers`. Les configurations sans recherche d'outils incluent `ENABLE_TOOL_SEARCH=false` et un modèle antérieur à Claude Opus 4.5, Claude Sonnet 4.5 et Claude Haiku 4.5 sur Agent Platform de Google Cloud. Pour une passerelle `ANTHROPIC_BASE_URL`, consultez [Recherche d'outils via une passerelle LLM](#tool-search-through-a-gateway).
323* **Sur un [déploiement Microsoft Foundry hébergé sur Azure](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)** : Claude commence sur le chemin de recherche d'outils plutôt qu'avec `WaitForMcpServers`, car Claude Code découvre le rejet côté serveur du déploiement uniquement à partir de l'API. Après que Claude Code a basculé ce déploiement vers le [chargement en amont](#scale-with-mcp-tool-search), les outils d'un serveur qui termine de se connecter deviennent disponibles à la requête suivante de Claude.323* **Sur un [déploiement Microsoft Foundry hébergé sur Azure](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)** : Claude démarre sur le chemin de recherche d'outils plutôt qu'avec `WaitForMcpServers`, car Claude Code ne découvre le rejet côté serveur du déploiement que par l'API. Une fois que Claude Code a basculé ce déploiement vers le [chargement anticipé](#scale-with-mcp-tool-search), les outils d'un serveur qui termine sa connexion deviennent disponibles à la requête suivante de Claude.
324 324
325Avec la recherche d'outils activée, lorsqu'un serveur termine de se connecter pendant que Claude travaille, Claude Code liste les noms d'outils du serveur à Claude lors de sa requête suivante dans le même tour. Claude peut alors rechercher et appeler ces outils sans attendre votre message suivant.325Lorsque la recherche d'outils est activée et qu'un serveur termine sa connexion pendant que Claude travaille, Claude Code liste les noms des outils du serveur à Claude lors de sa requête suivante dans le même tour. Claude peut alors rechercher et appeler ces outils sans attendre votre prochain message.
326 326
327Après la reprise d'une session, Claude peut appeler un outil issu de la conversation enregistrée alors que le serveur MCP de cet outil est toujours en cours de connexion. Pendant la première tentative de connexion du serveur, Claude Code retient l'appel jusqu'à 10 secondes et l'exécute dès que l'outil est disponible. Si le serveur ne se connecte pas à temps, ou s'il est déjà [en train de réessayer après une tentative échouée](#automatic-reconnection), l'appel échoue avec l'[erreur d'outil](https://code.claude.com/docs/fr/errors.md#no-such-tool-available) `No such tool available`.327Après la reprise d'une session, Claude peut appeler un outil de la conversation enregistrée alors que le serveur MCP de l'outil est encore en cours de connexion. Pendant la première tentative de connexion du serveur, Claude Code retient l'appel jusqu'à 10 secondes et l'exécute dès que l'outil est disponible. Si le serveur ne se connecte pas à temps, ou s'il est déjà [en train de réessayer après une tentative échouée](#automatic-reconnection), l'appel échoue avec l'[erreur d'outil](https://code.claude.com/docs/fr/errors.md#no-such-tool-available) `No such tool available`.
328 328
329### Désactiver un serveur sans le supprimer329### Désactiver un serveur sans le supprimer
330 330
331Désactivez un serveur dans le panneau `/mcp` pour empêcher Claude Code de s'y connecter sans perdre sa configuration. Claude Code liste toujours le serveur dans `/mcp`, marqué comme désactivé.331Désactivez un serveur dans le panneau `/mcp` pour empêcher Claude Code de s'y connecter sans perdre sa configuration. Claude Code continue de lister le serveur dans `/mcp`, marqué comme désactivé.
332 332
333Lorsque vous basculez un serveur, Claude Code enregistre votre choix par projet dans `~/.claude.json`, dans l'une de deux listes qui couvrent des ensembles disjoints de serveurs :333Lorsque vous activez ou désactivez un serveur, Claude Code enregistre votre choix par projet dans `~/.claude.json`, dans l'une de deux listes qui couvrent des ensembles de serveurs disjoints :
334 334
335* `disabledMcpServers` : une liste d'exclusion pour les serveurs configurés par l'utilisateur, les serveurs de plugins, les serveurs que votre organisation [fournit via les paramètres gérés](https://code.claude.com/docs/fr/managed-mcp.md#provide-servers-through-managed-settings), les connecteurs claude.ai que Claude Code [récupère lui-même](#how-connectors-reach-claude-code), et les serveurs intégrés qui sont activés par défaut. Claude Code ne se connecte pas à un serveur que vous listez ici. Lorsque vous désactivez un connecteur claude.ai avec le basculement `/mcp` par projet décrit dans [Désactiver les connecteurs claude.ai](#disable-claude-ai-connectors), Claude Code l'écrit dans cette liste sous son nom d'affichage, par exemple `claude.ai Slack`.335* `disabledMcpServers` : une liste de désactivation pour les serveurs configurés par l'utilisateur, les serveurs de plugins, les serveurs que votre organisation [fournit via les paramètres gérés](https://code.claude.com/docs/fr/managed-mcp.md#provide-servers-through-managed-settings), les connecteurs claude.ai que Claude Code [récupère lui-même](#how-connectors-reach-claude-code) et les serveurs intégrés activés par défaut. Claude Code ne se connecte pas à un serveur que vous listez ici. Lorsque vous désactivez un connecteur claude.ai avec le bouton `/mcp` par projet décrit dans [Désactiver les connecteurs claude.ai](#disable-claude-ai-connectors), Claude Code l'écrit dans cette liste sous son nom d'affichage, par exemple `claude.ai Slack`.
336* `enabledMcpServers` : une liste d'inclusion pour les serveurs intégrés qui sont désactivés par défaut, tels que `computer-use`. Claude Code se connecte à un serveur désactivé par défaut uniquement lorsque vous le listez ici.336* `enabledMcpServers` : une liste d'activation pour les serveurs intégrés désactivés par défaut, comme `computer-use`. Claude Code ne se connecte à un serveur désactivé par défaut que si vous le listez ici.
337 337
338Claude Code consulte exactement l'une des deux listes pour chaque serveur, donc aucune des deux listes ne remplace l'autre. Si vous ajoutez un serveur ordinaire à `enabledMcpServers`, ou un serveur intégré désactivé par défaut à `disabledMcpServers`, Claude Code ignore l'entrée.338Claude Code consulte exactement l'une des deux listes pour chaque serveur : aucune liste ne remplace donc l'autre. Si vous ajoutez un serveur ordinaire à `enabledMcpServers`, ou un serveur intégré désactivé par défaut à `disabledMcpServers`, Claude Code ignore l'entrée.
339 339
340`disabledMcpServers` et `enabledMcpServers` ne sont pas liés à [`enabledMcpjsonServers`](https://code.claude.com/docs/fr/settings-reference#enabledmcpjsonservers) et [`disabledMcpjsonServers`](https://code.claude.com/docs/fr/settings-reference#disabledmcpjsonservers), qui contrôlent l'approbation des serveurs définis dans le fichier `.mcp.json` d'un projet.340`disabledMcpServers` et `enabledMcpServers` n'ont aucun rapport avec [`enabledMcpjsonServers`](https://code.claude.com/docs/fr/settings-reference#enabledmcpjsonservers) et [`disabledMcpjsonServers`](https://code.claude.com/docs/fr/settings-reference#disabledmcpjsonservers), qui contrôlent l'approbation des serveurs définis dans le fichier `.mcp.json` d'un projet.
341 341
342### Runtimes clients MCP342### Runtimes client MCP
343 343
344Claude Code se connecte aux serveurs MCP via l'un de deux runtimes clients. Le runtime v1 s'appuie sur MCP TypeScript SDK 1.x. Le runtime v2 est le même code sur [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/), qui ajoute la révision de protocole MCP 2026-07-28. Le reste de cette page s'applique aux deux runtimes, sauf si une section nomme le runtime v2.344Claude Code se connecte aux serveurs MCP via l'un de deux runtimes client. Le runtime v1 repose sur le SDK TypeScript MCP 1.x. Le runtime v2 est le même code sur le [SDK TypeScript MCP 2.0](https://ts.sdk.modelcontextprotocol.io/v2/), qui ajoute la révision 2026-07-28 du protocole MCP. Le reste de cette page s'applique aux deux runtimes, sauf lorsqu'une section mentionne le runtime v2.
345 345
346Claude Code choisit un runtime chaque fois que vous le démarrez et le conserve jusqu'à ce que vous quittiez. Dans les sessions où il [récupère les feature flags](https://code.claude.com/docs/fr/env-vars.md#features-that-need-feature-flag-fetching), il utilise le runtime v2 sur Claude Code v2.1.232 ou ultérieur.346Claude Code choisit un runtime à chaque démarrage et le conserve jusqu'à ce que vous quittiez. Dans les sessions où il [récupère les feature flags](https://code.claude.com/docs/fr/env-vars.md#features-that-need-feature-flag-fetching), il utilise le runtime v2 sur Claude Code v2.1.232 ou une version ultérieure.
347 347
348Dans les sessions où il ne récupère pas les feature flags, Claude Code utilise le runtime v2 par défaut sur Claude Code v2.1.274 ou ultérieur :348Dans les sessions où il ne récupère pas les feature flags, Claude Code utilise le runtime v2 par défaut sur Claude Code v2.1.274 ou une version ultérieure :
349 349
350* Sessions sur Amazon Bedrock, Claude Platform sur AWS, la plateforme Agent de Google Cloud, ou Microsoft Foundry, sauf si une plateforme hôte qui intègre Claude Code définit [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](https://code.claude.com/docs/fr/env-vars)350* Les sessions sur Amazon Bedrock, Claude Platform on AWS, Agent Platform de Google Cloud ou Microsoft Foundry, sauf si une plateforme hôte qui intègre Claude Code définit [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](https://code.claude.com/docs/fr/env-vars)
351* Sessions connectées via une [passerelle d'applications Claude](https://code.claude.com/docs/fr/claude-apps-gateway)351* Les sessions connectées via une [passerelle Claude apps](https://code.claude.com/docs/fr/claude-apps-gateway)
352* Sessions où vous désactivez la télémétrie ou la récupération des feature flags, par exemple avec `DISABLE_TELEMETRY`352* Les sessions dans lesquelles vous désactivez la télémétrie ou la récupération des feature flags, par exemple avec `DISABLE_TELEMETRY`
353 353
354Sur v2, Claude Code également :354Sur v2, Claude Code également :
355 355
356* Demande aux serveurs HTTP, stdio et de connecteurs claude.ai s'ils supportent la révision plus récente, et l'utilise avec ceux qui la supportent. Cela inclut les connecteurs des sessions cloud et [Remote Control](https://code.claude.com/docs/fr/remote-control.md). Claude Code se connecte à tous les autres serveurs comme le fait v1.356* Demande aux serveurs HTTP, stdio et aux connecteurs claude.ai s'ils prennent en charge la nouvelle révision et l'utilise avec ceux qui la prennent en charge. Cela inclut les connecteurs des sessions cloud et [Remote Control](https://code.claude.com/docs/fr/remote-control.md). Claude Code se connecte à tous les autres serveurs comme le fait v1.
357* Reçoit les notifications `list_changed` des serveurs sur la révision plus récente via un [flux qu'il maintient ouvert](#notification-streams-on-the-v2-runtime).357* Reçoit les notifications `list_changed` des serveurs utilisant la nouvelle révision via un [flux qu'il maintient ouvert](#notification-streams-on-the-v2-runtime).
358* N'enregistre pas un serveur de [canal](#push-messages-with-channels) qui se connecte sur la révision plus récente, car cette révision ne peut pas transporter les messages de canal.358* N'enregistre pas un serveur de [canal](#push-messages-with-channels) qui se connecte avec la nouvelle révision, car cette révision ne peut pas transporter de messages de canal.
359* Fait échouer une [connexion OAuth MCP](#authenticate-with-remote-mcp-servers) dont la réponse d'autorisation nomme un émetteur inattendu.359* Fait échouer une [connexion MCP OAuth](#authenticate-with-remote-mcp-servers) dont la réponse d'autorisation nomme un émetteur inattendu.
360* Envoie les [identifiants OAuth MCP](#authenticate-with-remote-mcp-servers) uniquement à un endpoint de jeton servi via HTTPS ou à `localhost`, `127.0.0.1`, ou `::1`. La connexion échoue pour un serveur dont l'endpoint de jeton est en `http://` simple n'importe où ailleurs, tel qu'un appareil sur votre réseau local. Voir [Refusing to send credentials to non-https token endpoint](https://code.claude.com/docs/fr/errors.md#refusing-to-send-credentials-to-non-https-token-endpoint).360* N'envoie les identifiants [MCP OAuth](#authenticate-with-remote-mcp-servers) qu'à un endpoint de jeton servi en HTTPS ou sur `localhost`, `127.0.0.1` ou `::1`. La connexion échoue pour un serveur dont l'endpoint de jeton est en `http://` simple ailleurs, comme un appareil de votre réseau local. Consultez [Refusing to send credentials to non-https token endpoint](https://code.claude.com/docs/fr/errors.md#refusing-to-send-credentials-to-non-https-token-endpoint).
361 361
362Anthropic peut maintenir un serveur donné sur le protocole antérieur, ou hors de ce flux, via un feature flag que Claude Code récupère. Pour choisir vous-même le runtime, définissez [`MCP_SDK_GENERATION`](https://code.claude.com/docs/fr/env-vars) sur `v1` ou `v2`.362Anthropic peut maintenir un serveur spécifique sur l'ancien protocole, ou hors de ce flux, avec un feature flag que Claude Code récupère. Pour choisir vous-même le runtime, définissez [`MCP_SDK_GENERATION`](https://code.claude.com/docs/fr/env-vars) sur `v1` ou `v2`.
363 363
364Pour décider si Claude Code interroge les serveurs sur la nouvelle révision, définissez [`MCP_PROTOCOL_NEGOTIATION`](https://code.claude.com/docs/fr/env-vars) sur `auto` ou `legacy`. Lorsque cette variable n'est pas définie, Claude Code peut cesser d'interroger un serveur stdio pendant 7 jours, par exemple après que le serveur s'est arrêté lorsqu'on l'a interrogé. Pour qu'un serveur mis à niveau soit interrogé plus tôt, définissez `auto`.364Pour décider si Claude Code interroge les serveurs au sujet de la nouvelle révision, définissez [`MCP_PROTOCOL_NEGOTIATION`](https://code.claude.com/docs/fr/env-vars) sur `auto` ou `legacy`. Lorsque cette variable n'est pas définie, Claude Code peut cesser d'interroger un serveur stdio pendant 7 jours, par exemple après que le serveur s'est arrêté lorsqu'on l'a interrogé. Pour qu'un serveur mis à niveau soit interrogé plus tôt, définissez `auto`.
365 365
366### Mises à jour dynamiques des outils366### Mises à jour dynamiques des outils
367 367
368Un serveur MCP peut modifier les outils, prompts ou ressources qu'il propose pendant qu'il est connecté et envoyer une notification `list_changed`. Lorsqu'une telle notification arrive :368Un serveur MCP peut modifier les outils, prompts ou ressources qu'il propose pendant qu'il est connecté et envoyer une notification `list_changed`. Lorsqu'une telle notification arrive :
369 369
370* **Dans une session de terminal interactive**, Claude Code récupère la liste mise à jour auprès de ce serveur, vous n'avez donc pas besoin de le reconnecter.370* **Dans une session de terminal interactive**, Claude Code récupère la liste mise à jour depuis ce serveur : vous n'avez donc pas besoin de le reconnecter.
371* **En [mode non interactif](https://code.claude.com/docs/fr/headless.md) avec le flag `-p` et dans l'[Agent SDK](https://code.claude.com/docs/fr/agent-sdk/overview.md)**, Claude Code actualise uniquement la liste des outils lors de ces notifications.371* **En [mode non interactif](https://code.claude.com/docs/fr/headless.md) avec le flag `-p` et dans l'[Agent SDK](https://code.claude.com/docs/fr/agent-sdk/overview.md)**, Claude Code ne rafraîchit que la liste d'outils à la réception de ces notifications.
372 372
373Si une requête d'actualisation échoue, Claude Code conserve les outils, prompts et ressources précédemment découverts du serveur jusqu'à ce qu'une actualisation ultérieure réussisse.373Si une requête de rafraîchissement échoue, Claude Code conserve les outils, prompts et ressources précédemment découverts du serveur jusqu'à ce qu'un rafraîchissement ultérieur réussisse.
374 374
375#### Flux de notification sur le runtime v2375#### Flux de notifications sur le runtime v2
376 376
377Sur le [runtime v2](#mcp-client-runtimes), Claude Code reçoit les notifications `list_changed` d'un serveur sur la révision de protocole plus récente via un flux qu'il maintient ouvert. Lorsque le flux se ferme, Claude Code le rouvre, avec deux limites :377Sur le [runtime v2](#mcp-client-runtimes), Claude Code reçoit les notifications `list_changed` d'un serveur utilisant la nouvelle révision du protocole via un flux qu'il maintient ouvert. Lorsque le flux se ferme, Claude Code le rouvre, avec deux limites :
378 378
379* **Le flux se ferme à nouveau dans les 10 secondes** : Claude Code le rouvre jusqu'à trois fois, puis s'arrête pour cette connexion.379* **Le flux se referme dans les 10 secondes** : Claude Code le rouvre jusqu'à trois fois, puis s'arrête pour cette connexion.
380* **Le flux reste ouvert plus de 10 secondes, puis se ferme**, comme le font couramment les flux vers des hôtes serverless : après cinq réouvertures en une heure, Claude Code attend environ six heures avant la suivante.380* **Le flux reste ouvert plus de 10 secondes, puis se ferme**, comme c'est courant pour les flux vers des hôtes serverless : après cinq réouvertures en une heure, Claude Code attend environ six heures avant la suivante.
381 381
382Jusqu'à ce que le flux se rouvre, vous conservez les derniers outils, prompts et ressources récupérés du serveur. Pour récupérer ses modifications plus tôt, reconnectez le serveur à partir de `/mcp`.382Jusqu'à la réouverture du flux, vous conservez les derniers outils, prompts et ressources récupérés du serveur. Pour prendre en compte ses changements plus tôt, reconnectez le serveur depuis `/mcp`.
383 383
384### Reconnexion automatique384### Reconnexion automatique
385 385
386Claude Code reconnecte un serveur distant qui se déconnecte en cours de session et réessaie la première connexion d'un serveur HTTP ou SSE après une erreur transitoire. Pour un serveur stdio, voir [Serveurs stdio qui se terminent ou ne démarrent pas](#stdio-servers-that-exit-or-fail-to-start).386Claude Code reconnecte un serveur distant qui se déconnecte en cours de session et réessaie la première connexion d'un serveur HTTP ou SSE après une erreur transitoire. Pour un serveur stdio, consultez [Serveurs stdio qui s'arrêtent ou ne démarrent pas](#stdio-servers-that-exit-or-fail-to-start).
387 387
388#### Déconnexions en cours de session d'un serveur distant388#### Déconnexions d'un serveur distant en cours de session
389 389
390Claude Code tente d'abord de reconnecter un serveur distant déconnecté jusqu'à cinq fois avec un backoff exponentiel, en commençant par un délai d'une seconde et en le doublant à chaque fois :390Claude Code essaie d'abord de reconnecter un serveur distant déconnecté jusqu'à cinq fois avec un backoff exponentiel, en commençant par un délai d'une seconde qu'il double à chaque fois :
391 391
392* **Dans une session interactive** : `/mcp` affiche le serveur comme en attente pendant que Claude Code se reconnecte. Après cinq tentatives échouées, Claude Code marque le serveur comme défaillant, ou comme nécessitant une authentification lorsque le serveur doit être autorisé à nouveau. Lorsqu'il marque le serveur comme défaillant, vous voyez une notification `MCP server "<name>" disconnected · open /mcp to reconnect`. Vous pouvez réessayer manuellement à partir de `/mcp`.392* **Dans une session interactive** : `/mcp` affiche le serveur comme en attente pendant que Claude Code se reconnecte. Après cinq tentatives infructueuses, Claude Code marque le serveur comme en échec, ou comme nécessitant une authentification lorsque le serveur doit être à nouveau autorisé. Lorsqu'il marque le serveur comme en échec, vous voyez une notification `MCP server "<name>" disconnected · open /mcp to reconnect`. Vous pouvez réessayer manuellement depuis `/mcp`.
393* **Dans les exécutions [`claude -p`](https://code.claude.com/docs/fr/headless) et les sessions [Agent SDK](https://code.claude.com/docs/fr/agent-sdk/overview.md)** : Claude Code effectue les mêmes cinq tentatives, sans panneau `/mcp` pour les afficher. Si les cinq échouent, l'exécution se poursuit sans les outils du serveur :393* **Lors des exécutions [`claude -p`](https://code.claude.com/docs/fr/headless) et des sessions [Agent SDK](https://code.claude.com/docs/fr/agent-sdk/overview.md)** : Claude Code effectue les mêmes cinq tentatives, sans panneau `/mcp` pour les afficher. Si les cinq échouent, l'exécution continue sans les outils du serveur :
394 * **Après une erreur transitoire, telle qu'une réponse 5xx ou un délai d'expiration** : Claude Code continue de réessayer de connecter un serveur HTTP ou SSE en arrière-plan. Les nouvelles tentatives durent jusqu'à environ une demi-heure, et les outils du serveur redeviennent disponibles lorsque l'une d'elles parvient à se connecter. D'ici là, une session Agent SDK signale le [statut](https://code.claude.com/docs/fr/agent-sdk/mcp.md#error-handling) `failed`, et votre code peut [reconnecter le serveur](https://code.claude.com/docs/fr/agent-sdk/mcp.md#error-handling). Pour le reconnecter dans `claude -p`, relancez l'exécution.394 * **Après une erreur transitoire, comme une réponse 5xx ou un délai d'expiration** : Claude Code continue de réessayer un serveur HTTP ou SSE en arrière-plan. Les nouvelles tentatives durent jusqu'à environ une demi-heure, et les outils du serveur redeviennent disponibles lorsque l'une d'elles aboutit. D'ici là, une session Agent SDK signale le [statut](https://code.claude.com/docs/fr/agent-sdk/mcp.md#error-handling) `failed`, et votre code peut [reconnecter le serveur](https://code.claude.com/docs/fr/agent-sdk/mcp.md#error-handling). Pour le reconnecter dans `claude -p`, relancez l'exécution.
395 * **Lorsque le serveur [nécessite que vous vous reconnectiez](#authenticate-with-remote-mcp-servers)** : Claude Code cesse de réessayer, et une session Agent SDK signale le statut du serveur comme `needs-auth`. Connectez-vous avec [`claude mcp login <name>`](#authenticate-from-the-command-line) dans votre shell. Ensuite, relancez l'exécution ou, dans une session Agent SDK, [reconnectez le serveur](https://code.claude.com/docs/fr/agent-sdk/mcp.md#error-handling) à la place.395 * **Lorsque le serveur [nécessite que vous vous reconnectiez](#authenticate-with-remote-mcp-servers)** : Claude Code cesse de réessayer, et une session Agent SDK signale le statut du serveur comme `needs-auth`. Connectez-vous avec [`claude mcp login <name>`](#authenticate-from-the-command-line) dans votre shell. Puis relancez l'exécution ou, dans une session Agent SDK, [reconnectez plutôt le serveur](https://code.claude.com/docs/fr/agent-sdk/mcp.md#error-handling).
396 396
397#### Échecs de première connexion397#### Premières connexions échouées
398 398
399Lorsque la première connexion d'un serveur HTTP ou SSE échoue avec une erreur transitoire, telle qu'une réponse 5xx, une connexion refusée, ou un délai d'expiration, Claude Code réessaie jusqu'à trois fois. Si la connexion échoue toujours, Claude Code marque le serveur comme défaillant.399Lorsque la première connexion d'un serveur HTTP ou SSE échoue avec une erreur transitoire, comme une réponse 5xx, une connexion refusée ou un délai d'expiration, Claude Code réessaie jusqu'à trois fois. Si la connexion échoue toujours, Claude Code marque le serveur comme en échec.
400 400
401Ces nouvelles tentatives ne s'appliquent pas dans ces cas :401Ces nouvelles tentatives ne s'appliquent pas dans les cas suivants :
402 402
403* La première connexion d'un serveur stdio. Pour la réessayer, voir [Serveurs stdio qui se terminent ou ne démarrent pas](#stdio-servers-that-exit-or-fail-to-start)403* La première connexion d'un serveur stdio. Pour la réessayer, consultez [Serveurs stdio qui s'arrêtent ou ne démarrent pas](#stdio-servers-that-exit-or-fail-to-start)
404* La première connexion d'un serveur WebSocket. Pour la retenter dans une session de terminal interactive, sélectionnez **Reconnect** dans le menu du serveur dans `/mcp`404* La première connexion d'un serveur WebSocket. Pour la réessayer dans une session de terminal interactive, sélectionnez **Reconnect** dans le menu du serveur dans `/mcp`
405* Une erreur d'authentification ou de ressource introuvable, car elle nécessite une modification de configuration pour être résolue. Lorsqu'un [`headersHelper`](#use-dynamic-headers-for-custom-authentication) est la seule source de l'en-tête `Authorization` du serveur, Claude Code réessaie quand même après une erreur d'authentification, car il réexécute le helper à chaque tentative et peut récupérer des identifiants frais405* Une erreur d'authentification ou de ressource introuvable, car sa résolution nécessite une modification de configuration. Lorsqu'un [`headersHelper`](#use-dynamic-headers-for-custom-authentication) est la seule source de l'en-tête `Authorization` du serveur, Claude Code réessaie malgré tout une erreur d'authentification, car il réexécute le helper à chaque tentative et peut obtenir des identifiants à jour
406 406
407#### Serveurs stdio qui se terminent ou ne démarrent pas407#### Serveurs stdio qui s'arrêtent ou ne démarrent pas
408 408
409Pour redémarrer un serveur stdio, lisez la colonne qui correspond à ce qui lui est arrivé. Trouvez votre ligne selon la façon dont vous exécutez Claude Code : une session interactive, une exécution `claude -p`, ou une session Agent SDK.409Pour redémarrer un serveur stdio, lisez la colonne correspondant à ce qui lui est arrivé. Trouvez votre ligne selon la manière dont vous exécutez Claude Code : une session interactive, une exécution `claude -p` ou une session Agent SDK.
410 410
411| Comment vous exécutez Claude Code | Le processus du serveur se termine en cours de session | La première connexion du serveur échoue |411| Comment vous exécutez Claude Code | Le processus du serveur s'arrête en cours de session | La première connexion du serveur échoue |
412| - | - | - |412| - | - | - |
413| Session interactive | Claude Code marque le serveur comme défaillant. Pour le redémarrer, sélectionnez **Reconnect** dans le menu du serveur dans `/mcp` | Claude Code marque le serveur comme défaillant. Pour le redémarrer, sélectionnez **Reconnect** dans le menu du serveur dans `/mcp` |413| Session interactive | Claude Code marque le serveur comme en échec. Pour le redémarrer, sélectionnez **Reconnect** dans le menu du serveur dans `/mcp` | Claude Code marque le serveur comme en échec. Pour le redémarrer, sélectionnez **Reconnect** dans le menu du serveur dans `/mcp` |
414| Exécution `claude -p` | Claude Code redémarre le serveur la prochaine fois que Claude appelle l'un des outils du serveur, et l'appel s'exécute dès que le serveur se connecte | L'exécution se poursuit sans les outils du serveur. Pour que Claude Code réessaie la connexion, relancez l'exécution. Lorsqu'un plugin fournit le serveur, les nouvelles exécutions ignorent la connexion pendant 15 minutes après un échec ; attendez donc ce délai d'abord ou [réessayez plus tôt](https://code.claude.com/docs/fr/errors.md#skipping-connection-recent-failure-cached) |414| Exécution `claude -p` | Claude Code redémarre le serveur la prochaine fois que Claude appelle l'un de ses outils, et l'appel s'exécute une fois le serveur connecté | L'exécution continue sans les outils du serveur. Pour que Claude Code réessaie la connexion, relancez l'exécution. Lorsqu'un plugin fournit le serveur, les nouvelles exécutions ignorent la connexion pendant 15 minutes après un échec : attendez donc ce délai ou [réessayez plus tôt](https://code.claude.com/docs/fr/errors.md#skipping-connection-recent-failure-cached) |
415| Session Agent SDK | Claude Code redémarre le serveur la prochaine fois que Claude appelle l'un des outils du serveur, et l'appel s'exécute dès que le serveur se connecte | La session se poursuit sans les outils du serveur. Votre code peut [reconnecter le serveur](https://code.claude.com/docs/fr/agent-sdk/mcp.md#error-handling) |415| Session Agent SDK | Claude Code redémarre le serveur la prochaine fois que Claude appelle l'un de ses outils, et l'appel s'exécute une fois le serveur connecté | La session continue sans les outils du serveur. Votre code peut [reconnecter le serveur](https://code.claude.com/docs/fr/agent-sdk/mcp.md#error-handling) |
416 416
417#### Requêtes de découverte échouées417#### Requêtes de découverte échouées
418 418
419Après qu'un serveur s'est connecté, Claude Code lui envoie des requêtes de découverte de capacités telles que `tools/list`, `prompts/list`, et `resources/list`. Claude Code réessaie ces requêtes jusqu'à trois fois avec un backoff court après une erreur réseau ou serveur transitoire. Il ne réessaie pas après les erreurs d'authentification, les réponses 4xx, ou les expirations de requête.419Une fois qu'un serveur est connecté, Claude Code lui envoie des requêtes de découverte des capacités telles que `tools/list`, `prompts/list` et `resources/list`. Claude Code réessaie ces requêtes jusqu'à trois fois avec un court backoff après une erreur réseau ou serveur transitoire. Il ne réessaie pas les erreurs d'authentification, les réponses 4xx ni les expirations de requête.
420 420
421#### Réessayer vous-même les serveurs en échec421#### Réessayer vous-même les serveurs en échec
422 422
423Pour réessayer tous les serveurs en échec ou nécessitant une authentification, exécutez `/mcp reconnect all` à l'invite de Claude Code dans une session de terminal interactive. Cela nécessite Claude Code v2.1.284 ou une version ultérieure. Les versions antérieures affichent `MCP server "all" not found`.423Pour réessayer tous les serveurs en échec ou nécessitant une authentification, exécutez `/mcp reconnect all` dans l'invite de Claude Code au sein d'une session de terminal interactive. Cela nécessite Claude Code v2.1.284 ou une version ultérieure. Les versions antérieures affichent `MCP server "all" not found`.
424 424
425#### Comment Claude apprend qu'un serveur a échoué425#### Comment Claude apprend qu'un serveur a échoué
426 426
427Le fait que Claude Code indique à Claude qu'un serveur configuré n'a pas pu se connecter dépend de la [recherche d'outils](#scale-with-mcp-tool-search), qui est activée par défaut :427Le fait que Claude Code informe Claude d'un serveur configuré qui n'a pas pu se connecter dépend de la [recherche d'outils](#scale-with-mcp-tool-search), activée par défaut :
428 428
429* Avec la recherche d'outils, Claude Code indique à Claude quel serveur a échoué et son erreur de connexion, donc Claude signale l'échec de la connexion dans sa réponse. Claude Code inclut les mêmes informations dans les résultats `ToolSearch` qui ne trouvent aucun outil correspondant.429* Avec la recherche d'outils, Claude Code indique à Claude quel serveur a échoué et son erreur de connexion, de sorte que Claude signale l'échec de connexion dans sa réponse. Claude Code inclut les mêmes informations dans les résultats `ToolSearch` qui ne trouvent aucun outil correspondant.
430* Dans toute [configuration sans recherche d'outils](#configure-tool-search), Claude Code ne signale pas les échecs de connexion des serveurs à Claude.430* Dans toute [configuration sans recherche d'outils](#configure-tool-search), Claude Code ne signale pas les connexions de serveur échouées à Claude.
431 431
432### Pousser des messages avec des canaux432### Envoyer des messages avec les canaux
433 433
434Un serveur MCP peut également pousser des messages directement dans votre session afin que Claude puisse réagir à des événements externes comme les résultats CI, les alertes de surveillance, ou les messages de chat. Pour activer cela, votre serveur déclare la capacité `claude/channel` et vous l'activez avec le flag `--channels` au démarrage. Voir [Canaux](https://code.claude.com/docs/fr/channels.md) pour utiliser un canal officiellement supporté, ou [Référence des canaux](https://code.claude.com/docs/fr/channels-reference.md) pour créer le vôtre.434Un serveur MCP peut également envoyer des messages directement dans votre session afin que Claude puisse réagir à des événements externes comme des résultats de CI, des alertes de monitoring ou des messages de chat. Pour l'activer, votre serveur déclare la capacité `claude/channel` et vous l'activez avec le flag `--channels` au démarrage. Consultez [Canaux](https://code.claude.com/docs/fr/channels.md) pour utiliser un canal officiellement pris en charge, ou la [référence des canaux](https://code.claude.com/docs/fr/channels-reference.md) pour créer le vôtre.
435 435
436Sur le [runtime v2](#mcp-client-runtimes), un serveur de canal qui négocie la révision de protocole MCP 2026-07-28 ne peut pas livrer les messages de canal, donc Claude Code ne l'enregistre pas comme un canal. Un serveur de canal qui ne supporte pas cette révision se connecte avec la poignée de main antérieure et s'enregistre comme auparavant.436Sur le [runtime v2](#mcp-client-runtimes), un serveur de canal qui négocie la révision 2026-07-28 du protocole MCP ne peut pas transmettre de messages de canal : Claude Code ne l'enregistre donc pas comme canal. Un serveur de canal qui ne prend pas en charge cette révision se connecte avec l'ancienne négociation et s'enregistre comme auparavant.
437 437
438Claude Code demande cette révision aux serveurs stdio par défaut. Pour maintenir un serveur de canal stdio sur la poignée de main antérieure, définissez [`MCP_PROTOCOL_NEGOTIATION`](https://code.claude.com/docs/fr/env-vars) à `legacy`, ce qui y maintient tous les serveurs.438Claude Code interroge par défaut les serveurs stdio au sujet de cette révision. Pour maintenir un serveur de canal stdio sur l'ancienne négociation, définissez [`MCP_PROTOCOL_NEGOTIATION`](https://code.claude.com/docs/fr/env-vars) sur `legacy`, ce qui y maintient tous les serveurs.
439 439
440> [!TIP]440> [!TIP]
441>441>
443>443>
444> * Utilisez le flag `-s` ou `--scope` pour spécifier où la configuration est stockée :444> * Utilisez le flag `-s` ou `--scope` pour spécifier où la configuration est stockée :
445> * `local` (par défaut) : disponible uniquement pour vous dans le projet actuel445> * `local` (par défaut) : disponible uniquement pour vous dans le projet actuel
446> * `project` : partagé avec tout le monde dans le projet via le fichier `.mcp.json`446> * `project` : partagé avec tous les membres du projet via le fichier `.mcp.json`
447> * `user` : disponible pour vous dans tous les projets447> * `user` : disponible pour vous dans tous les projets
448> * Définissez les variables d'environnement avec les flags `-e` ou `--env` (par exemple, `-e KEY=value`)448> * Définissez des variables d'environnement avec les flags `-e` ou `--env` (par exemple, `-e KEY=value`)
449> * Les flags `--transport` et `--header` acceptent également les formes courtes `-t` et `-H`449> * Les flags `--transport` et `--header` acceptent également les formes courtes `-t` et `-H`
450> * Configurez le délai d'expiration de démarrage du serveur MCP en utilisant la variable d'environnement `MCP_TIMEOUT` (par exemple, `MCP_TIMEOUT=10000 claude` définit un délai d'expiration de 10 secondes)450> * Configurez le délai d'expiration de démarrage des serveurs MCP avec la variable d'environnement `MCP_TIMEOUT` (par exemple, `MCP_TIMEOUT=10000 claude` définit un délai d'expiration de 10 secondes)
451> * Définissez un délai d'expiration d'exécution d'outil par serveur en ajoutant un champ `timeout` en millisecondes à l'entrée `.mcp.json` de ce serveur, par exemple `"timeout": 600000` pour dix minutes. Cela remplace la variable d'environnement `MCP_TOOL_TIMEOUT` pour ce serveur uniquement451> * Définissez un délai d'expiration d'exécution des outils par serveur en ajoutant un champ `timeout` en millisecondes à l'entrée `.mcp.json` de ce serveur, par exemple `"timeout": 600000` pour dix minutes. Cela remplace la variable d'environnement `MCP_TOOL_TIMEOUT` pour ce serveur uniquement
452> * Claude Code affiche un avertissement lorsque la sortie de l'outil MCP dépasse 10 000 tokens et limite la sortie à 25 000 tokens par défaut. Pour modifier la limite de tokens, définissez la variable d'environnement `MAX_MCP_OUTPUT_TOKENS`, par exemple `MAX_MCP_OUTPUT_TOKENS=50000`. Le seuil d'avertissement est fixe. Sauf si le serveur augmente la limite propre d'un outil, les résultats textuels réussis de plus de 50 000 caractères sont enregistrés dans un fichier, quelle que soit la valeur de cette variable. Voir [Limites et avertissements de sortie MCP](#mcp-output-limits-and-warnings)452> * Claude Code affiche un avertissement lorsque la sortie d'un outil MCP dépasse 10 000 tokens et limite la sortie à 25 000 tokens par défaut. Pour modifier la limite de tokens, définissez la variable d'environnement `MAX_MCP_OUTPUT_TOKENS`, par exemple `MAX_MCP_OUTPUT_TOKENS=50000`. Le seuil d'avertissement est fixe. Sauf si le serveur relève la limite propre à un outil, les résultats textuels réussis de plus de 50 000 caractères sont enregistrés dans un fichier, quelle que soit cette variable. Consultez [Limites et avertissements de sortie MCP](#mcp-output-limits-and-warnings)
453> * Utilisez `/mcp` pour vous authentifier auprès des serveurs distants qui nécessitent une authentification OAuth 2.0453> * Utilisez `/mcp` pour vous authentifier auprès des serveurs distants qui nécessitent une authentification OAuth 2.0
454 454
455### Limites de temps des appels d'outils MCP455### Limites de temps des appels d'outils MCP
457Pour limiter la durée d'exécution d'un appel d'outil MCP :457Pour limiter la durée d'exécution d'un appel d'outil MCP :
458 458
459* **Par serveur** : ajoutez un champ `timeout` en millisecondes à l'entrée de configuration de ce serveur459* **Par serveur** : ajoutez un champ `timeout` en millisecondes à l'entrée de configuration de ce serveur
460* **Pour l'ensemble des serveurs** : définissez [`MCP_TOOL_TIMEOUT`](https://code.claude.com/docs/fr/env-vars)460* **Pour tous les serveurs** : définissez [`MCP_TOOL_TIMEOUT`](https://code.claude.com/docs/fr/env-vars)
461 461
462Le `timeout` par serveur est une limite stricte en temps réel par appel d'outil, et les notifications de progression du serveur ne la prolongent pas. Les valeurs inférieures à 1000 sont ignorées et se rabattent sur `MCP_TOOL_TIMEOUT`, ou sur sa valeur par défaut d'environ 28 heures lorsque cette variable n'est pas définie. Pour un serveur HTTP, SSE, ou de [connecteur claude.ai](https://code.claude.com/docs/fr/mcp.md#use-mcp-servers-from-claude-ai), il existe également un second minuteur, par requête, qui couvre chaque requête jusqu'au premier octet de réponse du serveur. Claude Code définit ce minuteur à la plus grande de trois valeurs : 60 secondes, le délai d'expiration d'outil qui s'applique au serveur, et `MCP_TIMEOUT`. La valeur par défaut de 28 heures d'un `MCP_TOOL_TIMEOUT` non défini n'entre pas dans cette comparaison, et une valeur inférieure à 60 secondes ne raccourcit pas le minuteur. Les serveurs stdio et WebSocket n'ont pas de minuteur par requête.462Le `timeout` par serveur est une limite stricte en temps réel par appel d'outil, et les notifications de progression du serveur ne la prolongent pas. Les valeurs inférieures à 1000 sont ignorées et se rabattent sur `MCP_TOOL_TIMEOUT`, ou sur sa valeur par défaut d'environ 28 heures lorsque cette variable n'est pas définie. Pour un serveur HTTP, SSE ou un [connecteur claude.ai](https://code.claude.com/docs/fr/mcp.md#use-mcp-servers-from-claude-ai), il existe aussi un second minuteur, par requête, qui couvre chaque requête jusqu'au premier octet de réponse du serveur. Claude Code règle ce minuteur sur la plus grande de trois valeurs : 60 secondes, le délai d'expiration d'outil qui s'applique au serveur, et `MCP_TIMEOUT`. La valeur par défaut de 28 heures d'un `MCP_TOOL_TIMEOUT` non défini n'entre pas dans cette comparaison, et une valeur inférieure à 60 secondes ne raccourcit pas le minuteur. Les serveurs stdio et WebSocket n'ont pas de minuteur par requête.
463 463
464Un `timeout` par serveur d'au moins 1000 agit également comme un plancher pour le délai d'inactivité décrit ci-dessous : Claude Code n'abandonne jamais les appels d'outils de ce serveur pour inactivité plus tôt que le `timeout` par serveur.464Un `timeout` par serveur d'au moins 1000 sert également de plancher au délai d'inactivité décrit ci-dessous : Claude Code n'interrompt jamais les appels d'outils de ce serveur pour inactivité avant le `timeout` par serveur.
465 465
466Un appel d'outil à un serveur MCP qui n'envoie aucune réponse et aucune notification de progression pendant la fenêtre d'inactivité est abandonné avec une erreur au lieu d'attendre la limite en temps réel. Le délai d'inactivité s'applique à tous les types de serveurs sauf les serveurs IDE et les serveurs en processus du SDK. La fenêtre d'inactivité par défaut est de cinq minutes pour les serveurs HTTP, SSE, WebSocket, et de [connecteur claude.ai](#use-mcp-servers-from-claude-ai), et de 30 minutes pour les serveurs stdio.466Un appel d'outil vers un serveur MCP qui n'envoie ni réponse ni notification de progression pendant la fenêtre d'inactivité est interrompu avec une erreur au lieu d'attendre la limite en temps réel. Le délai d'inactivité s'applique à tous les types de serveurs, à l'exception des serveurs IDE et des serveurs SDK in-process. La fenêtre d'inactivité est par défaut de cinq minutes pour les serveurs HTTP, SSE, WebSocket et les [connecteurs claude.ai](#use-mcp-servers-from-claude-ai), et de 30 minutes pour les serveurs stdio.
467 467
468Définissez la variable d'environnement [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](https://code.claude.com/docs/fr/env-vars) en millisecondes pour changer la fenêtre d'inactivité, ou définissez-la à `0` pour désactiver la vérification.468Définissez la variable d'environnement [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](https://code.claude.com/docs/fr/env-vars) en millisecondes pour modifier la fenêtre d'inactivité, ou définissez-la sur `0` pour désactiver la vérification.
469 469
470Ces délais d'expiration limitent la durée pendant laquelle un appel peut s'exécuter, pas toujours la durée pendant laquelle il bloque la session : un appel de la conversation principale qui s'exécute au-delà de deux minutes passe d'abord dans une tâche en arrière-plan. Voir [Mise en arrière-plan automatique des appels d'outils longs](#automatic-backgrounding-of-long-tool-calls).470Ces délais d'expiration limitent la durée d'exécution d'un appel, et pas toujours la durée pendant laquelle il bloque la session : un appel de la conversation principale qui dure plus de deux minutes passe d'abord en tâche en arrière-plan. Consultez [Passage automatique en arrière-plan des appels d'outils longs](#automatic-backgrounding-of-long-tool-calls).
471 471
472### Mise en arrière-plan automatique des appels d'outils longs472### Passage automatique en arrière-plan des appels d'outils longs
473 473
474Si la vue détaillée d'un appel en arrière-plan dans [`/tasks`](https://code.claude.com/docs/fr/commands#all-commands) affiche `runs on the server; survives exiting this session`, consultez [Tâches MCP exécutées sur le serveur](#mcp-tasks-that-run-on-the-server).474Si la vue détaillée d'un appel en arrière-plan dans [`/tasks`](https://code.claude.com/docs/fr/commands#all-commands) affiche `runs on the server; survives exiting this session`, consultez [Tâches MCP exécutées sur le serveur](#mcp-tasks-that-run-on-the-server).
475 475
476Un appel d'outil MCP dans la conversation principale qui s'exécute toujours après deux minutes passe dans une tâche en arrière-plan au lieu de bloquer la session. Claude reçoit immédiatement l'ID de la tâche et continue de travailler, et le résultat arrive sous forme de notification de tâche lorsque l'appel se termine.476Un appel d'outil MCP de la conversation principale qui est toujours en cours après deux minutes passe en tâche en arrière-plan au lieu de bloquer la session. Claude reçoit immédiatement l'ID de la tâche et continue à travailler, et le résultat arrive sous forme de notification de tâche lorsque l'appel se termine.
477 477
478La tâche apparaît dans [`/tasks`](https://code.claude.com/docs/fr/commands#all-commands), où vous pouvez également l'arrêter, et elle ne survit pas à la sortie de la session. L'entrée de la tâche affiche la dernière progression que le serveur a signalée. Si vous arrêtez la tâche, Claude Code annule l'appel et indique à Claude qu'aucun résultat n'arrivera. L'arrêt ne garantit pas que le serveur s'arrête : il a peut-être déjà effectué une partie du travail, ou peut encore le terminer.478La tâche apparaît dans [`/tasks`](https://code.claude.com/docs/fr/commands#all-commands), où vous pouvez également l'arrêter, et elle ne survit pas à la fermeture de la session. L'entrée de la tâche affiche la dernière progression signalée par le serveur. Si vous arrêtez la tâche, Claude Code annule l'appel et indique à Claude qu'aucun résultat n'arrivera. L'arrêt ne garantit pas que le serveur s'arrête : il peut déjà avoir effectué une partie du travail, ou même le terminer.
479 479
480Les limites par appel s'appliquent toujours pendant que l'appel s'exécute en arrière-plan : la limite en temps réel définie par le `timeout` par serveur ou [`MCP_TOOL_TIMEOUT`](https://code.claude.com/docs/fr/env-vars), et le délai d'inactivité défini par [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](https://code.claude.com/docs/fr/env-vars).480Les limites par appel s'appliquent toujours pendant que l'appel s'exécute en arrière-plan : la limite en temps réel définie par le `timeout` par serveur ou par [`MCP_TOOL_TIMEOUT`](https://code.claude.com/docs/fr/env-vars), et le délai d'inactivité défini par [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](https://code.claude.com/docs/fr/env-vars).
481 481
482Pour modifier ou désactiver la mise en arrière-plan automatique :482Pour modifier ou désactiver le passage automatique en arrière-plan :
483 483
484* Définissez la variable d'environnement [`CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS`](https://code.claude.com/docs/fr/env-vars) en millisecondes pour modifier le seuil, ou définissez-la sur `0` pour désactiver la mise en arrière-plan automatique. Avec `0`, Claude [attend également les tâches MCP](#make-claude-wait-for-the-result-of-an-mcp-task) dans une session interactive484* Définissez la variable d'environnement [`CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS`](https://code.claude.com/docs/fr/env-vars) en millisecondes pour modifier le seuil, ou définissez-la sur `0` pour désactiver le passage automatique en arrière-plan. Avec `0`, Claude [attend également les tâches MCP](#make-claude-wait-for-the-result-of-an-mcp-task) dans une session interactive
485* Définissez [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](https://code.claude.com/docs/fr/env-vars) sur `1` pour désactiver la mise en arrière-plan automatique et les [commandes en arrière-plan](https://code.claude.com/docs/fr/tools-reference.md#background-commands)485* Définissez [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](https://code.claude.com/docs/fr/env-vars) sur `1` pour désactiver le passage automatique en arrière-plan et les [commandes en arrière-plan](https://code.claude.com/docs/fr/tools-reference.md#background-commands)
486 486
487Certains appels ne passent jamais en arrière-plan :487Certains appels ne passent jamais en arrière-plan :
488 488
489* Les appels provenant de [sous-agents](https://code.claude.com/docs/fr/sub-agents.md) ; Claude Code met en arrière-plan uniquement les appels de la conversation principale489* Les appels provenant de [sous-agents](https://code.claude.com/docs/fr/sub-agents.md) ; Claude Code ne fait passer en arrière-plan que les appels de la conversation principale
490* Les appels aux serveurs IDE490* Les appels vers des serveurs IDE
491* Les appels en [mode non interactif](https://code.claude.com/docs/fr/headless.md), sauf si `CLAUDE_AUTO_BACKGROUND_TASKS` est défini à `1`, car une exécution ponctuelle peut se terminer avant l'arrivée du résultat491* Les appels en [mode non interactif](https://code.claude.com/docs/fr/headless.md), sauf si `CLAUDE_AUTO_BACKGROUND_TASKS` est défini sur `1`, car une exécution ponctuelle peut se terminer avant l'arrivée du résultat
492 492
493Un appel en attente d'une [boîte de dialogue d'élicitation](#respond-to-mcp-elicitation-requests) ouverte n'est pas mis en arrière-plan tant que la boîte de dialogue est ouverte ; le serveur est bloqué en attente de votre saisie, il n'est pas lent, donc Claude Code diffère le passage en arrière-plan jusqu'à la fermeture de la boîte de dialogue.493Un appel en attente d'une [boîte de dialogue d'élicitation](#respond-to-mcp-elicitation-requests) ouverte ne passe pas en arrière-plan tant que la boîte de dialogue est ouverte ; le serveur est bloqué en attente de votre saisie, il n'est pas lent : Claude Code reporte donc le passage jusqu'à la fermeture de la boîte de dialogue.
494 494
495### Tâches MCP exécutées sur le serveur495### Tâches MCP exécutées sur le serveur
496 496
497Une tâche MCP est un travail de longue durée, tel qu'un export de rapport ou un build, qu'un serveur MCP exécute lui-même à l'aide de l'[extension MCP tasks](https://modelcontextprotocol.io/extensions/tasks/overview). L'appel d'outil de Claude se termine dès que le serveur accepte le travail, de sorte que Claude continue de travailler, sauf si vous [faites attendre Claude](#make-claude-wait-for-the-result-of-an-mcp-task). Lorsque le travail se termine, la transcription l'indique et Claude reçoit le résultat. Demandez-le à Claude.497Une tâche MCP est un travail long, comme un export de rapport ou un build, qu'un serveur MCP exécute lui-même à l'aide de l'[extension MCP tasks](https://modelcontextprotocol.io/extensions/tasks/overview). L'appel d'outil de Claude se termine dès que le serveur accepte le travail : Claude continue donc à travailler, sauf si vous [faites attendre Claude](#make-claude-wait-for-the-result-of-an-mcp-task). Lorsque le travail se termine, la transcription l'indique et Claude obtient le résultat. Demandez-le à Claude.
498 498
499Entre-temps, le pied de page affiche un décompte tel que `1 MCP task`, et Claude Code suit la tâche en vérifiant son statut auprès du serveur. Une tâche sur un serveur distant continue de s'exécuter après que vous avez quitté. Pour la suivre à nouveau, [reprenez la même session](#exit-clear-or-resume-while-an-mcp-task-runs).499Entre-temps, le pied de page affiche un décompte tel que `1 MCP task`, et Claude Code suit la tâche en vérifiant son statut auprès du serveur. Une tâche sur un serveur distant continue de s'exécuter après que vous avez quitté. Pour la suivre à nouveau, [reprenez la même session](#exit-clear-or-resume-while-an-mcp-task-runs).
500 500
501> [!NOTE]501> [!NOTE]
502>502>
503> Les tâches MCP sont en bêta publique dans la CLI Claude Code et nécessitent Claude Code v2.1.304 ou une version ultérieure. [Ce dont un appel a besoin pour devenir une tâche MCP](#requirements-for-mcp-tasks) liste les sessions et les serveurs qui en bénéficient.503> Les tâches MCP sont en bêta publique dans la CLI Claude Code et nécessitent Claude Code v2.1.304 ou une version ultérieure. La section [Ce qu'il faut pour qu'un appel devienne une tâche MCP](#requirements-for-mcp-tasks) liste les sessions et les serveurs qui en bénéficient.
504 504
505#### Arrêter une tâche MCP ou obtenir son résultat505#### Arrêter une tâche MCP ou obtenir son résultat
506 506
507Pour arrêter une tâche en cours, sélectionnez-la dans [`/tasks`](https://code.claude.com/docs/fr/commands#all-commands) et appuyez sur `x`, ou demandez-le à Claude. Claude Code cesse de suivre la tâche et demande au serveur de l'annuler, bien que le serveur puisse encore la terminer. Reconnectez d'abord un serveur déconnecté depuis `/mcp`, sinon aucune requête d'annulation n'est envoyée et Claude Code oublie la tâche et ne peut plus la suivre. Appuyer sur `Esc` n'arrête pas une tâche en arrière-plan.507Pour arrêter une tâche en cours, sélectionnez-la dans [`/tasks`](https://code.claude.com/docs/fr/commands#all-commands) et appuyez sur `x`, ou demandez-le à Claude. Claude Code cesse de suivre la tâche et demande au serveur de l'annuler, bien que le serveur puisse tout de même la terminer. Reconnectez d'abord un serveur déconnecté depuis `/mcp`, sinon aucune demande d'annulation n'est envoyée, et Claude Code oublie la tâche et ne peut plus la suivre. Appuyer sur `Esc` n'arrête pas une tâche en arrière-plan.
508 508
509Lorsque la tâche se termine, une ligne comme celle-ci apparaît dans la transcription :509Lorsque la tâche se termine, une ligne comme celle-ci apparaît dans la transcription :
510 510
512MCP task <server task id> (<server>/<tool>) completed.512MCP task <server task id> (<server>/<tool>) completed.
513```513```
514 514
515Le résultat est transmis à Claude, et non à la transcription ; demandez-le donc à Claude. Si Claude est inactif lorsque le résultat arrive, Claude s'en occupe sans sollicitation.515Le résultat est transmis à Claude, et non à la transcription : demandez-le donc à Claude. Si Claude est inactif lorsque le résultat arrive, Claude s'en occupe sans sollicitation.
516 516
517#### Répondre à une question d'une tâche MCP517#### Répondre à une question d'une tâche MCP
518 518
519Une tâche en cours peut ouvrir une [boîte de dialogue d'élicitation](#respond-to-mcp-elicitation-requests) pour vous demander une saisie. Tant que `/tasks` est ouvert, la boîte de dialogue reste masquée ; fermez donc `/tasks` pour répondre. Refuser ou appuyer sur `Esc` constitue une réponse au serveur, qui décide alors si la tâche se poursuit.519Une tâche en cours peut ouvrir une [boîte de dialogue d'élicitation](#respond-to-mcp-elicitation-requests) pour vous demander une saisie. Tant que `/tasks` est ouvert, la boîte de dialogue reste masquée : fermez donc `/tasks` pour répondre. Refuser ou appuyer sur `Esc` constitue une réponse au serveur, qui décide alors si la tâche continue.
520 520
521Dans une session [non interactive](https://code.claude.com/docs/fr/headless.md), Claude Code demande au serveur d'annuler une tâche qui demande une saisie, sans exécuter vos [hooks `Elicitation`](https://code.claude.com/docs/fr/hooks#elicitation) ni appeler le callback `onElicitation` de l'Agent SDK.521Dans une session [non interactive](https://code.claude.com/docs/fr/headless.md), Claude Code demande au serveur d'annuler une tâche qui requiert une saisie, sans exécuter vos [hooks `Elicitation`](https://code.claude.com/docs/fr/hooks#elicitation) ni appeler le callback `onElicitation` de l'Agent SDK.
522 522
523#### Quitter, effacer ou reprendre pendant l'exécution d'une tâche MCP523#### Quitter, effacer ou reprendre pendant l'exécution d'une tâche MCP
524 524
525Une tâche sur un serveur distant continue de s'exécuter après que vous avez quitté. Le processus d'un serveur stdio s'arrête lorsque Claude Code se ferme, bien que ses tâches affichent `runs on the server; survives exiting this session` dans `/tasks`. Sauf si la documentation de ce serveur indique que le travail survit au processus, laissez d'abord ces tâches se terminer ou arrêtez-les dans `/tasks`.525Une tâche sur un serveur distant continue de s'exécuter après que vous avez quitté. Le processus d'un serveur stdio s'arrête lorsque Claude Code se ferme, même si ses tâches affichent `runs on the server; survives exiting this session` dans `/tasks`. Sauf si la documentation de ce serveur indique que le travail survit au processus, laissez ces tâches se terminer ou arrêtez-les d'abord dans `/tasks`.
526 526
527| Situation | Ce qu'il advient de la tâche | Ce que vous pouvez faire |527| Situation | Ce qui arrive à la tâche | Ce que vous pouvez faire |
528| - | - | - |528| - | - | - |
529| Vous exécutez `/clear` ou `/branch`, ou `/resume` une autre session | Tant que Claude Code reste ouvert, le résultat arrive dans votre conversation actuelle | Après avoir quitté, exécutez `claude --resume` sur la session dans laquelle la tâche a démarré |529| Vous exécutez `/clear` ou `/branch`, ou `/resume` vers une autre session | Tant que Claude Code reste ouvert, le résultat arrive dans votre conversation actuelle | Après avoir quitté, faites `claude --resume` sur la session dans laquelle la tâche a démarré |
530| Vous quittez Claude Code | Aucune option de sortie n'annule la tâche d'un serveur distant, même lorsque la boîte de dialogue de sortie la liste sous `The following will stop when you exit:` | Arrêtez-la d'abord dans `/tasks`, ou reprenez la même session plus tard |530| Vous quittez Claude Code | Aucune option de sortie n'annule la tâche d'un serveur distant, même lorsque la boîte de dialogue de sortie la liste sous `The following will stop when you exit:` | Arrêtez-la d'abord dans `/tasks`, ou reprenez la même session plus tard |
531| Vous revenez à la session de la tâche en mode interactif : `claude --resume`, `claude --continue` ou `/resume` | Une fois le serveur connecté, Claude Code suit à nouveau la tâche, et Claude reçoit le résultat si elle s'est terminée entre-temps et que le serveur la connaît encore | Conservez le nom du serveur et ses paramètres de connexion inchangés |531| Vous revenez à la session de la tâche en mode interactif : `claude --resume`, `claude --continue` ou `/resume` | Une fois le serveur connecté, Claude Code suit à nouveau la tâche, et Claude obtient le résultat si elle s'est terminée entre-temps et que le serveur la connaît encore | Conservez le nom et les paramètres de connexion du serveur inchangés |
532| Vous reprenez la session de la tâche avec `--resume` ou `--continue` dans une exécution ponctuelle `claude -p "<prompt>"` | Cette exécution ne suit pas la tâche | Reprenez en mode interactif, ou avec `--input-format stream-json` |532| Vous reprenez la session de la tâche avec `--resume` ou `--continue` dans une exécution ponctuelle `claude -p "<prompt>"` | Cette exécution ne suit pas la tâche | Reprenez en mode interactif, ou avec `--input-format stream-json` |
533| Vous démarrez une nouvelle session ou utilisez `--fork-session` | La nouvelle session ne suit pas la tâche | Reprenez la session qui l'a démarrée |533| Vous démarrez une nouvelle session ou utilisez `--fork-session` | La nouvelle session ne suit pas la tâche | Reprenez la session qui l'a démarrée |
534 534
535#### Ce dont un appel a besoin pour devenir une tâche MCP535#### Ce qu'il faut pour qu'un appel devienne une tâche MCP
536 536
537Un appel d'outil ne devient une tâche MCP que lorsque toutes ces conditions sont réunies :537Un appel d'outil ne devient une tâche MCP que lorsque toutes ces conditions sont réunies :
538 538
539* Le serveur prend en charge les tâches539* Le serveur prend en charge les tâches
540* Le serveur est un serveur HTTP, stdio ou connecteur claude.ai connecté avec la [révision de protocole 2026-07-28](#mcp-client-runtimes). Définir [`MCP_SDK_GENERATION=v1` ou `MCP_PROTOCOL_NEGOTIATION=legacy`](https://code.claude.com/docs/fr/env-vars) l'exclut540* Le serveur est un serveur HTTP, stdio ou un connecteur claude.ai connecté avec la [révision 2026-07-28 du protocole](#mcp-client-runtimes). Définir [`MCP_SDK_GENERATION=v1` ou `MCP_PROTOCOL_NEGOTIATION=legacy`](https://code.claude.com/docs/fr/env-vars) l'exclut
541* La session [récupère les feature flags](https://code.claude.com/docs/fr/env-vars.md#features-that-need-feature-flag-fetching), donc pas sur un fournisseur tiers tel qu'Amazon Bedrock, ni avec la télémétrie ou la récupération des flags désactivée541* La session [récupère les feature flags](https://code.claude.com/docs/fr/env-vars.md#features-that-need-feature-flag-fetching) : donc pas sur un fournisseur tiers comme Amazon Bedrock, ni avec la télémétrie ou la récupération des flags désactivée
542* Anthropic a activé les tâches MCP pour votre type de session. Sur v2.1.304 ou une version ultérieure, cela couvre les sessions CLI dans le terminal, les sessions [Agent SDK](https://code.claude.com/docs/fr/agent-sdk/overview.md) et les exécutions [GitHub Actions](https://code.claude.com/docs/fr/github-actions.md). Les autres surfaces, telles que l'[extension VS Code](https://code.claude.com/docs/fr/vs-code.md) et l'[application de bureau](https://code.claude.com/docs/fr/desktop.md), ne disposent pas des tâches MCP542* Anthropic a activé les tâches MCP pour votre type de session. Sur v2.1.304 ou une version ultérieure, cela couvre les sessions CLI dans le terminal, les sessions [Agent SDK](https://code.claude.com/docs/fr/agent-sdk/overview.md) et les exécutions [GitHub Actions](https://code.claude.com/docs/fr/github-actions.md). Les autres surfaces, comme l'[extension VS Code](https://code.claude.com/docs/fr/vs-code.md) et l'[application de bureau](https://code.claude.com/docs/fr/desktop.md), n'ont pas de tâches MCP
543* L'appel provient de la conversation principale, et non d'un [sous-agent](https://code.claude.com/docs/fr/sub-agents.md)543* L'appel provient de la conversation principale, et non d'un [sous-agent](https://code.claude.com/docs/fr/sub-agents.md)
544* Soit la session est interactive, soit une session [Agent SDK](https://code.claude.com/docs/fr/agent-sdk/overview.md) ou une exécution `claude -p` lisant `--input-format stream-json` a :544* Soit la session est interactive, soit une session [Agent SDK](https://code.claude.com/docs/fr/agent-sdk/overview.md) ou une exécution `claude -p` lisant `--input-format stream-json` a :
545 * [`CLAUDE_AUTO_BACKGROUND_TASKS`](https://code.claude.com/docs/fr/env-vars) à `1`545 * [`CLAUDE_AUTO_BACKGROUND_TASKS`](https://code.claude.com/docs/fr/env-vars) à `1`
546 * `CLAUDE_CODE_DISABLE_MCP_TASK_BACKGROUND` différent de `1`546 * `CLAUDE_CODE_DISABLE_MCP_TASK_BACKGROUND` différent de `1`
547 * `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` différent de `0`547 * `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` différent de `0`
548 548
549Tout autre appel est un appel d'outil ordinaire, et [Mise en arrière-plan automatique des appels d'outils longs](#automatic-backgrounding-of-long-tool-calls) indique lesquels passent en arrière-plan.549Tout autre appel est un appel d'outil ordinaire, et la section [Passage automatique en arrière-plan des appels d'outils longs](#automatic-backgrounding-of-long-tool-calls) indique lesquels passent en arrière-plan.
550 550
551Gardez l'entrée d'une session Agent SDK ou stream-json ouverte, car l'exécution [n'attend pas les tâches MCP](https://code.claude.com/docs/fr/headless.md#mcp-work-when-a-non-interactive-run-ends) une fois l'entrée fermée. Une exécution ponctuelle `claude -p "<prompt>"` ne bénéficie pas des tâches MCP.551Gardez ouverte l'entrée d'une session Agent SDK ou stream-json, car l'exécution [n'attend pas les tâches MCP](https://code.claude.com/docs/fr/headless.md#mcp-work-when-a-non-interactive-run-ends) une fois l'entrée fermée. Une exécution ponctuelle `claude -p "<prompt>"` ne bénéficie pas des tâches MCP.
552 552
553#### Messages de statut d'une tâche MCP553#### Messages de statut d'une tâche MCP
554 554
555Ces messages, dans l'entrée `/tasks` d'une tâche ou dans sa ligne de transcription finale, signifient que Claude Code ne peut pas joindre le serveur ou la tâche. Tant que l'un d'eux s'affiche dans `/tasks`, le travail est peut-être toujours en cours : Claude Code le laisse tranquille et continue de vérifier. Les messages `300s` et de configuration restent sur l'entrée même après le rétablissement du contact.555Ces messages, dans l'entrée `/tasks` d'une tâche ou dans sa ligne de clôture dans la transcription, signifient que Claude Code ne peut pas joindre le serveur ou la tâche. Tant que l'un d'eux s'affiche dans `/tasks`, le travail est peut-être toujours en cours : Claude Code le laisse tranquille et continue de vérifier. Les messages `300s` et de configuration restent sur l'entrée même après le rétablissement du contact.
556 556
557| Message | Ce qui se passe | Ce que vous pouvez faire |557| Message | Ce qui se passe | Ce que vous pouvez faire |
558| - | - | - |558| - | - | - |
559| `reconnecting…` | Le serveur n'a pas répondu depuis une reprise, ou les vérifications de statut restent sans réponse | S'il persiste, reconnectez depuis `/mcp` |559| `reconnecting…` | Le serveur n'a pas répondu depuis une reprise, ou les vérifications de statut ne reçoivent aucune réponse | Si le message persiste, reconnectez depuis `/mcp` |
560| `needs a sign-in to <server>` | Le serveur a refusé une vérification de statut | Connectez-vous depuis `/mcp` |560| `needs a sign-in to <server>` | Le serveur a refusé une vérification de statut | Connectez-vous depuis `/mcp` |
561| `status requests come back with errors; retrying…` | Le serveur, ou un proxy placé devant lui, répond aux vérifications de statut par des erreurs | Patientez pendant que Claude Code réessaie |561| `status requests come back with errors; retrying…` | Le serveur, ou un proxy placé devant lui, répond aux vérifications de statut par des erreurs | Patientez pendant que Claude Code réessaie |
562| `server '<name>' did not reconnect within 300s` | Aucune vérification n'a obtenu de réponse pendant cinq minutes, par exemple parce que la connexion est coupée ou le serveur désactivé | Reconnectez depuis `/mcp` |562| `server '<name>' did not reconnect within 300s` | Aucune vérification n'a reçu de réponse pendant cinq minutes, par exemple parce que la connexion est coupée ou le serveur désactivé | Reconnectez depuis `/mcp` |
563| `server '<name>' asked for a sign-in, and none was accepted within 300s` | Après cinq minutes, le serveur demande toujours une connexion | Connectez-vous depuis `/mcp` |563| `server '<name>' asked for a sign-in, and none was accepted within 300s` | Après cinq minutes, le serveur demande toujours une connexion | Connectez-vous depuis `/mcp` |
564| `status requests to server '<name>' came back with errors, and none succeeded in 300s` | Cinq minutes de réponses d'erreur | Vérifiez l'état de santé ou les logs du serveur lui-même |564| `status requests to server '<name>' came back with errors, and none succeeded in 300s` | Cinq minutes de réponses en erreur | Vérifiez l'état de santé ou les logs du serveur lui-même |
565| `server '<name>' is not configured in this session; the task may still be running on it` | La session n'a aucun serveur de ce nom, par exemple parce qu'il a été supprimé, renommé ou omis de `--mcp-config`, ou qu'un connecteur claude.ai est encore en cours de chargement | Restaurez le serveur sous le même nom, puis reprenez à nouveau la session. Pour un connecteur en cours de chargement, rien : Claude Code suit la tâche dès qu'il apparaît |565| `server '<name>' is not configured in this session; the task may still be running on it` | La session n'a aucun serveur de ce nom, par exemple parce qu'il a été supprimé, renommé ou omis de `--mcp-config`, ou qu'un connecteur claude.ai est encore en cours de chargement | Restaurez le serveur sous le même nom, puis reprenez à nouveau la session. Pour un connecteur en cours de chargement, rien : Claude Code suit la tâche dès qu'il apparaît |
566| Un message commençant par `server '<name>' was reconfigured to a different transport since this task was created` | Un serveur de ce nom existe, mais ses paramètres de connexion ont changé depuis le démarrage de la tâche, tels que son URL, sa commande, ses args, son env, ses en-têtes ou son délai d'expiration | Restaurez les paramètres précédents, puis reprenez à nouveau la session |566| Un message commençant par `server '<name>' was reconfigured to a different transport since this task was created` | Un serveur de ce nom existe, avec des paramètres de connexion modifiés depuis le démarrage de la tâche, comme son URL, sa commande, ses args, son env, ses en-têtes ou son timeout | Restaurez les paramètres précédents, puis reprenez à nouveau la session |
567| `the server rejected this task's id; asking again…` | Le serveur indique qu'il ne connaît pas l'ID de la tâche. Claude Code continue de demander pendant jusqu'à cinq minutes | Patientez : le message disparaît si le serveur reconnaît à nouveau l'ID, sinon la ligne `outcome unknown.` suit |567| `the server rejected this task's id; asking again…` | Le serveur indique qu'il ne connaît pas l'ID de la tâche. Claude Code continue de le demander pendant jusqu'à cinq minutes | Patientez : le message disparaît si le serveur reconnaît à nouveau l'ID, sinon la ligne `outcome unknown.` suit |
568| Une ligne de transcription se terminant par `outcome unknown.`, sous une forme `expired on the server: outcome unknown.` | Le serveur a rejeté l'ID ou a refusé avec une autre erreur permanente, et Claude Code a cessé de suivre la tâche | Un second appel peut répéter le travail. Avant d'appeler à nouveau l'outil, vérifiez auprès du serveur ce qui a été fait, par exemple en demandant à Claude d'utiliser les autres outils du serveur |568| Une ligne de transcription se terminant par `outcome unknown.`, sous une forme `expired on the server: outcome unknown.` | Le serveur a rejeté l'ID ou refusé avec une autre erreur permanente, et Claude Code a cessé de suivre la tâche | Un second appel peut répéter le travail. Avant de rappeler l'outil, déterminez auprès du serveur ce qui a été fait, par exemple en demandant à Claude d'utiliser les autres outils du serveur |
569 569
570#### Limites de temps des tâches MCP570#### Limites de temps des tâches MCP
571 571
572Par défaut, une tâche en arrière-plan n'a aucune limite de temps imposée par Claude Code. Les [limites de temps des appels d'outils](#time-limits-on-mcp-tool-calls), y compris la limite en temps réel et le délai d'inactivité, s'appliquent jusqu'à ce que le serveur réponde à l'appel avec la tâche. Si vous [faites attendre Claude](#make-claude-wait-for-the-result-of-an-mcp-task), elles s'appliquent pendant toute la durée de la tâche. Les vérifications de statut ayant obtenu une réponse comptent comme une activité pour le délai d'inactivité.572Par défaut, une tâche en arrière-plan n'a aucune limite de temps imposée par Claude Code. Les [limites de temps des appels d'outils](#time-limits-on-mcp-tool-calls), y compris la limite en temps réel et le délai d'inactivité, s'appliquent jusqu'à ce que le serveur réponde à l'appel avec la tâche. Si vous [faites attendre Claude](#make-claude-wait-for-the-result-of-an-mcp-task), elles s'appliquent pendant toute la durée de la tâche. Les vérifications de statut ayant reçu une réponse comptent comme une activité pour le délai d'inactivité.
573 573
574#### Faire attendre Claude le résultat d'une tâche MCP574#### Faire attendre Claude le résultat d'une tâche MCP
575 575
576Pour que Claude attende le résultat d'une tâche dans une session interactive, définissez l'une de deux variables d'environnement, par exemple dans le bloc `env` de [`settings.json`](https://code.claude.com/docs/fr/settings) :576Pour que Claude attende le résultat d'une tâche dans une session interactive, définissez l'une de deux variables d'environnement, par exemple dans le bloc `env` de [`settings.json`](https://code.claude.com/docs/fr/settings) :
577 577
578* **[`CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS`](https://code.claude.com/docs/fr/env-vars) défini sur `0`** : Claude attend chaque appel d'outil MCP jusqu'à sa fin578* **[`CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS`](https://code.claude.com/docs/fr/env-vars) défini sur `0`** : Claude attend chaque appel d'outil MCP jusqu'à la fin de l'appel
579* **[`CLAUDE_CODE_DISABLE_MCP_TASK_BACKGROUND`](https://code.claude.com/docs/fr/env-vars) défini sur `1`** : Claude attend le résultat d'une tâche. Tant que la [mise en arrière-plan automatique](#automatic-backgrounding-of-long-tool-calls) est activée, elle déplace l'appel après deux minutes par défaut, de sorte que les tâches courtes se terminent sur place et que les longues ne vous bloquent pas. L'appel déplacé est un appel en arrière-plan ordinaire plutôt qu'une tâche MCP. Il ne survit pas à la fermeture de la session579* **[`CLAUDE_CODE_DISABLE_MCP_TASK_BACKGROUND`](https://code.claude.com/docs/fr/env-vars) défini sur `1`** : Claude attend le résultat d'une tâche. Tant que le [passage automatique en arrière-plan](#automatic-backgrounding-of-long-tool-calls) est activé, il déplace l'appel au bout de deux minutes par défaut : les tâches courtes se terminent donc sur place et les longues ne vous bloquent pas. L'appel déplacé est un appel en arrière-plan ordinaire plutôt qu'une tâche MCP. Il ne survit pas à la fermeture de la session
580 580
581Pendant que Claude attend, appuyer sur `Esc` ou atteindre la [limite en temps réel ou le délai d'inactivité](#time-limits-on-mcp-tasks) met fin à l'appel, et Claude Code demande au serveur d'annuler la tâche.581Pendant que Claude attend, appuyer sur `Esc` ou atteindre la [limite en temps réel ou le délai d'inactivité](#time-limits-on-mcp-tasks) met fin à l'appel, et Claude Code demande au serveur d'annuler la tâche.
582 582
592 592
593### Tâches MCP pour les auteurs de serveurs593### Tâches MCP pour les auteurs de serveurs
594 594
595Si vous développez un serveur MCP, vous pouvez répondre à un `tools/call` de longue durée avec une tâche. L'[extension MCP tasks](https://modelcontextprotocol.io/extensions/tasks/overview) définit les messages que vous envoyez. Sur une connexion utilisant la [révision de protocole 2026-07-28](#mcp-client-runtimes), chaque requête transporte les capacités client de Claude Code à `params._meta["io.modelcontextprotocol/clientCapabilities"]`, avec `"io.modelcontextprotocol/tasks": {}` sous `extensions`. Une requête `tools/call` qui [ne peut pas devenir une tâche](#requirements-for-mcp-tasks) omet cette extension.595Si vous développez un serveur MCP, vous pouvez répondre à un `tools/call` de longue durée par une tâche. L'[extension MCP tasks](https://modelcontextprotocol.io/extensions/tasks/overview) définit les messages que vous envoyez. Sur une connexion utilisant la [révision 2026-07-28 du protocole](#mcp-client-runtimes), chaque requête transporte les capacités client de Claude Code dans `params._meta["io.modelcontextprotocol/clientCapabilities"]`, avec `"io.modelcontextprotocol/tasks": {}` sous `extensions`. Une requête `tools/call` qui [ne peut pas devenir une tâche](#requirements-for-mcp-tasks) omet cette extension.
596 596
597#### Répondre à l'appel avec une tâche597#### Répondre à l'appel par une tâche
598 598
599Ne répondez avec une tâche que lorsque la requête transporte l'extension, sinon l'appel échoue avec l'erreur d'outil `Unsupported result type 'task' for tools/call`. L'appel échoue de la même manière si votre réponse n'a pas de `taskId` ou pas de `status` valide. L'objet tâche est le `result` JSON-RPC de votre réponse `tools/call`, ne nécessite pas de tableau `content`, et inclut ici les champs facultatifs `statusMessage` et `pollIntervalMs` :599Ne répondez par une tâche que lorsque la requête transporte l'extension, sinon l'appel échoue avec l'erreur d'outil `Unsupported result type 'task' for tools/call`. L'appel échoue de la même manière si votre réponse n'a pas de `taskId` ou pas de `status` valide. L'objet tâche est le `result` JSON-RPC de votre réponse `tools/call`, ne nécessite pas de tableau `content`, et inclut ici les champs facultatifs `statusMessage` et `pollIntervalMs` :
600 600
601```json theme={null}601```json theme={null}
602{602{
614| Champ | Comment Claude Code le traite |614| Champ | Comment Claude Code le traite |
615| - | - |615| - | - |
616| `resultType` | Définissez-le sur `"task"` pour marquer la réponse comme une tâche. Sans lui, Claude Code lit la réponse comme un résultat ordinaire |616| `resultType` | Définissez-le sur `"task"` pour marquer la réponse comme une tâche. Sans lui, Claude Code lit la réponse comme un résultat ordinaire |
617| `taskId` | Obligatoire. Au maximum 128 caractères ASCII imprimables sans espaces, sinon Claude reçoit une erreur d'outil commençant par `MCP server "<name>" returned a malformed task handle for tool "<tool>"`. Veillez à ce que l'ID puisse obtenir une réponse d'une connexion à l'autre, car après une reprise, Claude Code l'interroge sur une nouvelle connexion |617| `taskId` | Obligatoire. Au plus 128 caractères ASCII imprimables sans espaces, sinon Claude reçoit une erreur d'outil commençant par `MCP server "<name>" returned a malformed task handle for tool "<tool>"`. Veillez à ce que l'ID reste utilisable d'une connexion à l'autre, car après une reprise, Claude Code l'interroge sur une nouvelle connexion |
618| `status` | Obligatoire. L'une des valeurs `working`, `input_required`, `completed`, `failed` ou `cancelled`. Une autre valeur provoque l'erreur `Unsupported result type` |618| `status` | Obligatoire. L'une des valeurs `working`, `input_required`, `completed`, `failed` ou `cancelled`. Toute autre valeur provoque l'erreur `Unsupported result type` |
619| `createdAt`, `lastUpdatedAt`, `ttlMs` | Exigés par l'extension tasks, et `ttlMs` peut être `null`. Claude Code n'abandonne pas une tâche parce que son `ttlMs` est dépassé |619| `createdAt`, `lastUpdatedAt`, `ttlMs` | Requis par l'extension tasks, et `ttlMs` peut être `null`. Claude Code n'abandonne pas une tâche parce que son `ttlMs` est dépassé |
620| `pollIntervalMs` | Facultatif. Millisecondes entre les requêtes `tasks/get`, bornées entre 250 et 30000. Claude Code utilise 2000 lorsque le champ est absent ou `null`, et relit la valeur dans chaque réponse `tasks/get` |620| `pollIntervalMs` | Facultatif. Millisecondes entre les requêtes `tasks/get`, limitées entre 250 et 30000. Claude Code utilise 2000 lorsque le champ est absent ou `null`, et relit la valeur dans chaque réponse `tasks/get` |
621| `statusMessage` | Facultatif. `/tasks` affiche la valeur de votre dernière réponse `tasks/get`, et non de cette première réponse, et une réponse qui omet le champ l'efface. Un [message de statut de Claude Code](#status-messages-on-an-mcp-task) peut le remplacer |621| `statusMessage` | Facultatif. `/tasks` affiche la valeur de votre dernière réponse `tasks/get`, et non celle de cette première réponse, et une réponse qui omet le champ l'efface. Un [message de statut de Claude Code](#status-messages-on-an-mcp-task) peut prendre sa place |
622 622
623Claude Code accepte une réponse de tâche qui omet `createdAt`, `lastUpdatedAt` ou `ttlMs`, ou qui définit `pollIntervalMs` sur `null`. Avant la v2.1.317, l'appel échouait plutôt avec l'erreur `Unsupported result type`. Pour fonctionner aussi avec ces versions, envoyez les trois champs exigés par l'extension tasks, et envoyez `pollIntervalMs` sous forme de nombre ou pas du tout.623Claude Code accepte une réponse de tâche qui omet `createdAt`, `lastUpdatedAt` ou `ttlMs`, ou qui définit `pollIntervalMs` sur `null`. Avant la v2.1.317, l'appel échouait plutôt avec l'erreur `Unsupported result type`. Pour fonctionner également avec ces versions, envoyez les trois champs requis par l'extension tasks, et envoyez `pollIntervalMs` sous forme de nombre ou pas du tout.
624 624
625Sur un serveur HTTP ou connecteur claude.ai, la réponse de tâche doit commencer dans le délai du [minuteur par requête](#time-limits-on-mcp-tool-calls) ; acceptez donc le travail et répondez d'abord, puis effectuez le travail.625Sur un serveur HTTP ou un connecteur claude.ai, la réponse de tâche doit commencer dans les limites du [minuteur par requête](#time-limits-on-mcp-tool-calls) : acceptez donc le travail et répondez d'abord, puis effectuez le travail.
626 626
627#### Signaler le statut, les résultats et les questions627#### Signaler le statut, les résultats et les questions
628 628
629Juste après la réponse de tâche, Claude Code envoie `tasks/get` avec `{ "taskId": ... }`, puis le répète une fois par intervalle d'interrogation. L'extension tasks exige que votre réponse contienne `"resultType": "complete"` ainsi que `taskId`, `status`, `createdAt`, `lastUpdatedAt` et `ttlMs`. `ttlMs` peut être `null`, et `statusMessage` et `pollIntervalMs` sont facultatifs. Cet exemple signale que le build est terminé :629Juste après la réponse de tâche, Claude Code envoie `tasks/get` avec `{ "taskId": ... }`, puis la répète une fois par intervalle d'interrogation. L'extension tasks exige que votre réponse contienne `"resultType": "complete"` ainsi que `taskId`, `status`, `createdAt`, `lastUpdatedAt` et `ttlMs`. `ttlMs` peut être `null`, et `statusMessage` et `pollIntervalMs` sont facultatifs. Cet exemple signale que le build est terminé :
630 630
631```json theme={null}631```json theme={null}
632{632{
645| Statut, méthode ou réponse | Comment Claude Code le traite |645| Statut, méthode ou réponse | Comment Claude Code le traite |
646| - | - |646| - | - |
647| `working` | Continue d'interroger |647| `working` | Continue d'interroger |
648| `completed` | Transmet à Claude le résultat `tools/call` normal contenu dans l'objet `result` de niveau supérieur. Un `isError: true` dans celui-ci est signalé comme un échec |648| `completed` | Transmet à Claude le résultat `tools/call` normal contenu dans l'objet `result` de premier niveau. Un `isError: true` qu'il contient est signalé comme un échec |
649| `failed` | Transmet à Claude le `message` de l'objet `error` de niveau supérieur `{ code, message, data }`, que l'extension tasks exige pour une tâche en échec. Sans ce `message`, Claude reçoit plutôt `statusMessage`, ou à défaut `Task failed` |649| `failed` | Transmet à Claude le `message` de l'objet `error` de premier niveau `{ code, message, data }`, que l'extension tasks exige pour une tâche en échec. Sans ce `message`, Claude reçoit `statusMessage` à la place, ou à défaut `Task failed` |
650| `cancelled` | Transmet à Claude `statusMessage`, ou à défaut `Task was cancelled by the server` |650| `cancelled` | Transmet à Claude `statusMessage`, ou à défaut `Task was cancelled by the server` |
651| `input_required` | Lit `inputRequests`, un objet qui associe une clé de votre choix à `{ method, params }`. Claude Code répond une fois à chaque clé via `tasks/update` avec `{ taskId, inputResponses }`, où `inputResponses` associe la même clé au résultat de cette requête. Les clés au-delà de 16 par tâche sont ignorées |651| `input_required` | Lit `inputRequests`, un objet qui associe une clé de votre choix à `{ method, params }`. Claude Code répond une fois à chaque clé via `tasks/update` avec `{ taskId, inputResponses }`, où `inputResponses` associe la même clé au résultat de cette requête. Les clés au-delà de 16 par tâche sont ignorées |
652| Méthodes dans `inputRequests` | `elicitation/create` n'est servie que dans les sessions de terminal interactives, et `roots/list` partout. Lorsque Claude Code ne peut pas servir une requête, il demande au serveur d'annuler la tâche |652| Méthodes dans `inputRequests` | `elicitation/create` n'est servie que dans les sessions de terminal interactives, et `roots/list` partout. Lorsque Claude Code ne peut pas servir une requête, il demande au serveur d'annuler la tâche |
653| Une autre valeur de `status` | Claude Code demande au serveur d'annuler la tâche et la signale à Claude comme en échec |653| Une autre valeur de `status` | Claude Code demande au serveur d'annuler la tâche et la signale à Claude comme en échec |
654| Erreur JSON-RPC `-32602` | Lue comme un ID de tâche inconnu. Pour une tâche en arrière-plan, Claude Code continue de demander pendant jusqu'à cinq minutes, puis signale le résultat à Claude comme inconnu |654| Erreur JSON-RPC `-32602` | Interprétée comme un ID de tâche inconnu. Pour une tâche en arrière-plan, Claude Code continue de demander pendant jusqu'à cinq minutes, puis signale à Claude que le résultat est inconnu |
655| `tasks/cancel` | Envoyée, par exemple, lorsque Claude ou la personne arrête la tâche alors que le serveur est connecté. Non envoyée à la fermeture |655| `tasks/cancel` | Envoyée, par exemple, lorsque Claude ou l'utilisateur arrête la tâche pendant que le serveur est connecté. Non envoyée à la fermeture |
656| `tasks/result`, `tasks/list`, `notifications/tasks` | Non utilisées ; placez donc le résultat dans vos réponses `tasks/get` |656| `tasks/result`, `tasks/list`, `notifications/tasks` | Non utilisées : placez donc le résultat dans vos réponses `tasks/get` |
657 657
658### Serveurs MCP fournis par les plugins658### Serveurs MCP fournis par les plugins
659 659
660[Les plugins](https://code.claude.com/docs/fr/plugins/overview.md) peuvent regrouper des serveurs MCP qui fournissent des outils et des intégrations lorsque vous activez le plugin.660Les [plugins](https://code.claude.com/docs/fr/plugins/overview.md) peuvent intégrer des serveurs MCP qui fournissent des outils et des intégrations lorsque vous activez le plugin.
661 661
662**Comment fonctionnent les serveurs MCP des plugins** :662**Fonctionnement des serveurs MCP de plugin** :
663 663
664* Les plugins définissent les serveurs MCP dans `.mcp.json` à la racine du plugin ou en ligne dans `plugin.json`664* Les plugins définissent des serveurs MCP dans `.mcp.json` à la racine du plugin ou directement dans `plugin.json`
665* Lorsque vous activez un plugin, Claude Code démarre automatiquement ses serveurs MCP665* Lorsque vous activez un plugin, Claude Code démarre automatiquement ses serveurs MCP
666* Claude Code propose les outils MCP des plugins aux côtés des outils MCP configurés manuellement666* Claude Code propose les outils MCP des plugins aux côtés des outils MCP configurés manuellement
667* Vous ajoutez et supprimez les serveurs de plugins en installant ou en désinstallant le plugin, pas avec les commandes `/mcp`. Vous pouvez toujours [désactiver un serveur de plugin installé](#disable-a-server-without-removing-it) dans `/mcp`, ce qui empêche Claude Code de s'y connecter sans supprimer le plugin667* Vous ajoutez et supprimez les serveurs de plugin en installant ou en désinstallant le plugin, et non avec les commandes `/mcp`. Vous pouvez néanmoins [désactiver un serveur de plugin installé](#disable-a-server-without-removing-it) dans `/mcp`, ce qui empêche Claude Code de s'y connecter sans supprimer le plugin
668 668
669**Exemple de configuration MCP de plugin** :669**Exemple de configuration MCP de plugin** :
670 670
684}684}
685```685```
686 686
687Ou en ligne dans `plugin.json` :687Ou directement dans `plugin.json` :
688 688
689```json theme={null}689```json theme={null}
690{690{
701**Fonctionnalités MCP des plugins** :701**Fonctionnalités MCP des plugins** :
702 702
703* **Cycle de vie automatique** : les serveurs se connectent et se déconnectent aux moments suivants :703* **Cycle de vie automatique** : les serveurs se connectent et se déconnectent aux moments suivants :
704 * Au démarrage de la session, Claude Code connecte automatiquement les serveurs des plugins activés. Dans `/mcp`, un serveur de plugin distant (HTTP ou SSE) que vous avez utilisé auparavant peut afficher le [statut `cached`](#server-status-detail) à la place ; Claude Code le connecte lorsque Claude appelle pour la première fois l'un de ses outils. Lorsque la connexion d'un serveur de plugin stdio a échoué moins de 15 minutes auparavant, Claude Code [ignore la connexion](https://code.claude.com/docs/fr/errors.md#skipping-connection-recent-failure-cached)704 * Au démarrage de la session, Claude Code connecte automatiquement les serveurs des plugins activés. Dans `/mcp`, un serveur de plugin distant (HTTP ou SSE) que vous avez déjà utilisé peut plutôt afficher le [statut `cached`](#server-status-detail) ; Claude Code le connecte lorsque Claude appelle pour la première fois l'un de ses outils. Lorsque la connexion d'un serveur de plugin stdio a échoué moins de 15 minutes auparavant, Claude Code [ignore la connexion](https://code.claude.com/docs/fr/errors.md#skipping-connection-recent-failure-cached)
705 * Si vous activez ou désactivez un plugin pendant une session, Claude Code connecte ou déconnecte ses serveurs MCP lorsque la modification s'applique. [Appliquer les modifications de plugin sans redémarrer](https://code.claude.com/docs/fr/plugins/cli-reference.md#reload-plugins) décrit quand c'est le cas. Dans une session sans terminal interactif, `/reload-plugins` ne connecte ni ne déconnecte les serveurs MCP des plugins ; ces modifications prennent effet dans votre session suivante705 * Si vous activez ou désactivez un plugin pendant une session, Claude Code connecte ou déconnecte ses serveurs MCP lorsque la modification s'applique. La section [Appliquer les modifications de plugin sans redémarrer](https://code.claude.com/docs/fr/plugins/cli-reference.md#reload-plugins) décrit à quel moment cela se produit. Dans une session sans terminal interactif, `/reload-plugins` ne connecte ni ne déconnecte les serveurs MCP de plugin ; ces modifications prennent effet lors de votre prochaine session
706 * Lorsque vous rechargez, Claude Code conserve les connexions actives des serveurs de plugins dont la configuration est inchangée, et fait de même lorsque vous [remplacez la liste des serveurs MCP de la session](https://code.claude.com/docs/fr/agent-sdk/typescript.md#mcpsetserversresult) à partir de l'Agent SDK sans les nommer706 * Lors d'un rechargement, Claude Code conserve les connexions actives des serveurs de plugin dont la configuration n'a pas changé, et fait de même lorsque vous [remplacez la liste des serveurs MCP de la session](https://code.claude.com/docs/fr/agent-sdk/typescript.md#mcpsetserversresult) depuis l'Agent SDK sans les nommer
707 * Lorsque vous [déplacez la session avec `/cd`](https://code.claude.com/docs/fr/permissions#move-the-session-to-another-directory) sur v2.1.246 ou ultérieur, Claude Code connecte les serveurs des plugins que les paramètres du nouveau répertoire activent et déconnecte les serveurs des plugins qui ne sont plus activés, afin que vous n'ayez pas besoin d'exécuter `/reload-plugins` après le déplacement707 * Lorsque vous [déplacez la session avec `/cd`](https://code.claude.com/docs/fr/permissions#move-the-session-to-another-directory) en v2.1.246 ou ultérieure, Claude Code connecte les serveurs des plugins activés par les paramètres du nouveau répertoire et déconnecte les serveurs des plugins qui ne sont plus activés, vous n'avez donc pas besoin d'exécuter `/reload-plugins` après le déplacement
708 * Dans les [sessions cloud](https://code.claude.com/docs/fr/claude-code-on-the-web.md), un appel MCP à un serveur de plugin qui n'est pas encore connecté, par exemple juste après le réveil d'une session inactive, démarre le serveur à la demande et attend qu'il se connecte708 * Dans les [sessions cloud](https://code.claude.com/docs/fr/claude-code-on-the-web.md), un appel MCP vers un serveur de plugin qui n'est pas encore connecté, par exemple juste après le réveil d'une session inactive, démarre le serveur à la demande et attend qu'il se connecte
709* **Espaces réservés de chemin** : `${CLAUDE_PLUGIN_ROOT}` se résout au répertoire d'installation du plugin, `${CLAUDE_PLUGIN_DATA}` à son répertoire d'[état persistant](https://code.claude.com/docs/fr/plugins/components.md#path-variables-and-persistent-data), et `${CLAUDE_PROJECT_DIR}` à la racine de projet stable. La substitution s'applique à :709* **Espaces réservés de chemin** : `${CLAUDE_PLUGIN_ROOT}` est résolu vers le répertoire d'installation du plugin, `${CLAUDE_PLUGIN_DATA}` vers son répertoire d'[état persistant](https://code.claude.com/docs/fr/plugins/components.md#path-variables-and-persistent-data), et `${CLAUDE_PROJECT_DIR}` vers la racine stable du projet. La substitution s'applique à :
710 * serveurs `stdio` : `command`, `args`, `env`710 * Serveurs `stdio` : `command`, `args`, `env`
711 * serveurs `http`, `sse`, et `ws` : `url`, `headers`, et `headersHelper`711 * Serveurs `http`, `sse` et `ws` : `url`, `headers` et `headersHelper`
712* **Accès à l'environnement utilisateur** : accès aux mêmes variables d'environnement que les serveurs configurés manuellement712* **Accès à l'environnement utilisateur** : accès aux mêmes variables d'environnement que les serveurs configurés manuellement
713* **Types de transport multiples** : support des transports stdio, SSE, HTTP, et WebSocket, bien que le support de transport puisse varier selon le serveur713* **Plusieurs types de transport** : prise en charge des transports stdio, SSE, HTTP et WebSocket, bien que la prise en charge des transports puisse varier selon le serveur
714 714
715Les serveurs de plugins apparaissent dans `/mcp` avec des indicateurs montrant qu'ils proviennent de plugins.715Les serveurs de plugin apparaissent dans `/mcp` avec des indicateurs signalant qu'ils proviennent de plugins.
716 716
717`claude mcp get` masque les valeurs configurées pour le serveur stdio ou WebSocket d'un plugin, car elles peuvent contenir des identifiants :717`claude mcp get` masque les valeurs configurées pour le serveur stdio ou WebSocket d'un plugin, car elles peuvent contenir des identifiants :
718 718
719* **Serveur stdio** : il imprime `Command: stdio`, une ligne `Args:` vide, et chaque variable d'environnement sous la forme `NAME=[REDACTED]`719* **Serveur stdio** : la commande affiche `Command: stdio`, une ligne `Args:` vide, et chaque variable d'environnement sous la forme `NAME=[REDACTED]`
720* **Serveur WebSocket** : il imprime `URL: ws` et chaque en-tête sous la forme `<name>: [REDACTED]`, et `claude mcp list` affiche `ws` à la place de l'URL720* **Serveur WebSocket** : la commande affiche `URL: ws` et chaque en-tête sous la forme `<name>: [REDACTED]`, et `claude mcp list` affiche `ws` à la place de l'URL
721 721
722Pour voir ce que le plugin a configuré, [trouvez le plugin sur le disque](https://code.claude.com/docs/fr/plugins/loading.md#find-plugins-on-disk) et lisez son `.mcp.json` ou son `plugin.json`.722Pour voir ce que le plugin a configuré, [trouvez le plugin sur le disque](https://code.claude.com/docs/fr/plugins/loading.md#find-plugins-on-disk) et lisez son fichier `.mcp.json` ou `plugin.json`.
723 723
724**Noms d'outils MCP des plugins** :724**Noms des outils MCP de plugin** :
725 725
726Les outils d'un serveur MCP regroupé dans un plugin incluent à la fois le nom du plugin et la clé du serveur dans leur nom appelable. La forme complète est `mcp__plugin_<plugin-name>_<server-name>__<tool-name>`, où tout caractère en dehors de `A-Z`, `a-z`, `0-9`, `_`, et `-` est remplacé par `_`. Pour le serveur `database-tools` regroupé dans un plugin nommé `my-plugin`, un outil `query` est appelable sous la forme :726Les outils d'un serveur MCP intégré à un plugin incluent à la fois le nom du plugin et la clé du serveur dans leur nom appelable. La forme complète est `mcp__plugin_<plugin-name>_<server-name>__<tool-name>`, où tout caractère en dehors de `A-Z`, `a-z`, `0-9`, `_` et `-` est remplacé par `_`. Pour le serveur `database-tools` intégré à un plugin nommé `my-plugin`, un outil `query` peut être appelé ainsi :
727 727
728```728```
729mcp__plugin_my-plugin_database-tools__query729mcp__plugin_my-plugin_database-tools__query
730```730```
731 731
732Utilisez ce nom complet lorsque vous référencez l'outil dans les [règles de permission](https://code.claude.com/docs/fr/permissions.md), la liste `allowed-tools` d'un skill, le [champ `tools` d'un sous-agent](https://code.claude.com/docs/fr/sub-agents#available-tools), ou un [matcher de hook](https://code.claude.com/docs/fr/hooks.md#match-mcp-tools). Un matcher de hook écrit avec la clé de serveur seule, telle que `mcp__database-tools__.*`, ne se déclenche jamais pour un serveur regroupé dans un plugin.732Utilisez ce nom complet pour référencer l'outil dans les [règles de permission](https://code.claude.com/docs/fr/permissions.md), la liste `allowed-tools` d'un skill, le [champ `tools` d'un sous-agent](https://code.claude.com/docs/fr/sub-agents#available-tools) ou un [matcher de hook](https://code.claude.com/docs/fr/hooks.md#match-mcp-tools). Un matcher de hook écrit avec la seule clé du serveur, comme `mcp__database-tools__.*`, ne se déclenche jamais pour un serveur intégré à un plugin.
733 733
734Le serveur lui-même s'enregistre sous le nom préfixé `plugin:<plugin-name>:<server-name>`, tel que `plugin:my-plugin:database-tools`. Utilisez ce nom là où un nom de serveur configuré est attendu, tel que le [champ `server` d'un hook `mcp_tool`](https://code.claude.com/docs/fr/hooks#mcp-tool-hook-fields).734Le serveur lui-même est enregistré sous le nom à portée `plugin:<plugin-name>:<server-name>`, par exemple `plugin:my-plugin:database-tools`. Utilisez ce nom là où un nom de serveur configuré est attendu, comme dans le [champ `server` d'un hook `mcp_tool`](https://code.claude.com/docs/fr/hooks#mcp-tool-hook-fields).
735 735
736Voir la [référence des composants de plugin](https://code.claude.com/docs/fr/plugins/components.md#mcp-servers) pour les détails sur le regroupement de serveurs MCP avec les plugins.736Consultez la [référence des composants de plugin](https://code.claude.com/docs/fr/plugins/components.md#mcp-servers) pour plus de détails sur l'intégration de serveurs MCP dans les plugins.
737 737
738## Portées d'installation MCP738## Portées d'installation MCP
739 739
1800* **Claude Opus 4.5, Sonnet 4.5, Haiku 4.5, et ultérieur** : la recherche d'outils est activée par défaut, comme sur l'API Anthropic.1800* **Claude Opus 4.5, Sonnet 4.5, Haiku 4.5, et ultérieur** : la recherche d'outils est activée par défaut, comme sur l'API Anthropic.
1801* **Modèles Agent Platform antérieurs** : Claude Code charge tous les outils MCP en amont, car leurs piles de service rejettent l'en-tête bêta requis. `ENABLE_TOOL_SEARCH=true` ne contourne pas cela.1801* **Modèles Agent Platform antérieurs** : Claude Code charge tous les outils MCP en amont, car leurs piles de service rejettent l'en-tête bêta requis. `ENABLE_TOOL_SEARCH=true` ne contourne pas cela.
1802 1802
1803Avant v2.1.221, Claude Code désactivait la recherche d'outils pour tous les modèles sur la plateforme Agent de Google Cloud sauf si vous définissiez `ENABLE_TOOL_SEARCH=true`.
1804
1805Contrôlez le comportement de la recherche d'outils avec la variable d'environnement `ENABLE_TOOL_SEARCH` :1803Contrôlez le comportement de la recherche d'outils avec la variable d'environnement `ENABLE_TOOL_SEARCH` :
1806 1804
1807| Valeur | Comportement |1805| Valeur | Comportement |