IAMaîtriser l'IA générative Plan du corpus
Accueil/Exemples prets a l'emploi/Configuration MCP prete a l'emploi

Configuration MCP prete a l'emploi

Brancher Claude Code sur tes vraies sources : base de donnees, fichiers, Git, outils metier.

Temps de lecture : 10 min | Niveau : Intermediaire

Ce que tu sauras faire apres

  • Ajouter un serveur MCP avec la bonne portee en une commande
  • Ecrire un .mcp.json partageable avec ton equipe, sans y mettre de secret
  • Diagnostiquer un serveur qui ne se connecte pas
  • Appliquer les regles de securite indispensables avant de brancher une base de donnees

Rappel en une phrase

MCP (Model Context Protocol) est la prise standard entre un assistant IA et tes outils. Un serveur MCP expose des outils (tools), des donnees (resources) et parfois des prompts. Claude Code est le client qui s'y branche.


Ajouter un serveur : les commandes

Serveur local (stdio)

Le serveur tourne sur ta machine, lance par Claude Code.

# La syntaxe : le -- separe les options de Claude de la commande du serveur
claude mcp add <nom> -- <commande> [arguments...]

# Exemple : acces a un dossier de fichiers
claude mcp add fichiers -- npx -y @modelcontextprotocol/server-filesystem C:/Users/Main/donnees

# Exemple avec une variable d'environnement
claude mcp add --env API_KEY=xxxxx --transport stdio mon-outil -- npx -y mon-serveur-mcp

Serveur distant (HTTP)

claude mcp add --transport http <nom> <url>

# Avec un jeton d'authentification
claude mcp add --transport http mon-saas https://exemple.com/mcp \
  --header "Authorization: Bearer mon-jeton"

Choisir la portee

claude mcp add --scope local  ...   # defaut : ce projet, pour toi seul
claude mcp add --scope project ...  # ecrit dans .mcp.json, partage via Git
claude mcp add --scope user   ...   # tous tes projets, pour toi seul
PorteeOu c'est stockePour quoi
localConfiguration privee du projetUn essai, un serveur avec un secret perso
project.mcp.json a la racine du depotCe que toute l'equipe doit avoir
userConfiguration utilisateurTes outils a toi, sur tous tes projets

Gerer les serveurs

claude mcp list              # lister et voir l'etat
claude mcp get <nom>         # le detail d'un serveur
claude mcp remove <nom>      # supprimer
claude mcp login <nom>       # s'authentifier (serveurs OAuth)
claude mcp logout <nom>      # effacer les identifiants

Dans une session, la commande /mcp affiche l'etat de chaque serveur :

SymboleSignification
ConnecteTout va bien
Authentification requiseLance claude mcp login <nom> ou /mcp
Echec de connexionCommande introuvable, mauvais arguments, ou serveur plante
En attente d'approbationServeur de portee projet : relance claude pour l'approuver

Un .mcp.json complet

Fichier : .mcp.json a la racine du projet. Il se versionne dans Git — d'ou l'importance de n'y mettre aucun secret en clair.

{
  "mcpServers": {
    "entrepot-lecture-seule": {
      "type": "stdio",
      "command": "uvx",
      "args": ["mcp-server-postgres"],
      "env": {
        "DATABASE_URL": "${DATABASE_URL_READONLY}"
      }
    },

    "documentation": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "./docs"]
    },

    "outil-interne": {
      "type": "http",
      "url": "${MCP_INTERNE_URL:-https://mcp.interne.exemple.com/mcp}",
      "headers": {
        "Authorization": "Bearer ${MCP_INTERNE_TOKEN}"
      }
    }
  }
}

La syntaxe des variables

EcritureEffet
${VAR}Remplace par la variable d'environnement VAR
${VAR:-valeur}Utilise VAR si elle existe, sinon la valeur par defaut

C'est le point cle : le fichier partage ne contient que des noms de variables. Chacun definit ses propres valeurs sur sa machine.

Sous Windows, pour definir une variable dans ta session PowerShell :

$env:DATABASE_URL_READONLY = "postgresql://lecteur:motdepasse@serveur:5432/entrepot"

Pour la rendre permanente, passe par les variables d'environnement utilisateur de Windows, ou un gestionnaire de secrets. Ne la mets jamais dans un fichier versionne.


Les cinq regles de securite a ne pas negocier

  1. Lecture seule par defaut. Cree un utilisateur de base de donnees dedie qui n'a que le droit SELECT. C'est la protection la plus efficace, et elle ne depend pas du modele.
   CREATE USER claude_lecture WITH PASSWORD '[MOT_DE_PASSE]';
   GRANT CONNECT ON DATABASE entrepot TO claude_lecture;
   GRANT USAGE ON SCHEMA analytics TO claude_lecture;
   GRANT SELECT ON ALL TABLES IN SCHEMA analytics TO claude_lecture;
  1. Jamais de secret dans .mcp.json. Uniquement des ${VARIABLES}.
  2. Un serveur tiers est du code qui tourne chez toi. Avant d'installer un serveur MCP trouve sur internet : regarde qui le publie, lis le code si tu peux, et prefere les serveurs officiels.
  3. Mefie-toi du contenu qui revient d'un outil. Si une table contient du texte libre ecrit par des utilisateurs, ce texte peut contenir des instructions destinees a piller ton systeme. C'est l'injection indirecte de prompt. Ne laisse jamais un agent enchainer « lire une donnee » puis « executer une action » sans verification.
  4. Limite le perimetre. Un serveur de fichiers pointe sur ./docs, pas sur C:/. Un serveur de base de donnees voit un schema, pas toute l'instance.

Diagnostiquer un serveur qui ne demarre pas

SymptomeCause frequenteVerification
Echec de connexion immediatLa commande n'existe pas sur ta machineLance la commande seule dans ton terminal
Echec apres quelques secondesIdentifiants faux ou base inaccessibleTeste la connexion avec un client SQL classique
Le serveur demarre mais aucun outilMauvaise version, ou mauvais argumentsclaude mcp get <nom> puis relis la doc du serveur
En attente d'approbationServeur de portee projet jamais approuveRelance claude dans le dossier et accepte
Variable non remplaceeLa variable n'existe pas dans la sessionAffiche-la : echo $env:MA_VARIABLE

Sous Windows, si un serveur lance par npx echoue, essaie cmd /c npx comme commande.


Template a remplir

{
  "mcpServers": {
    "[NOM_COURT_DU_SERVEUR]": {
      "type": "stdio",
      "command": "[COMMANDE]",
      "args": ["[ARGUMENT_1]", "[ARGUMENT_2]"],
      "env": {
        "[NOM_DE_LA_VARIABLE]": "${[NOM_DE_LA_VARIABLE]}"
      }
    }
  }
}

Par ou commencer concretement

  1. Installe un seul serveur, en lecture seule, sur un perimetre reduit.
  2. Pose-lui trois questions dont tu connais deja la reponse, pour verifier qu'il ne raconte pas n'importe quoi.
  3. Compare systematiquement le resultat avec une requete que tu ecris toi-meme.
  4. Une fois la confiance etablie, elargis le perimetre.

A retenir

  • --scope project ecrit dans .mcp.json et se partage ; --scope user reste pour toi.
  • Aucun secret dans un fichier versionne : uniquement ${VARIABLES}.
  • Un compte de base de donnees en lecture seule vaut mieux que n'importe quelle consigne.
  • Le texte qui revient d'un outil est une donnee, jamais un ordre.

Sources

Corpus personnel de formation · genere le 26/09/2026 · source : 05-configuration-mcp.md