schedule22 minsignal_cellular_alt_2_barIntermédiaireLeçon 02

MCP : connecter les agents aux outils

Objectifs
  • arrow_forwardcapable d'expliquer le Model Context Protocol et de configurer un serveur MCP local
  • arrow_forwardcapable de piloter un agent via MCP Playwright pour effectuer de la QA navigateur réelle
  • arrow_forwardcapable de configurer des serveurs MCP pour interroger des bases de données et des coffres de connaissances Obsidian
Connectez-vous pour sauvegarder votre progression et la retrouver sur tous vos appareils.Se connecter

MCP : connecter les agents aux outils

Le Model Context Protocol (MCP) est la couche qui permet à un agent de ne pas être limité à du texte : il peut lire des fichiers, appeler des APIs, interagir avec un navigateur, interroger une base de données — tout ce que vous exposez via un serveur MCP. C'est le passage de l'agent « assistant » à l'agent « acteur ».

Ce qu'est MCP (et ce que ce n'est pas)

MCP est un protocole ouvert (Anthropic, 2024) qui standardise la façon dont un modèle accède à des outils externes. Au lieu d'intégrer les outils dans chaque application hôte (Claude.ai, Claude Code, Cursor…), les outils sont exposés par un serveur MCP que n'importe quel client compatible peut consommer.

L'analogie utile : MCP est à l'IA ce que le protocole LSP est aux éditeurs de code — une interface standard qui découple le serveur (l'outil) du client (le modèle).

lightbulbL'idée à retenir

Un serveur MCP peut exposer trois types de primitives : des outils (actions que l'agent peut exécuter), des ressources (données que l'agent peut lire), et des prompts (instructions réutilisables). Dans la pratique d'ingénierie, les outils sont le cas d'usage central.

Configurer un serveur MCP local (exemple Playwright)

Claude Code lit sa configuration MCP depuis .claude/settings.json (ou ~/.claude/settings.json pour la config globale) :

{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": ["@playwright/mcp@latest"]
    }
  }
}

Après redémarrage de Claude Code, l'agent a accès aux outils Playwright : browser_navigate, browser_click, browser_fill, browser_screenshot, browser_snapshot

# Vérifier que le serveur est chargé
claude mcp list
# playwright: connected (5 tools)

Piloter la QA navigateur via MCP Playwright

Scénario concret : votre agent vient de générer un formulaire de connexion. Vous voulez valider le comportement réel (rendu, états d'erreur, accessibilité basique) sans écrire manuellement des tests e2e.

Instruction à l'agent :

Via MCP Playwright, navigue vers http://localhost:3000/connexion.
1. Prends un screenshot initial.
2. Soumets le formulaire vide — vérifie que les messages d'erreur de validation apparaissent.
3. Remplis avec des credentials invalides — vérifie le message d'erreur.
4. Remplis avec les credentials de test (user: test@example.com / pass: Test1234!) — vérifie la redirection vers /dashboard.
Rapport : liste des comportements observés + anomalies.
draftExemple

Rapport type produit par l'agent après la session Playwright :

QA navigateur — /connexion

✓ Screenshot initial : formulaire rendu correctement, labels visibles
✓ Soumission vide : "Ce champ est requis" affiché sur email et mot de passe
⚠ Credentials invalides : message générique "Erreur" sans précision — recommandé : "Email ou mot de passe incorrect"
✓ Login valide : redirection vers /dashboard (302 → 200)
⚠ Champ mot de passe : pas d'attribut autocomplete="current-password" — impact accessibilité/gestionnaire de mots de passe

2 anomalies mineures détectées.

L'agent a fait en 90 secondes ce qu'un test e2e manuel aurait pris 20 minutes à écrire et stabiliser.

Au-delà du navigateur : connecter vos bases de connaissances et bases de données

Playwright n'est qu'un début. MCP standardise la connexion à n'importe quelle ressource. Dans une ingénierie de production, vous voudrez connecter vos bases de données, vos documentations d'API externes, et vos notes internes.

Voici comment configurer trois serveurs MCP essentiels dans votre fichier de paramètres globaux (ex: .claude/settings.json ou la configuration MCP de Cursor) :

1. Obsidian MCP (Accès aux connaissances)

Pour permettre à l'agent d'aller lire vos documentations d'architecture internes, specs, et notes stockées dans votre coffre Obsidian sans saturer le contexte de démarrage :

"obsidian": {
  "command": "npx",
  "args": ["-y", "obsidian-mcp-server", "--vault-path", "/Chemin/Absolu/Vers/Votre/Coffre-Obsidian"]
}

L'agent disposera alors d'outils comme search_notes, read_note, ou get_backlinks pour parcourir vos notes métier.

2. PostgreSQL MCP (Accès au schéma de base de données)

Pour que l'agent comprenne exactement la structure de votre base de données sans avoir à lui coller des schémas obsolètes à la main :

"postgres": {
  "command": "npx",
  "args": ["-y", "@modelcontextprotocol/server-postgres", "--connection-string", "postgresql://user:pass@localhost:5432/mydb"]
}

L'agent pourra appeler describe_table ou list_tables pour inspecter la base en direct et générer des requêtes SQL ou ORM infaillibles.

3. Fetch/API MCP (Accès à la documentation externe)

Pour permettre à l'agent de naviguer sur le web ou de parser des documentations d'API Swagger/OpenAPI en direct sans copier-coller :

"fetch": {
  "command": "npx",
  "args": ["-y", "@modelcontextprotocol/server-fetch"]
}

Exemple de configuration multi-serveurs complète

{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": ["-y", "@playwright/mcp@latest"]
    },
    "obsidian": {
      "command": "npx",
      "args": ["-y", "obsidian-mcp-server", "--vault-path", "/Users/dev/obsidian-vault"]
    },
    "postgres": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-postgres", "--connection-string", "postgresql://localhost:5432/db"]
    }
  }
}

Périmètre et limites des permissions MCP

MCP avec Playwright en local est safe : l'agent contrôle un navigateur sur votre machine. En environnement partagé ou CI, les règles changent :

  • Limitez les origines accessibles (ne pas autoriser navigation vers des domaines externes non maîtrisés)
  • Désactivez les outils d'écriture fichier si le serveur tourne dans un contexte non supervisé
  • Auditez les outils exposés : chaque outil MCP est une action que l'agent peut enchaîner sans vous demander
warningAttention

Un agent avec MCP peut appeler des outils en cascade de façon non anticipée. Si vous exposez un outil "écrire dans la base de données" et un outil "envoyer un email", l'agent peut décider d'envoyer l'email après avoir écrit — sans que vous l'ayez demandé explicitement. Exposez le minimum nécessaire pour la tâche en cours, pas tous vos outils disponibles.

fitness_centerÀ votre tour

Installez le serveur MCP Playwright localement sur un projet avec une interface (même simple). Donnez à l'agent une instruction de QA sur 3 scénarios utilisateur de votre choix. Comparez : combien de temps pour écrire les mêmes vérifications en test Playwright classique vs en instruction à l'agent ? Quelles vérifications l'agent a-t-il trouvées que vous n'aviez pas prévues ? Lesquelles a-t-il manquées ?

quiz

Vérifiez votre compréhension

4 questions · répondez puis validez.

Le Model Context Protocol (MCP) sert principalement à :
Avec un serveur MCP Playwright, que peut faire un agent que des tests unitaires ne peuvent pas faire ?
Pourquoi faut-il limiter les permissions d'un serveur MCP en production ?
Comment se configure un serveur MCP Obsidian local dans Claude Code ou Cursor ?