Passer au contenu principal
Claude Code peut se connecter à des centaines d’outils externes et de sources de données via le Model Context Protocol (MCP), une norme open source pour les intégrations IA-outils. Les serveurs MCP donnent à Claude Code accès à vos outils, bases de données et API.

Ce que vous pouvez faire avec MCP

Avec les serveurs MCP connectés, vous pouvez demander à Claude Code de :
  • Implémenter des fonctionnalités à partir de suivi de problèmes : « Ajouter la fonctionnalité décrite dans le problème JIRA ENG-4521 et créer une PR sur GitHub. »
  • Analyser les données de surveillance : « Vérifier Sentry et Statsig pour vérifier l’utilisation de la fonctionnalité décrite dans ENG-4521. »
  • Interroger les bases de données : « Trouver les e-mails de 10 utilisateurs aléatoires qui ont utilisé la fonctionnalité ENG-4521, en fonction de notre base de données PostgreSQL. »
  • Intégrer les conceptions : « Mettre à jour notre modèle d’e-mail standard en fonction des nouvelles conceptions Figma qui ont été publiées sur Slack »
  • Automatiser les flux de travail : « Créer des brouillons Gmail invitant ces 10 utilisateurs à une session de rétroaction sur la nouvelle fonctionnalité. »

Serveurs MCP populaires

Voici quelques serveurs MCP couramment utilisés que vous pouvez connecter à Claude Code :
Utilisez les serveurs MCP tiers à vos propres risques - Anthropic n’a pas vérifié l’exactitude ou la sécurité de tous ces serveurs. Assurez-vous que vous faites confiance aux serveurs MCP que vous installez. Soyez particulièrement prudent lors de l’utilisation de serveurs MCP qui pourraient récupérer du contenu non approuvé, car ceux-ci peuvent vous exposer à un risque d’injection de prompt.
Besoin d’une intégration spécifique ? Trouvez des centaines d’autres serveurs MCP sur GitHub, ou créez le vôtre en utilisant le MCP SDK.

Installation des serveurs MCP

Les serveurs MCP peuvent être configurés de trois façons différentes selon vos besoins :

Option 1 : Ajouter un serveur HTTP distant

Les serveurs HTTP sont l’option recommandée pour se connecter aux serveurs MCP distants. C’est le transport le plus largement supporté pour les services basés sur le cloud.
# Syntaxe de base
claude mcp add --transport http <name> <url>

# Exemple réel : Se connecter à Notion
claude mcp add --transport http notion https://mcp.notion.com/mcp

# Exemple avec jeton Bearer
claude mcp add --transport http secure-api https://api.example.com/mcp \
  --header "Authorization: Bearer your-token"

Option 2 : Ajouter un serveur SSE distant

Le transport SSE (Server-Sent Events) est déprécié. Utilisez plutôt les serveurs HTTP, si disponibles.
# Syntaxe de base
claude mcp add --transport sse <name> <url>

# Exemple réel : Se connecter à Asana
claude mcp add --transport sse asana https://mcp.asana.com/sse

# Exemple avec en-tête d'authentification
claude mcp add --transport sse private-api https://api.company.com/sse \
  --header "X-API-Key: your-key-here"

Option 3 : Ajouter un serveur stdio local

Les 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.
# Syntaxe de base
claude mcp add [options] <name> -- <command> [args...]

# Exemple réel : Ajouter un serveur Airtable
claude mcp add --transport stdio --env AIRTABLE_API_KEY=YOUR_KEY airtable \
  -- npx -y airtable-mcp-server
Important : Ordre des optionsToutes les options (--transport, --env, --scope, --header) doivent venir avant le nom du serveur. Le -- (double tiret) sépare ensuite le nom du serveur de la commande et des arguments qui sont passés au serveur MCP.Par exemple :
  • claude mcp add --transport stdio myserver -- npx server → exécute npx server
  • claude mcp add --transport stdio --env KEY=value myserver -- python server.py --port 8080 → exécute python server.py --port 8080 avec KEY=value dans l’environnement
Cela évite les conflits entre les drapeaux de Claude et les drapeaux du serveur.

Gestion de vos serveurs

Une fois configurés, vous pouvez gérer vos serveurs MCP avec ces commandes :
# Lister tous les serveurs configurés
claude mcp list

# Obtenir les détails d'un serveur spécifique
claude mcp get github

# Supprimer un serveur
claude mcp remove github

# (dans Claude Code) Vérifier l'état du serveur
/mcp

Mises à jour dynamiques des outils

Claude Code supporte les notifications MCP list_changed, permettant aux serveurs MCP de mettre à jour dynamiquement leurs outils, prompts et ressources disponibles sans vous obliger à vous déconnecter et reconnecter. Lorsqu’un serveur MCP envoie une notification list_changed, Claude Code actualise automatiquement les capacités disponibles de ce serveur.
Conseils :
  • Utilisez le drapeau --scope pour spécifier où la configuration est stockée :
    • local (par défaut) : Disponible uniquement pour vous dans le projet actuel (appelé project dans les versions antérieures)
    • project : Partagé avec tous les membres du projet via le fichier .mcp.json
    • user : Disponible pour vous dans tous les projets (appelé global dans les versions antérieures)
  • Définissez les variables d’environnement avec les drapeaux --env (par exemple, --env KEY=value)
  • Configurez le délai d’expiration du 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)
  • Claude Code affichera un avertissement lorsque la sortie de l’outil MCP dépasse 10 000 jetons. Pour augmenter cette limite, définissez la variable d’environnement MAX_MCP_OUTPUT_TOKENS (par exemple, MAX_MCP_OUTPUT_TOKENS=50000)
  • Utilisez /mcp pour vous authentifier auprès des serveurs distants qui nécessitent une authentification OAuth 2.0
