Aller au contenu principal

Évaluation sur les concepts MCP

Testez vos connaissances sur les sujets avancés de MCP couverts dans ce cours.

Questions de révision

Sampling

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

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

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

Notifications

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

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

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

Roots

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

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

Transports

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

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

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

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


Réponses

1. 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. 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. 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. await context.info("message") — ou context.warning() / context.error() selon le niveau.

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

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

7. 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. Une root est un URI de type file:///chemin/vers/dossier — exemple : file:///Users/alice/Videos.

9. 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. 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 : les IDs de session, la connexion SSE primaire, le sampling, les notifications de progression, les logs, et les subscriptions aux ressources.

12. 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.