Vous discutez avec Mistral ou Claude, l'IA répond à vos questions de code, rédige vos e-mails à copier-coller, vous explique un concept, etc. Mais dès que vous lui demandez de regarder dans votre dépôt GitHub ou votre base de données, plus personne.
Effectivement, le modèle est dans sa bulle avec ses connaissances et ce que vous lui donnez en contexte. Bien que, quand vous utilisez le tchat sur Claude ou Mistral, il soit maintenant capable de faire une recherche web.
Pour donner un accès propre et sécurisé à vos fichiers et vos outils, vous devez utiliser les MCP.
Le problème des intégrations
Imaginez que vous vouliez connecter votre IA à GitHub. Il faudrait écrire un connecteur sur mesure. Et puis pour Notion aussi, et pour un autre outil, etc. Et si demain vous changez de modèle pour passer de Claude à Mistral, il faut potentiellement tout réécrire pour ce dernier.
À ce stade, je pense que vous vous posez une question légitime : les plateformes comme GitHub, Notion, etc. possèdent bien une API ? Effectivement, mais le problème n'est pas de ne pas avoir d'API, c'est qu'il faut pour chaque service connecter le modèle à l'API, et chaque API est différente. Et comme je le disais avant, le connecteur qui lie Claude à GitHub ne sera pas le même pour Mistral ou ChatGPT.
Le MCP ne standardise pas les API, mais la façon dont un agent IA découvre et comprend l'implémentation des API.
On parlera alors du problème M×N : si vous avez M modèles d'IA et N outils à connecter, il faudra maintenant M×N intégrations différentes. L'idée est de transformer le M×N en M+N : chaque modèle implémente le protocole une fois et chaque outil l'implémente une fois, à la fin tout le monde se parle 🤗.
Avant et après les MCP
MCP signifie Model Context Protocol (protocole de contexte de modèle). Ce standard a été lancé par Anthropic en novembre 2024. Comme vu précédemment, son but est de définir une manière universelle de connecter les IA aux outils.
Le MCP s'inspire directement du LSP (Language Server Protocol). Le LSP a standardisé la façon dont un éditeur communique avec le support d'un langage de programmation.
Et le standard a pris très vite : en décembre 2025, Anthropic a fait don du MCP à la Linux Foundation. C'est devenu l'infrastructure standard de l'IA agentique.
L'architecture
Trois acteurs entrent en jeu :
-
L'hôte : l'application d'IA avec laquelle vous interagissez
-
Le client : un composant qui vit à l'intérieur de l'hôte. L'hôte crée un client par serveur connecté, et chaque client gère la connexion dédiée à un seul serveur
-
Le serveur : c'est lui qui expose réellement les outils et les données
Vous parlez à l'hôte qui instancie un client pour chaque serveur, et chaque serveur récupère les données. Sous le capot, les échanges se font au format JSON-RPC 2.0, un protocole qui s'appuie sur du JSON. L'architecture MCP prévoit deux mécanismes standards pour envoyer des messages JSON :
-
En local (via stdio, l'entrée/sortie standard du terminal)
-
À distance (via Streamable HTTP, une connexion web qui reste ouverte)
Les trois primitives d'un serveur MCP
Un serveur MCP expose trois types de capacités.
Les outils (Tools)
Les outils sont des fonctions que l'IA peut appeler pour produire un effet comme envoyer un e-mail, créer une issue sur GitHub, lancer une requête en base de données, etc.
Les ressources (Resources)
Les ressources fournissent un accès en lecture à des données. Elles permettent de charger de l'information dans le contexte du modèle.
Il peut s'agir d'une documentation, d'un schéma de base de données, etc.
Les prompts
Un prompt dans le protocole MCP est un modèle de requête prédéfini, réutilisable et paramétrable, hébergé directement sur le serveur pour standardiser l'interaction. Ils sont souvent déclenchés via un menu ou une commande slash. C'est ce qui permet d'avoir des prompts structurés.
Exemple : l'équipe MCP a créé un serveur factice appelé « Server Everything » qui permet de démontrer les fonctionnalités du protocole. On va en profiter pour utiliser leur bac à sable. Nous utilisons MCP Inspector, l'outil qui permet d'inspecter un serveur MCP. Commencez par installer Node.js et lancez cette commande :
npx @modelcontextprotocol/inspector npx @modelcontextprotocol/server-everything
Une page va s'ouvrir et vous allez pouvoir tester le protocole MCP. Je suis allé dans la partie prompts et j'ai sélectionné args-prompt. Le serveur indique que ce modèle spécifique a besoin de paramètres (« arguments ») pour fonctionner. L'outil me demande de remplir des blancs définis par les créateurs du serveur, puis un prompt structuré est généré via un bloc JSON.
Server Everything
Créer son serveur MCP en Python
Et oui, il est possible de créer son propre serveur MCP avec Python via la bibliothèque officielle.
Si nous reprenons l'exemple officiel de la documentation :
from mcp.server.fastmcp import FastMCP # Create an MCP server mcp = FastMCP("Demo", json_response=True) # Add an addition tool @mcp.tool() def add(a: int, b: int) -> int: """Add two numbers""" return a + b # Add a dynamic greeting resource @mcp.resource("greeting://{name}") def get_greeting(name: str) -> str: """Get a personalized greeting""" return f"Hello, {name}!" # Add a prompt @mcp.prompt() def greet_user(name: str, style: str = "friendly") -> str: """Generate a greeting prompt""" styles = { "friendly": "Please write a warm, friendly greeting", "formal": "Please write a formal, professional greeting", "casual": "Please write a casual, relaxed greeting", } return f"{styles.get(style, styles['friendly'])} for someone named {name}." # Run with streamable HTTP transport if __name__ == "__main__": mcp.run(transport="streamable-http")
Si je lance le serveur, je peux ensuite utiliser notre ami Inspector :
npx @modelcontextprotocol/inspector
Rendez-vous dans l'interface et entrez l'URL : http://127.0.0.1:8000/mcp :
Inspection de notre MCP
Décortiquons un peu le code :
-
L'instanciation via
mcp = FastMCP("Demo") -
L'outil via le décorateur
@mcp.tool()transformant la fonctionadden outil appelable par l'IA -
Les ressources avec le décorateur
@mcp.resource("greeting://{name}")qui expose une donnée en lecture -
Le prompt avec
@mcp.prompt()
En moyenne, vous n'aurez pas à créer votre propre MCP, vous allez plutôt vous brancher sur des MCP existants.
Utiliser un MCP avec Claude
Depuis Claude, vous pouvez vous connecter via le menu connecteurs. J'ai pour ma part connecté Gmail.
Se connecter à des MCP avec Claude
Je vais maintenant demander à Claude si j'ai un e-mail qui concerne l'ADICO :
Claude va lire mes mails
Vous pouvez visualiser la liste des connecteurs via cette page.
À savoir qu'il existe une méthode manuelle, en passant par le terminal, pour ajouter des serveurs qui ne sont pas dans l'annuaire.
claude mcp add --transport http mon-serveur https://api.example.com/mcp \ --header "Authorization: Bearer votre_token_ici"
Un mot sur la sécurité
Il faut bien garder une chose en tête : un serveur MCP peut avoir accès à des données sensibles (vos e-mails, votre base de données, etc.). N'installez que des serveurs dont vous faites confiance à la source, et limitez les permissions des jetons que vous générez.