Utilisateurs Windows : Sur Windows natif (pas WSL), les serveurs MCP locaux qui utilisent npx nécessitent le wrapper cmd /c pour assurer une exécution correcte.
# Cela crée command="cmd" que Windows peut exécuter
claude mcp add --transport stdio my-server -- cmd /c npx -y @some/package
Sans le wrapper cmd /c, vous rencontrerez des erreurs « Connection closed » car Windows ne peut pas exécuter directement npx. (Voir la note ci-dessus pour une explication du paramètre --.)

Serveurs MCP fournis par les plugins

Les plugins peuvent regrouper des serveurs MCP, fournissant automatiquement des outils et des intégrations lorsque le plugin est activé. Les serveurs MCP des plugins fonctionnent de manière identique aux serveurs configurés par l’utilisateur. Comment fonctionnent les serveurs MCP des plugins :
  • Les plugins définissent les serveurs MCP dans .mcp.json à la racine du plugin ou en ligne dans plugin.json
  • Lorsqu’un plugin est activé, ses serveurs MCP démarrent automatiquement
  • Les outils MCP des plugins apparaissent aux côtés des outils MCP configurés manuellement
  • Les serveurs des plugins sont gérés via l’installation du plugin (pas via les commandes /mcp)
Exemple de configuration MCP du plugin : Dans .mcp.json à la racine du plugin :
{
  "database-tools": {
    "command": "${CLAUDE_PLUGIN_ROOT}/servers/db-server",
    "args": ["--config", "${CLAUDE_PLUGIN_ROOT}/config.json"],
    "env": {
      "DB_URL": "${DB_URL}"
    }
  }
}
Ou en ligne dans plugin.json :
{
  "name": "my-plugin",
  "mcpServers": {
    "plugin-api": {
      "command": "${CLAUDE_PLUGIN_ROOT}/servers/api-server",
      "args": ["--port", "8080"]
    }
  }
}
Fonctionnalités MCP du plugin :
  • Cycle de vie automatique : Les serveurs démarrent lorsque le plugin s’active, mais vous devez redémarrer Claude Code pour appliquer les modifications du serveur MCP (activation ou désactivation)
  • Variables d’environnement : Utilisez ${CLAUDE_PLUGIN_ROOT} pour les chemins relatifs au plugin
  • Accès aux variables d’environnement utilisateur : Accès aux mêmes variables d’environnement que les serveurs configurés manuellement
  • Types de transport multiples : Support des transports stdio, SSE et HTTP (le support des transports peut varier selon le serveur)
Affichage des serveurs MCP du plugin :
# Dans Claude Code, voir tous les serveurs MCP y compris ceux du plugin
/mcp
Les serveurs des plugins apparaissent dans la liste avec des indicateurs montrant qu’ils proviennent des plugins. Avantages des serveurs MCP du plugin :
  • Distribution groupée : Outils et serveurs emballés ensemble
  • Configuration automatique : Aucune configuration MCP manuelle nécessaire
  • Cohérence d’équipe : Tout le monde obtient les mêmes outils lorsque le plugin est installé
Consultez la référence des composants du plugin pour plus de détails sur le regroupement des serveurs MCP avec les plugins.

Portées d’installation MCP

Les serveurs MCP peuvent être configurés à trois niveaux de portée différents, chacun servant des objectifs distincts pour gérer l’accessibilité et le partage des serveurs. Comprendre ces portées vous aide à déterminer la meilleure façon de configurer les serveurs pour vos besoins spécifiques.

Portée locale

Les serveurs à portée locale représentent le niveau de configuration par défaut et sont stockés dans ~/.claude.json sous le chemin de votre projet. Ces serveurs restent privés pour vous et ne sont accessibles que lorsque vous travaillez dans le répertoire du projet actuel. Cette portée est idéale pour les serveurs de développement personnels, les configurations expérimentales ou les serveurs contenant des identifiants sensibles qui ne doivent pas être partagés.
Le terme « portée locale » pour les serveurs MCP diffère des paramètres locaux généraux. Les serveurs MCP à portée locale sont stockés dans ~/.claude.json (votre répertoire personnel), tandis que les paramètres locaux généraux utilisent .claude/settings.local.json (dans le répertoire du projet). Consultez Paramètres pour plus de détails sur les emplacements des fichiers de paramètres.
# Ajouter un serveur à portée locale (par défaut)
claude mcp add --transport http stripe https://mcp.stripe.com

# Spécifier explicitement la portée locale
claude mcp add --transport http stripe --scope local https://mcp.stripe.com

Portée du projet

