Aller au contenu principal
Leçon 10 sur 20 · Claude Code en action

Serveurs MCP

Leçon 10 sur 20 Mis à jour le 4 novembre 2026 Développeur
Sur cette page
  1. Ajouter un serveur
  2. Trois portées
  3. Gérer les serveurs
  4. Gérer les permissions
  5. Exemple pratique : fermer la boucle avec un navigateur
  6. Explorer d’autres serveurs
  7. À vous de jouer
  8. Points clés à retenir

Les skills de la leçon précédente réutilisent des instructions ; les serveurs MCP, eux, ajoutent des capacités. Le Model Context Protocol est un standard ouvert par lequel un programme, distant ou local, expose des outils que Claude peut appeler, en plus de Read, Edit, Bash et compagnie. C’est la traduction concrète de ce que nous avons vu en début de cours : Claude sait se servir d’outils qu’il n’a jamais rencontrés, à partir de leur seule description. Avec un serveur MCP, vous lui demandez d’implémenter la fonctionnalité décrite dans un ticket Jira, de vérifier dans Sentry l’usage d’une fonction, d’interroger votre base PostgreSQL ou de piloter un navigateur.

Ajouter un serveur

Pour un service en ligne, la documentation recommande le transport HTTP :

claude mcp add --transport http notion https://mcp.notion.com/mcp

Le premier argument après les options est le nom que vous donnez au serveur ; il préfixera tous ses outils. Un jeton se passe avec --header "Authorization: Bearer …", ou mieux, par OAuth : claude mcp login notion lance le flux d’authentification depuis le shell, et claude mcp logout efface les identifiants. L’ancien transport SSE existe encore mais est déprécié.

Pour un serveur local, qui tourne comme un processus sur votre machine, le double tiret sépare les options de Claude Code de la commande qui démarre le serveur :

claude mcp add playwright -- npx @playwright/mcp@latest

Lancez ces commandes dans le terminal, pas dans une session Claude Code : la confusion est fréquente et produit un message d’erreur déroutant. --env CLE=valeur passe une variable d’environnement au serveur, et claude mcp add-json <nom> '<json>' accepte la configuration JSON que publient la plupart des serveurs. Claude Code fournit au serveur local la variable CLAUDE_PROJECT_DIR, la racine du projet.

Comparaison des transports MCP : STDIO pour un serveur local lancé comme processus enfant, HTTP pour un serveur distant joint par URL

Trois portées

PortéeOptionChargé dansStocké dansPartagé
Local (défaut)--scope localCe projet seulement~/.claude.jsonNon
Projet--scope projectCe projet.mcp.json à la racineOui, via Git
Utilisateur--scope userTous vos projets~/.claude.jsonNon

Un serveur de projet est la bonne portée pour l’outillage d’équipe : le fichier .mcp.json se commite, et chaque membre l’obtient après un git pull. Comme il peut lancer des processus, Claude Code demande l’approbation des serveurs de projet d’un dépôt que vous n’avez pas encore marqué comme de confiance. Les identifiants n’ont rien à faire dans ce fichier : .mcp.json accepte des références ${MA_VARIABLE} qui sont développées à partir de l’environnement.

Gérer les serveurs

claude mcp list          # tous les serveurs configurés et leur état
claude mcp get notion    # le détail d'un serveur
claude mcp remove notion

Dans une session, /mcp affiche l’état de chaque serveur, permet d’en désactiver un sans le supprimer, de lancer l’authentification, et /mcp reconnect all relance ceux qui ont échoué. Une fois connecté, les outils du serveur apparaissent à Claude sous le nom mcp__<serveur>__<outil>, et ses prompts éventuels dans le menu / sous la forme /notion:nom (MCP).

Deux comportements évitent que les serveurs ne pèsent sur la session. La recherche d’outils (tool search) ne charge au démarrage que les noms des outils et les instructions du serveur ; la définition complète d’un outil n’entre dans le contexte qu’au moment où Claude le cherche, ce qui permet de brancher de nombreux serveurs sans saturer la fenêtre. Et un appel MCP qui dépasse deux minutes passe automatiquement en arrière-plan pour que la session reste utilisable.

Gérer les permissions

