Qu'est-ce qu'un MCP ?

Découvrez ce que sont les MCP en intelligence artificielle.

Publié le par Gabriel Trouvé (mis à jour le )

18 minutes

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

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
SHELL

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

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")
PYTHON

Si je lance le serveur, je peux ensuite utiliser notre ami Inspector :

npx @modelcontextprotocol/inspector
SHELL

Rendez-vous dans l'interface et entrez l'URL : http://127.0.0.1:8000/mcp :

Inspection de notre 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 fonction add en 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

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

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"
SHELL

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.

Bravo, tu es prêt à passer à la suite

Rechercher sur le site

Inscris-toi à Docstring

Pour commencer ton apprentissage.

Tu as déjà un compte ? Connecte-toi.