Les serveurs à portée de projet permettent la collaboration d’équipe en stockant les configurations dans un fichier .mcp.json à la racine de votre projet. Ce fichier est conçu pour être archivé dans le contrôle de version, garantissant que tous les membres de l’équipe ont accès aux mêmes outils et services MCP. Lorsque vous ajoutez un serveur à portée de projet, Claude Code crée ou met à jour automatiquement ce fichier avec la structure de configuration appropriée.
# Ajouter un serveur à portée de projet
claude mcp add --transport http paypal --scope project https://mcp.paypal.com/mcp
Le fichier .mcp.json résultant suit un format standardisé :
{
  "mcpServers": {
    "shared-server": {
      "command": "/path/to/server",
      "args": [],
      "env": {}
    }
  }
}
Pour des raisons de sécurité, Claude Code demande une approbation avant d’utiliser les serveurs à portée de projet à partir des fichiers .mcp.json. Si vous devez réinitialiser ces choix d’approbation, utilisez la commande claude mcp reset-project-choices.

Portée utilisateur

Les serveurs à portée utilisateur sont stockés dans ~/.claude.json et offrent une accessibilité inter-projets, les rendant disponibles dans tous les projets de votre machine tout en restant privés pour votre compte utilisateur. Cette portée fonctionne bien pour les serveurs utilitaires personnels, les outils de développement ou les services que vous utilisez fréquemment dans différents projets.
# Ajouter un serveur utilisateur
claude mcp add --transport http hubspot --scope user https://mcp.hubspot.com/anthropic

Choisir la bonne portée

Sélectionnez votre portée en fonction de :
  • Portée locale : Serveurs personnels, configurations expérimentales ou identifiants sensibles spécifiques à un projet
  • Portée du projet : Serveurs partagés par l’équipe, outils spécifiques au projet ou services requis pour la collaboration
  • Portée utilisateur : Utilitaires personnels nécessaires dans plusieurs projets, outils de développement ou services fréquemment utilisés
Où sont stockés les serveurs MCP ?
  • Portée utilisateur et locale : ~/.claude.json (dans le champ mcpServers ou sous les chemins du projet)
  • Portée du projet : .mcp.json à la racine de votre projet (archivé dans le contrôle de source)
  • Géré : managed-mcp.json dans les répertoires système (voir Configuration MCP gérée)

Hiérarchie de portée et précédence

Les configurations du serveur MCP suivent une hiérarchie de précédence claire. Lorsque des serveurs portant le même nom existent à plusieurs portées, le système résout les conflits en donnant la priorité aux serveurs à portée locale en premier, suivis des serveurs à portée de projet, et enfin des serveurs à portée utilisateur. Cette conception garantit que les configurations personnelles peuvent remplacer les configurations partagées si nécessaire.

Expansion des variables d’environnement dans .mcp.json

Claude Code supporte l’expansion des variables d’environnement dans les fichiers .mcp.json, permettant aux équipes de partager des configurations tout en maintenant la flexibilité pour les chemins spécifiques à la machine et les valeurs sensibles comme les clés API. Syntaxe supportée :
  • ${VAR} - Se développe à la valeur de la variable d’environnement VAR
  • ${VAR:-default} - Se développe à VAR si défini, sinon utilise default
Emplacements d’expansion : Les variables d’environnement peuvent être développées dans :
  • command - Le chemin de l’exécutable du serveur
  • args - Arguments de la ligne de commande
  • env - Variables d’environnement passées au serveur
  • url - Pour les types de serveur HTTP
  • headers - Pour l’authentification du serveur HTTP
Exemple avec expansion de variable :
{
  "mcpServers": {
    "api-server": {
      "type": "http",
      "url": "${API_BASE_URL:-https://api.example.com}/mcp",
      "headers": {
        "Authorization": "Bearer ${API_KEY}"
      }
    }
  }
}
Si une variable d’environnement requise n’est pas définie et n’a pas de valeur par défaut, Claude Code ne pourra pas analyser la configuration.

Exemples pratiques

Exemple : Surveiller les erreurs avec Sentry

claude mcp add --transport http sentry https://mcp.sentry.dev/mcp
Authentifiez-vous avec votre compte Sentry :
/mcp
Ensuite, déboguez les problèmes de production :
Quelles sont les erreurs les plus courantes au cours des 24 dernières heures ?
Montrez-moi la trace de pile pour l'erreur ID abc123
Quel déploiement a introduit ces nouvelles erreurs ?

Exemple : Se connecter à GitHub pour les révisions de code

claude mcp add --transport http github https://api.githubcopilot.com/mcp/
Authentifiez-vous si nécessaire en sélectionnant « Authenticate » pour GitHub :
/mcp
Ensuite, travaillez avec GitHub :
Examinez la PR #456 et suggérez des améliorations
Créer un nouveau problème pour le bogue que nous venons de trouver
Montrez-moi toutes les PR ouvertes qui me sont assignées

Exemple : Interroger votre base de données PostgreSQL

claude mcp add --transport stdio db -- npx -y @bytebase/dbhub \
  --dsn "postgresql://readonly:[email protected]:5432/analytics"
Ensuite, interrogez votre base de données naturellement :
Quel est notre revenu total ce mois-ci ?
Montrez-moi le schéma de la table des commandes
Trouver les clients qui n'ont pas effectué d'achat depuis 90 jours

S’authentifier auprès des serveurs MCP distants

De nombreux serveurs MCP basés sur le cloud nécessitent une authentification. Claude Code supporte OAuth 2.0 pour les connexions sécurisées.
1

Ajouter le serveur qui nécessite une authentification

Par exemple :
claude mcp add --transport http sentry https://mcp.sentry.dev/mcp
2

Utiliser la commande /mcp dans Claude Code

