Aller au contenu principal
Leçon 13 sur 14 · MCP — Sujets avancés

Évaluation sur les concepts MCP

Leçon 13 sur 14 Mis à jour le 5 novembre 2026 Avancé
Sur cette page
  1. Questions de révision
  2. À vous de jouer
  3. Points clés à retenir

Testez vos connaissances sur les sujets avancés de MCP couverts dans ce cours, tels qu’ils fonctionnent sur la version 1 du SDK Python et le protocole d’avant 2026-07-28 ; la dernière question porte sur ce qui change ensuite.

Questions de révision

Douze questions couvrant le sampling, les notifications, les roots et les transports. Cherchez votre réponse avant de déplier : c’est l’effort de rappel qui fixe le savoir, pas la relecture.

1. Qu'est-ce que le sampling MCP et quel problème résout-il ?

Réponse : Le sampling permet à un serveur MCP de demander à son client de générer du texte via un LLM. Il résout le problème des serveurs qui auraient besoin de leurs propres clés API et de la gestion des coûts — à la place, le client (qui a déjà accès au LLM) fait l’appel.

2. Qui paie les coûts de génération de tokens dans une architecture avec sampling ?

Réponse : Le client paie les coûts de tokens. C’est l’un des grands avantages : le serveur n’a pas de credentials ni de factures liées aux LLM.

3. Dans quel scénario le sampling est-il particulièrement recommandé ?

Réponse : Le sampling est particulièrement recommandé pour les serveurs MCP publics — vous ne voulez pas que des utilisateurs aléatoires génèrent du texte illimité à vos frais.

4. Quelle méthode utilisez-vous pour envoyer un message de log depuis un outil ?

Réponse : await context.info("message") — ou context.warning() / context.error() selon le niveau.

5. Sur quel objet le callback de logging est-il fourni (session ou appel d'outil) ?

Réponse : Le callback de logging est fourni à la session : ClientSession(..., logging_callback=fn).

6. Sur quel objet le callback de progression est-il fourni ?

Réponse : Le callback de progression est fourni à l’appel d’outil : session.call_tool(..., progress_callback=fn).

7. Pourquoi le SDK MCP n'applique-t-il pas automatiquement les restrictions de roots ?

Réponse : Le SDK n’impose pas les roots automatiquement car les restrictions varient selon chaque application. Vous devez implémenter vous-même la fonction is_path_allowed() et l’appeler dans vos outils.

8. Qu'est-ce qu'une root d'un point de vue technique (format URI) ?

Réponse : Une root est un URI de type file:///chemin/vers/dossier — exemple : file:///Users/alice/Videos.

9. Quelles sont les deux limites principales du transport STDIO ?

Réponse : STDIO fonctionne uniquement : (1) quand client et serveur sont sur la même machine et (2) nécessite que le serveur soit lancé comme sous-processus du client.

10. Quel mécanisme StreamableHTTP utilise-t-il pour permettre la communication serveur → client ?

Réponse : StreamableHTTP utilise les Server-Sent Events (SSE) — une connexion GET persistante via laquelle le serveur peut streamer des messages au client à tout moment.

11. `stateless_http=True` désactive quelles fonctionnalités MCP ?

Réponse : stateless_http=True désactive : les IDs de session, la connexion SSE primaire, le sampling, les notifications de progression, les logs, et les subscriptions aux ressources.

12. Quelle est la différence entre `stateless_http` et `json_response` ?

Réponse : stateless_http désactive toute la gestion d’état et la communication bidirectionnelle. json_response désactive uniquement le streaming des réponses POST (vous obtenez juste le résultat final en JSON, sans messages intermédiaires).

13. Que deviennent le sampling, les roots, le logging et la poignée de main dans la version 2026-07-28 ?

Réponse : Sampling, roots et logging sont dépréciés (au moins douze mois dans la spécification avant retrait) ; la poignée de main initialize et les sessions disparaissent, chaque requête portant sa version et ses capacités dans _meta ; les requêtes du serveur vers le client sont remplacées par les requêtes en plusieurs allers-retours. Les serveurs existants continuent de fonctionner sur les connexions de l’ère 2025.


Pour le quiz officiel et le badge, rendez-vous sur Claude Academy.

À vous de jouer

Relire avec la nouvelle version. Pour chaque question manquée, relisez la leçon correspondante, puis vérifiez dans le registre des dépréciations de la version 2026-07-28 du protocole ce que devient la fonctionnalité concernée : sampling, roots, logging ou poignée de main.

Sources officielles : Assessment on MCP concepts (Claude Academy) · Registre des dépréciations (2026-07-28)

Points clés à retenir

  • Le sampling fait générer le client à la place du serveur, qui n’a ni clé ni coût de tokens
  • Le serveur journalise par le contexte de l’outil ; côté client, le callback de logs se pose sur la session, celui de progression sur l’appel d’outil
  • Les roots sont des URI file:// que le SDK n’impose pas : c’est à vos outils de vérifier les chemins
  • STDIO exige la même machine et un serveur lancé par le client ; StreamableHTTP s’appuie sur SSE, et stateless_http retire sessions, sampling, progression et logs
  • Dans la version 2026-07-28 du protocole, sampling, roots et logging sont dépréciés, et la poignée de main initialize disparaît