Chargement

Les requêtes dans les serveurs MCP vous permettent de définir des instructions préconçues et de haute qualité que les clients peuvent utiliser au lieu de rédiger leurs propres requêtes à partir de zéro. Considérez-les comme des modèles soigneusement élaborés qui offrent de meilleurs résultats que ce que les utilisateurs pourraient concevoir par eux-mêmes.

Pourquoi utiliser des requêtes ?

Supposons que vous souhaitiez que Claude reformate un document en markdown. Un utilisateur pourrait simplement taper « convertir report.pdf en markdown » et cela fonctionnerait correctement. Mais il obtiendrait probablement de bien meilleurs résultats avec une requête soigneusement testée qui inclut des instructions précises concernant le formatage, la structure et les exigences de sortie.

La requête en une ligne de l'utilisateur à côté d'une requête testée qui définit un rôle de conversion de document, des règles de formatage et des balises d'analyse.

L'idée clé est que, bien que les utilisateurs puissent accomplir ces tâches par eux-mêmes, ils obtiendront des résultats plus cohérents et de meilleure qualité en utilisant des requêtes soigneusement développées et testées par les auteurs du serveur MCP.

Comment fonctionnent les requêtes

Les requêtes définissent un ensemble de messages utilisateur et assistant que les clients peuvent utiliser directement. Lorsqu'un client demande une requête, votre serveur renvoie une liste de messages qui peuvent être envoyés directement à Claude.

Un serveur MCP contenant une requête nommée « format », dont la fonction format_document renvoie une liste de messages, illustrée ci-dessous.

La structure de base ressemble à ceci :

  • Définissez les requêtes à l'aide du décorateur @mcp.prompt()
  • Ajoutez un nom et une description pour chaque requête
  • Renvoyez une liste de messages qui constituent la requête complète
  • Ces requêtes doivent être de haute qualité, bien testées et pertinentes par rapport à l'objectif de votre serveur MCP

Création d'une commande de formatage

Voici comment implémenter une requête de formatage de document. Tout d'abord, vous devrez importer les types de messages de base :

python
from mcp.server.fastmcp.prompts import base

Définissez ensuite votre fonction de requête :

python
@mcp.prompt(
    name="format",
    description="Rewrites the contents of the document in Markdown format."
)
def format_document(
    doc_id: str = Field(description="Id of the document to format")
) -> list[base.Message]:
    prompt = f"""
Your goal is to reformat a document to be written with markdown syntax.

The id of the document you need to reformat is:

{doc_id}


Add in headers, bullet points, tables, etc as necessary. Feel free to add in extra formatting.
Use the 'edit_document' tool to edit the document. After the document has been reformatted...
"""
    
    return [
        base.UserMessage(prompt)
    ]

Tester vos requêtes

Vous pouvez tester les requêtes à l'aide du MCP Inspector. Accédez à la section Prompts, sélectionnez votre requête et fournissez les paramètres requis. L'inspecteur vous montrera les messages générés qui seraient envoyés à Claude.

MCP Inspector affichant la requête « format » avec doc_id outlook.pdf et le résultat Get Prompt, un message avec le rôle « user ».

Cela vous permet de vérifier que votre requête interpole correctement les variables et produit la structure de message attendue avant de l'utiliser dans une application réelle.

Bonnes pratiques

Lors de la création de requêtes pour votre serveur MCP :

  • Concentrez-vous sur les tâches qui sont centrales à l'objectif de votre serveur
  • Rédigez des instructions détaillées et précises plutôt que des demandes vagues
  • Testez vos requêtes de manière approfondie avec différentes entrées
  • Incluez des descriptions claires afin que les utilisateurs comprennent ce que fait chaque requête
  • Réfléchissez à la manière dont la requête fonctionnera avec les outils et les ressources de votre serveur

N'oubliez pas que les requêtes sont censées apporter une valeur que les utilisateurs ne pourraient pas facilement obtenir par eux-mêmes : elles doivent représenter votre expertise dans le domaine couvert par votre serveur MCP.