En mode Auto, c’est le classifieur qui examine les appels d’outils MCP comme les autres. En mode Manual, Claude vous demande l’autorisation avant chaque appel d’outil externe, ce qui devient vite pénible sur un serveur sollicité en boucle. Les règles de permission utilisent le nom complet de l’outil :

{
  "permissions": {
    "allow": ["mcp__playwright__*"],
    "deny": ["mcp__github__delete_*"]
  }
}

mcp__playwright ou mcp__playwright__* couvrent tous les outils du serveur ; mcp__playwright__browser_snapshot un seul. Notez les doubles underscores : avec un seul, la règle ne correspond à rien, et aucun message ne vous dira pourquoi votre configuration semble ignorée. /permissions édite ces règles sans ouvrir le fichier. Ne branchez que des serveurs de confiance : un serveur qui rapporte du contenu externe, pages web, tickets, messages, expose à l’injection de prompt, et ce contenu doit être traité comme des données, pas comme des instructions.

Exemple pratique : fermer la boucle avec un navigateur

Vous mettez au point un prompt de génération de composants et, jusqu’ici, vous procédiez à la main : lancer l’application, regarder le rendu, ajuster le prompt, recommencer. Avec Playwright branché, vous pouvez demander à Claude d’ouvrir un navigateur sur votre application, de générer un composant de test, d’analyser le rendu visuel et la qualité du code, de corriger le prompt de génération d’après ce qu’il observe, puis de retester. L’avantage est que Claude voit le rendu réel, pas seulement le code : un composant dont le CSS est syntaxiquement correct mais qui déborde de son conteneur passe tous les tests unitaires et saute aux yeux à l’écran.

Pour le navigateur, une alternative existe sans serveur MCP à installer : l’extension Claude in Chrome. Lancez claude --chrome (ou activez-la par défaut dans /chrome) et Claude pilote votre Chrome, Edge ou autre navigateur Chromium, dans une fenêtre visible, en profitant de vos sessions déjà ouvertes ; il s’arrête devant une page de connexion ou un CAPTCHA et vous laisse la main. Elle est disponible sur les offres directes d’Anthropic (pas via Bedrock, Agent Platform ou Foundry, ni dans WSL), et l’application de bureau embarque de son côté son propre navigateur.

Explorer d’autres serveurs

Des serveurs de bases de données permettent d’interroger directement vos données, ce qui évite à Claude de deviner la forme d’une table à partir du code qui l’utilise. Des serveurs de suivi de tickets, de monitoring, de design ou de messagerie lui ouvrent les systèmes que votre équipe utilise déjà ; les connecteurs de votre compte claude.ai sont aussi accessibles depuis Claude Code. Le critère de choix reste le même : ajoutez un serveur lorsqu’il donne à Claude accès à une réalité qu’il ne peut pas déduire de votre code. Le cours Introduction au MCP du catalogue explique comment écrire le vôtre.

À vous de jouer

  1. Ajoutez le serveur Playwright avec la commande ci-dessus, lancez claude, puis /mcp : vérifiez qu’il est connecté.
  2. Demandez : « Ouvre http://localhost:3000 (ou n’importe quel site), fais une capture d’écran et décris la page. » Approuvez la première demande de permission, puis ajoutez mcp__playwright__* aux règles allow avec /permissions.
  3. Ajoutez un serveur HTTP de votre choix avec --scope project, ouvrez le .mcp.json produit et remplacez un éventuel secret par ${VARIABLE}.
  4. Si vous utilisez Chrome, essayez claude --chrome sur la même tâche et comparez.

Sources officielles : Connect Claude Code to tools via MCP · Configure permissions · Use Claude Code with Chrome

Points clés à retenir

  • claude mcp add --transport http <nom> <url> pour un service en ligne, claude mcp add <nom> -- <commande> pour un serveur local ; claude mcp login pour l’OAuth
  • Trois portées : locale (défaut), projet (.mcp.json commité, approbation demandée), utilisateur
  • Les outils s’appellent mcp__<serveur>__<outil> ; les règles allow et deny utilisent ce nom, avec deux underscores
  • La recherche d’outils ne charge les définitions qu’à la demande ; les appels longs passent en arrière-plan
  • Un serveur donne accès à une réalité absente du code ; pour le navigateur, Claude in Chrome (claude --chrome) évite d’installer Playwright