Dans Claude Code, utilisez la commande :
/mcp
Ensuite, suivez les étapes dans votre navigateur pour vous connecter.
Conseils :
  • Les jetons d’authentification sont stockés de manière sécurisée et actualisés automatiquement
  • Utilisez « Clear authentication » dans le menu /mcp pour révoquer l’accès
  • Si votre navigateur ne s’ouvre pas automatiquement, copiez l’URL fournie et ouvrez-la manuellement
  • Si la redirection du navigateur échoue avec une erreur de connexion après l’authentification, collez l’URL de rappel complète de la barre d’adresse de votre navigateur dans l’invite d’URL qui apparaît dans Claude Code
  • L’authentification OAuth fonctionne avec les serveurs HTTP

Utiliser un port de rappel OAuth fixe

Certains serveurs MCP nécessitent un URI de redirection spécifique enregistré à l’avance. Par défaut, Claude Code choisit un port disponible aléatoire pour le rappel OAuth. Utilisez --callback-port pour fixer le port afin qu’il corresponde à un URI de redirection pré-enregistré de la forme http://localhost:PORT/callback. Vous pouvez utiliser --callback-port seul (avec l’enregistrement dynamique du client) ou ensemble avec --client-id (avec les identifiants pré-configurés).
# Port de rappel fixe avec enregistrement dynamique du client
claude mcp add --transport http \
  --callback-port 8080 \
  my-server https://mcp.example.com/mcp

Utiliser les identifiants OAuth pré-configurés

Certains serveurs MCP ne supportent pas la configuration OAuth automatique. Si vous voyez une erreur comme « Incompatible auth server: does not support dynamic client registration », le serveur nécessite des identifiants pré-configurés. Enregistrez d’abord une application OAuth via le portail des développeurs du serveur, puis fournissez les identifiants lors de l’ajout du serveur.
1

Enregistrer une application OAuth auprès du serveur

Créez une application via le portail des développeurs du serveur et notez votre ID client et votre secret client.De nombreux serveurs nécessitent également un URI de redirection. Si c’est le cas, choisissez un port et enregistrez un URI de redirection au format http://localhost:PORT/callback. Utilisez ce même port avec --callback-port à l’étape suivante.
2

Ajouter le serveur avec vos identifiants

Choisissez l’une des méthodes suivantes. Le port utilisé pour --callback-port peut être n’importe quel port disponible. Il doit simplement correspondre à l’URI de redirection que vous avez enregistré à l’étape précédente.
Utilisez --client-id pour passer l’ID client de votre application. Le drapeau --client-secret demande le secret avec une entrée masquée :
claude mcp add --transport http \
  --client-id your-client-id --client-secret --callback-port 8080 \
  my-server https://mcp.example.com/mcp
3

S'authentifier dans Claude Code

Exécutez /mcp dans Claude Code et suivez le flux de connexion du navigateur.
Conseils :
  • Le secret client est stocké de manière sécurisée dans votre trousseau système (macOS) ou un fichier d’identifiants, pas dans votre configuration
  • Si le serveur utilise un client OAuth public sans secret, utilisez uniquement --client-id sans --client-secret
  • --callback-port peut être utilisé avec ou sans --client-id
  • Ces drapeaux s’appliquent uniquement aux transports HTTP et SSE. Ils n’ont aucun effet sur les serveurs stdio
  • Utilisez claude mcp get <name> pour vérifier que les identifiants OAuth sont configurés pour un serveur

Remplacer la découverte des métadonnées OAuth

Si votre serveur MCP retourne des erreurs sur le point de terminaison des métadonnées OAuth standard (/.well-known/oauth-authorization-server) mais expose un point de terminaison OIDC fonctionnant, vous pouvez dire à Claude Code de récupérer les métadonnées OAuth directement à partir d’une URL que vous spécifiez, en contournant la chaîne de découverte standard. Définissez authServerMetadataUrl dans l’objet oauth de la configuration de votre serveur dans .mcp.json :
{
  "mcpServers": {
    "my-server": {
      "type": "http",
      "url": "https://mcp.example.com/mcp",
      "oauth": {
        "authServerMetadataUrl": "https://auth.example.com/.well-known/openid-configuration"
      }
    }
  }
}
L’URL doit utiliser https://. Cette option nécessite Claude Code v2.1.64 ou ultérieur.

Ajouter des serveurs MCP à partir de la configuration JSON

Si vous avez une configuration JSON pour un serveur MCP, vous pouvez l’ajouter directement :
1

Ajouter un serveur MCP à partir de JSON

# Syntaxe de base
claude mcp add-json <name> '<json>'

# Exemple : Ajouter un serveur HTTP avec configuration JSON
claude mcp add-json weather-api '{"type":"http","url":"https://api.weather.com/mcp","headers":{"Authorization":"Bearer token"}}'

# Exemple : Ajouter un serveur stdio avec configuration JSON
claude mcp add-json local-weather '{"type":"stdio","command":"/path/to/weather-cli","args":["--api-key","abc123"],"env":{"CACHE_DIR":"/tmp"}}'

# Exemple : Ajouter un serveur HTTP avec identifiants OAuth pré-configurés
claude mcp add-json my-server '{"type":"http","url":"https://mcp.example.com/mcp","oauth":{"clientId":"your-client-id","callbackPort":8080}}' --client-secret
2

Vérifier que le serveur a été ajouté

