Chargement

La dernière étape dans la construction de notre client MCP consiste à implémenter la fonctionnalité de prompts. Cela nous permet de lister tous les prompts disponibles depuis le serveur et de récupérer des prompts spécifiques avec des variables interpolées dans ceux-ci.

Implémentation de List Prompts

La méthode list_prompts est simple. Nous appelons la méthode de liste des prompts de la session et retournons les prompts :

python
async def list_prompts(self) -> list[types.Prompt]:
    result = await self.session().list_prompts()
    return result.prompts

Récupération de prompts individuels

La méthode get_prompt est plus intéressante car elle gère l'interpolation des arguments. Lorsque nous demandons un prompt spécifique, nous passons des arguments qui sont injectés dans la fonction de prompt. Par exemple, si notre serveur dispose d'un prompt « format » qui attend un paramètre doc_id, cette valeur est transmise et interpolée dans le texte réel du prompt.

python
async def get_prompt(self, prompt_name, args: dict[str, str]):
    result = await self.session().get_prompt(prompt_name, args)
    return result.messages

La méthode retourne des messages qui forment une conversation prête à être directement transmise à Claude.

Test des prompts en action

Lorsque vous exécutez le client et tapez une barre oblique, vous verrez les prompts disponibles sous forme de commandes. Sélectionner un prompt comme « format » vous invitera à choisir parmi les documents disponibles. Le système ensuite :

  • Prend le prompt avec l'ID du document interpolé
  • L'envoie directement à Claude en tant que message utilisateur
  • Claude reçoit à la fois les instructions et l'ID du document
  • Claude utilise les outils disponibles pour récupérer le contenu du document
  • Claude répond avec le résultat reformaté

Comment fonctionnent les prompts

Les prompts définissent un ensemble de messages utilisateur et assistant qui peuvent être utilisés par le client. Ces prompts doivent être de haute qualité, bien testés et pertinents par rapport à l'objectif global de votre serveur MCP.

Le flux de travail est le suivant :

  1. Rédigez et évaluez un prompt pertinent pour l'objectif de votre serveur MCP
  2. Définissez le prompt à l'intérieur de votre serveur MCP en utilisant le décorateur @mcp.prompt
  3. Votre client peut demander ce prompt à tout moment
  4. Lors de la demande du prompt, fournissez des arguments qui sont transmis comme arguments nommés à la fonction de prompt
  5. La fonction utilise ces arguments pour personnaliser le contenu du prompt

Ce système crée des prompts réutilisables et paramétrés qui peuvent être partagés entre différents clients et cas d'usage, rendant votre serveur MCP plus polyvalent et puissant.