Évaluation sur les concepts MCP
Testez vos connaissances sur les sujets avancés de MCP couverts dans ce cours.
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).
Pour l’évaluation officielle et la certification, rendez-vous sur Anthropic Academy.