claude mcp get weather-api
Conseils :
  • Assurez-vous que le JSON est correctement échappé dans votre shell
  • Le JSON doit se conformer au schéma de configuration du serveur MCP
  • Vous pouvez utiliser --scope user pour ajouter le serveur à votre configuration utilisateur au lieu de celle spécifique au projet

Importer les serveurs MCP à partir de Claude Desktop

Si vous avez déjà configuré des serveurs MCP dans Claude Desktop, vous pouvez les importer :
1

Importer les serveurs à partir de Claude Desktop

# Syntaxe de base 
claude mcp add-from-claude-desktop 
2

Sélectionner les serveurs à importer

Après avoir exécuté la commande, vous verrez une boîte de dialogue interactive qui vous permet de sélectionner les serveurs que vous souhaitez importer.
3

Vérifier que les serveurs ont été importés

claude mcp list 
Conseils :
  • Cette fonctionnalité ne fonctionne que sur macOS et Windows Subsystem for Linux (WSL)
  • Elle lit le fichier de configuration de Claude Desktop à partir de son emplacement standard sur ces plates-formes
  • Utilisez le drapeau --scope user pour ajouter les serveurs à votre configuration utilisateur
  • Les serveurs importés auront les mêmes noms que dans Claude Desktop
  • Si des serveurs portant les mêmes noms existent déjà, ils recevront un suffixe numérique (par exemple, server_1)

Utiliser les serveurs MCP à partir de Claude.ai

Si vous vous êtes connecté à Claude Code avec un compte Claude.ai, les serveurs MCP que vous avez ajoutés dans Claude.ai sont automatiquement disponibles dans Claude Code :
1

Configurer les serveurs MCP dans Claude.ai

Ajoutez les serveurs à claude.ai/settings/connectors. Sur les plans Team et Enterprise, seuls les administrateurs peuvent ajouter des serveurs.
2

Authentifier le serveur MCP

Complétez les étapes d’authentification requises dans Claude.ai.
3

Afficher et gérer les serveurs dans Claude Code

Dans Claude Code, utilisez la commande :
/mcp
Les serveurs Claude.ai apparaissent dans la liste avec des indicateurs montrant qu’ils proviennent de Claude.ai.
Pour désactiver les serveurs MCP de Claude.ai dans Claude Code, définissez la variable d’environnement ENABLE_CLAUDEAI_MCP_SERVERS sur false :
ENABLE_CLAUDEAI_MCP_SERVERS=false claude

Utiliser Claude Code comme serveur MCP

Vous pouvez utiliser Claude Code lui-même comme serveur MCP auquel d’autres applications peuvent se connecter :
# Démarrer Claude en tant que serveur MCP stdio
claude mcp serve
Vous pouvez l’utiliser dans Claude Desktop en ajoutant cette configuration à claude_desktop_config.json :
{
  "mcpServers": {
    "claude-code": {
      "type": "stdio",
      "command": "claude",
      "args": ["mcp", "serve"],
      "env": {}
    }
  }
}
Configuration du chemin de l’exécutable : Le champ command doit référencer l’exécutable Claude Code. Si la commande claude n’est pas dans le PATH de votre système, vous devrez spécifier le chemin complet de l’exécutable.Pour trouver le chemin complet :
which claude
Ensuite, utilisez le chemin complet dans votre configuration :
{
  "mcpServers": {
    "claude-code": {
      "type": "stdio",
      "command": "/full/path/to/claude",
      "args": ["mcp", "serve"],
      "env": {}
    }
  }
}
Sans le chemin d’exécutable correct, vous rencontrerez des erreurs comme spawn claude ENOENT.
Conseils :
  • Le serveur fournit l’accès aux outils de Claude comme View, Edit, LS, etc.
  • Dans Claude Desktop, essayez de demander à Claude de lire les fichiers dans un répertoire, de faire des modifications, et plus encore.
  • Notez que ce serveur MCP expose uniquement les outils de Claude Code à votre client MCP, donc votre propre client est responsable de l’implémentation de la confirmation de l’utilisateur pour les appels d’outils individuels.

Limites de sortie MCP et avertissements

Lorsque les outils MCP produisent de grandes sorties, Claude Code aide à gérer l’utilisation des jetons pour éviter de surcharger votre contexte de conversation :
  • Seuil d’avertissement de sortie : Claude Code affiche un avertissement lorsque la sortie de tout outil MCP dépasse 10 000 jetons
  • Limite configurable : Vous pouvez ajuster le nombre maximum de jetons de sortie MCP autorisés en utilisant la variable d’environnement MAX_MCP_OUTPUT_TOKENS
  • Limite par défaut : La limite maximale par défaut est de 25 000 jetons
Pour augmenter la limite pour les outils qui produisent de grandes sorties :
# Définir une limite plus élevée pour les sorties des outils MCP
export MAX_MCP_OUTPUT_TOKENS=50000
claude
Ceci est particulièrement utile lorsque vous travaillez avec des serveurs MCP qui :
  • Interrogent de grands ensembles de données ou des bases de données
  • Génèrent des rapports ou des documentations détaillés
  • Traitent des fichiers journaux ou des informations de débogage étendus
Si vous rencontrez fréquemment des avertissements de sortie avec des serveurs MCP spécifiques, envisagez d’augmenter la limite ou de configurer le serveur pour paginer ou filtrer ses réponses.

Utiliser les ressources MCP

Les serveurs MCP peuvent exposer des ressources que vous pouvez référencer en utilisant des mentions @, similaire à la façon dont vous référencez les fichiers.

Référencer les ressources MCP

1

Lister les ressources disponibles

Tapez @ dans votre prompt pour voir les ressources disponibles de tous les serveurs MCP connectés. Les ressources apparaissent aux côtés des fichiers dans le menu d’autocomplétion.
2

Référencer une ressource spécifique

Utilisez le format @server:protocol://resource/path pour référencer une ressource :
Pouvez-vous analyser @github:issue://123 et suggérer un correctif ?
Veuillez examiner la documentation API à @docs:file://api/authentication
3

Références de ressources multiples

Vous pouvez référencer plusieurs ressources dans un seul prompt :
Comparez @postgres:schema://users avec @docs:file://database/user-model
Conseils :
  • Les ressources sont automatiquement récupérées et incluses en tant que pièces jointes lorsqu’elles sont référencées
  • Les chemins des ressources sont recherchables par correspondance floue dans l’autocomplétion de mention @
  • Claude Code fournit automatiquement des outils pour lister et lire les ressources MCP lorsque les serveurs les supportent
  • Les ressources peuvent contenir n’importe quel type de contenu fourni par le serveur MCP (texte, JSON, données structurées, etc.)

Mettre à l’échelle avec la recherche d’outils MCP

Lorsque vous avez de nombreux serveurs MCP configurés, les définitions d’outils peuvent consommer une partie importante de votre fenêtre de contexte. La recherche d’outils MCP résout ce problème en chargeant les outils à la demande au lieu de les précharger tous.

Comment cela fonctionne

Claude Code active automatiquement la recherche d’outils lorsque vos descriptions d’outils MCP consommeraient plus de 10 % de la fenêtre de contexte. Vous pouvez ajuster ce seuil ou désactiver complètement la recherche d’outils. Lorsqu’elle est déclenchée :
  1. Les outils MCP sont différés plutôt que chargés dans le contexte à l’avance
  2. Claude utilise un outil de recherche pour découvrir les outils MCP pertinents si nécessaire
  3. Seuls les outils dont Claude a réellement besoin sont chargés dans le contexte
  4. Les outils MCP continuent à fonctionner exactement comme avant de votre point de vue

Pour les auteurs de serveurs MCP

Si vous créez un serveur MCP, le champ des instructions du serveur devient plus utile avec la recherche d’outils activée. Les instructions du serveur aident Claude à comprendre quand rechercher vos outils, similaire à la façon dont les skills fonctionnent. Ajoutez des instructions de serveur claires et descriptives qui expliquent :
  • Quelle catégorie de tâches vos outils gèrent
  • Quand Claude doit rechercher vos outils
  • Les capacités clés de votre serveur

Configurer la recherche d’outils

La recherche d’outils s’exécute en mode auto par défaut, ce qui signifie qu’elle s’active uniquement lorsque vos définitions d’outils MCP dépassent le seuil de contexte. Si vous avez peu d’outils, ils se chargent normalement sans recherche d’outils. Cette fonctionnalité nécessite des modèles qui supportent les blocs tool_reference : Sonnet 4 et ultérieur, ou Opus 4 et ultérieur. Les modèles Haiku ne supportent pas la recherche d’outils. Contrôlez le comportement de la recherche d’outils avec la variable d’environnement ENABLE_TOOL_SEARCH :
ValeurComportement
autoS’active lorsque les outils MCP dépassent 10 % du contexte (par défaut)
auto:<N>S’active au seuil personnalisé, où <N> est un pourcentage (par exemple, auto:5 pour 5 %)
trueToujours activé
falseDésactivé, tous les outils MCP chargés à l’avance
# Utiliser un seuil personnalisé de 5 %
ENABLE_TOOL_SEARCH=auto:5 claude

# Désactiver complètement la recherche d'outils
ENABLE_TOOL_SEARCH=false claude
Ou définissez la valeur dans le champ env de votre settings.json. Vous pouvez également désactiver l’outil MCPSearch spécifiquement en utilisant le paramètre disallowedTools :
{
  "permissions": {
    "deny": ["MCPSearch"]
  }
}

Utiliser les prompts MCP comme commandes

Les serveurs MCP peuvent exposer des prompts qui deviennent disponibles en tant que commandes dans Claude Code.

Exécuter les prompts MCP

1

Découvrir les prompts disponibles

Tapez / pour voir toutes les commandes disponibles, y compris celles des serveurs MCP. Les prompts MCP apparaissent au format /mcp__servername__promptname.
2

Exécuter un prompt sans arguments

/mcp__github__list_prs
3

Exécuter un prompt avec des arguments

De nombreux prompts acceptent des arguments. Passez-les séparés par des espaces après la commande :
/mcp__github__pr_review 456
/mcp__jira__create_issue "Bug in login flow" high
Conseils :
  • Les prompts MCP sont découverts dynamiquement à partir des serveurs connectés
  • Les arguments sont analysés en fonction des paramètres définis du prompt
  • Les résultats du prompt sont injectés directement dans la conversation
  • Les noms de serveur et de prompt sont normalisés (les espaces deviennent des traits de soulignement)

Configuration MCP gérée

Pour les organisations qui ont besoin d’un contrôle centralisé sur les serveurs MCP, Claude Code supporte deux options de configuration :
  1. Contrôle exclusif avec managed-mcp.json : Déployer un ensemble fixe de serveurs MCP que les utilisateurs ne peuvent pas modifier ou étendre
  2. Contrôle basé sur les politiques avec listes blanches/noires : Permettre aux utilisateurs d’ajouter leurs propres serveurs, mais restreindre lesquels sont autorisés
Ces options permettent aux administrateurs informatiques de :
  • Contrôler les serveurs MCP auxquels les employés peuvent accéder : Déployer un ensemble standardisé de serveurs MCP approuvés dans toute l’organisation
  • Empêcher les serveurs MCP non autorisés : Restreindre les utilisateurs d’ajouter des serveurs MCP non approuvés
  • Désactiver complètement MCP : Supprimer complètement la fonctionnalité MCP si nécessaire

Option 1 : Contrôle exclusif avec managed-mcp.json

Lorsque vous déployez un fichier managed-mcp.json, il prend le contrôle exclusif de tous les serveurs MCP. Les utilisateurs ne peuvent pas ajouter, modifier ou utiliser d’autres serveurs MCP que ceux définis dans ce fichier. C’est l’approche la plus simple pour les organisations qui veulent un contrôle complet. Les administrateurs système déploient le fichier de configuration dans un répertoire à l’échelle du système :
  • macOS : /Library/Application Support/ClaudeCode/managed-mcp.json
  • Linux et WSL : /etc/claude-code/managed-mcp.json
  • Windows : C:\Program Files\ClaudeCode\managed-mcp.json
Ce sont des chemins à l’échelle du système (pas des répertoires personnels comme ~/Library/...) qui nécessitent des privilèges d’administrateur. Ils sont conçus pour être déployés par les administrateurs informatiques.
Le fichier managed-mcp.json utilise le même format qu’un fichier .mcp.json standard :
{
  "mcpServers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/"
    },
    "sentry": {
      "type": "http",
      "url": "https://mcp.sentry.dev/mcp"
    },
    "company-internal": {
      "type": "stdio",
      "command": "/usr/local/bin/company-mcp-server",
      "args": ["--config", "/etc/company/mcp-config.json"],
      "env": {
        "COMPANY_API_URL": "https://internal.company.com"
      }
    }
  }
}

Option 2 : Contrôle basé sur les politiques avec listes blanches et noires

Au lieu de prendre le contrôle exclusif, les administrateurs peuvent permettre aux utilisateurs de configurer leurs propres serveurs MCP tout en appliquant des restrictions sur les serveurs autorisés. Cette approche utilise allowedMcpServers et deniedMcpServers dans le fichier de paramètres gérés.
Choisir entre les options : Utilisez l’option 1 (managed-mcp.json) lorsque vous souhaitez déployer un ensemble fixe de serveurs sans personnalisation utilisateur. Utilisez l’option 2 (listes blanches/noires) lorsque vous souhaitez permettre aux utilisateurs d’ajouter leurs propres serveurs dans le respect des contraintes de politique.

Options de restriction

Chaque entrée dans la liste blanche ou noire peut restreindre les serveurs de trois façons :
  1. Par nom de serveur (serverName) : Correspond au nom configuré du serveur
  2. Par commande (serverCommand) : Correspond à la commande exacte et aux arguments utilisés pour démarrer les serveurs stdio
  3. Par modèle d’URL (serverUrl) : Correspond aux URL des serveurs distants avec support des caractères génériques
Important : Chaque entrée doit avoir exactement un de serverName, serverCommand ou serverUrl.

Exemple de configuration

{
  "allowedMcpServers": [
    // Autoriser par nom de serveur
    { "serverName": "github" },
    { "serverName": "sentry" },

    // Autoriser par commande exacte (pour les serveurs stdio)
    { "serverCommand": ["npx", "-y", "@modelcontextprotocol/server-filesystem"] },
    { "serverCommand": ["python", "/usr/local/bin/approved-server.py"] },

    // Autoriser par modèle d'URL (pour les serveurs distants)
    { "serverUrl": "https://mcp.company.com/*" },
    { "serverUrl": "https://*.internal.corp/*" }
  ],
  "deniedMcpServers": [
    // Bloquer par nom de serveur
    { "serverName": "dangerous-server" },

    // Bloquer par commande exacte (pour les serveurs stdio)
    { "serverCommand": ["npx", "-y", "unapproved-package"] },

    // Bloquer par modèle d'URL (pour les serveurs distants)
    { "serverUrl": "https://*.untrusted.com/*" }
  ]
}

Comment fonctionnent les restrictions basées sur les commandes

Correspondance exacte :
  • Les tableaux de commandes doivent correspondre exactement - à la fois la commande et tous les arguments dans le bon ordre
  • Exemple : ["npx", "-y", "server"] ne correspondra PAS à ["npx", "server"] ou ["npx", "-y", "server", "--flag"]
Comportement du serveur stdio :
  • Lorsque la liste blanche contient n’importe quelle entrée serverCommand, les serveurs stdio doivent correspondre à l’une de ces commandes
  • Les serveurs stdio ne peuvent pas passer par le nom seul lorsque des restrictions de commande sont présentes
  • Cela garantit que les administrateurs peuvent appliquer les commandes autorisées à s’exécuter
Comportement du serveur non-stdio :
  • Les serveurs distants (HTTP, SSE, WebSocket) utilisent la correspondance basée sur l’URL lorsque des entrées serverUrl existent dans la liste blanche
  • Si aucune entrée d’URL n’existe, les serveurs distants reviennent à la correspondance basée sur le nom
  • Les restrictions de commande ne s’appliquent pas aux serveurs distants

Comment fonctionnent les restrictions basées sur l’URL

Les modèles d’URL supportent les caractères génériques en utilisant * pour correspondre à n’importe quelle séquence de caractères. Ceci est utile pour autoriser des domaines ou des sous-domaines entiers. Exemples de caractères génériques :
  • https://mcp.company.com/* - Autoriser tous les chemins sur un domaine spécifique
  • https://*.example.com/* - Autoriser n’importe quel sous-domaine de example.com
  • http://localhost:*/* - Autoriser n’importe quel port sur localhost
Comportement du serveur distant :
  • Lorsque la liste blanche contient n’importe quelle entrée serverUrl, les serveurs distants doivent correspondre à l’un de ces modèles d’URL
  • Les serveurs distants ne peuvent pas passer par le nom seul lorsque des restrictions d’URL sont présentes
  • Cela garantit que les administrateurs peuvent appliquer les points de terminaison distants autorisés
{
  "allowedMcpServers": [
    { "serverUrl": "https://mcp.company.com/*" },
    { "serverUrl": "https://*.internal.corp/*" }
  ]
}
Résultat :
  • Serveur HTTP à https://mcp.company.com/api : ✅ Autorisé (correspond au modèle d’URL)
  • Serveur HTTP à https://api.internal.corp/mcp : ✅ Autorisé (correspond au sous-domaine générique)
  • Serveur HTTP à https://external.com/mcp : ❌ Bloqué (ne correspond à aucun modèle d’URL)
  • Serveur stdio avec n’importe quelle commande : ❌ Bloqué (aucune entrée de nom ou de commande à correspondre)
{
  "allowedMcpServers": [
    { "serverCommand": ["npx", "-y", "approved-package"] }
  ]
}
Résultat :
  • Serveur stdio avec ["npx", "-y", "approved-package"] : ✅ Autorisé (correspond à la commande)
  • Serveur stdio avec ["node", "server.js"] : ❌ Bloqué (ne correspond pas à la commande)
  • Serveur HTTP nommé « my-api » : ❌ Bloqué (aucune entrée de nom à correspondre)
{
  "allowedMcpServers": [
    { "serverName": "github" },
    { "serverCommand": ["npx", "-y", "approved-package"] }
  ]
}
Résultat :
  • Serveur stdio nommé « local-tool » avec ["npx", "-y", "approved-package"] : ✅ Autorisé (correspond à la commande)
  • Serveur stdio nommé « local-tool » avec ["node", "server.js"] : ❌ Bloqué (les entrées de commande existent mais ne correspondent pas)
  • Serveur stdio nommé « github » avec ["node", "server.js"] : ❌ Bloqué (les serveurs stdio doivent correspondre aux commandes lorsque les entrées de commande existent)
  • Serveur HTTP nommé « github » : ✅ Autorisé (correspond au nom)
  • Serveur HTTP nommé « other-api » : ❌ Bloqué (le nom ne correspond pas)
{
  "allowedMcpServers": [
    { "serverName": "github" },
    { "serverName": "internal-tool" }
  ]
}
Résultat :
  • Serveur stdio nommé « github » avec n’importe quelle commande : ✅ Autorisé (aucune restriction de commande)
  • Serveur stdio nommé « internal-tool » avec n’importe quelle commande : ✅ Autorisé (aucune restriction de commande)
  • Serveur HTTP nommé « github » : ✅ Autorisé (correspond au nom)
  • N’importe quel serveur nommé « other » : ❌ Bloqué (le nom ne correspond pas)

Comportement de la liste blanche (allowedMcpServers)

  • undefined (par défaut) : Aucune restriction - les utilisateurs peuvent configurer n’importe quel serveur MCP
  • Tableau vide [] : Verrouillage complet - les utilisateurs ne peuvent configurer aucun serveur MCP
  • Liste d’entrées : Les utilisateurs ne peuvent configurer que les serveurs qui correspondent par nom, commande ou modèle d’URL

Comportement de la liste noire (deniedMcpServers)

  • undefined (par défaut) : Aucun serveur n’est bloqué
  • Tableau vide [] : Aucun serveur n’est bloqué
  • Liste d’entrées : Les serveurs spécifiés sont explicitement bloqués dans toutes les portées

Notes importantes

  • L’option 1 et l’option 2 peuvent être combinées : Si managed-mcp.json existe, il a le contrôle exclusif et les utilisateurs ne peuvent pas ajouter de serveurs. Les listes blanches/noires s’appliquent toujours aux serveurs gérés eux-mêmes.
  • La liste noire a une précédence absolue : Si un serveur correspond à une entrée de liste noire (par nom, commande ou URL), il sera bloqué même s’il est sur la liste blanche
  • Les restrictions basées sur le nom, la commande et l’URL fonctionnent ensemble : un serveur passe s’il correspond à soit une entrée de nom, une entrée de commande, ou un modèle d’URL (sauf s’il est bloqué par la liste noire)
Lors de l’utilisation de managed-mcp.json : Les utilisateurs ne peuvent pas ajouter de serveurs MCP via claude mcp add ou les fichiers de configuration. Les paramètres allowedMcpServers et deniedMcpServers s’appliquent toujours pour filtrer les serveurs gérés qui sont réellement chargés.