Aller au contenu principal

Définir des prompts

Les prompts dans les serveurs MCP vous permettent de définir des instructions pré-construites de haute qualité que les clients peuvent utiliser à la place de leurs propres prompts. Considérez-les comme des modèles soigneusement conçus qui donnent de meilleurs résultats que ce que les utilisateurs pourraient formuler eux-mêmes.

Pourquoi utiliser les prompts ?

Voici l’intuition clé : les utilisateurs peuvent déjà demander à Claude de faire la plupart des tâches directement. Par exemple, un utilisateur pourrait taper “reformate rapport.pdf en markdown” et obtenir des résultats corrects. Mais ils obtiendront de bien meilleurs résultats si vous fournissez un prompt spécialisé, soigneusement testé, qui gère les cas limites et suit les bonnes pratiques.

En tant qu’auteur du serveur MCP, vous pouvez passer du temps à élaborer, tester et évaluer des prompts qui fonctionnent de façon cohérente dans différents scénarios. Les utilisateurs bénéficient de cette expertise sans avoir à devenir eux-mêmes des experts en prompt engineering.

Construire une commande de formatage

Implémentons un exemple pratique : une commande format qui convertit des documents en markdown. Les utilisateurs taperont /format doc_id et obtiendront une version markdown formatée professionnellement.

Le workflow ressemble à :

1. L'utilisateur tape / pour voir les commandes disponibles
2. Il sélectionne "format" et spécifie un identifiant de document
3. Claude utilise votre prompt pré-construit pour lire et reformater le document
4. Le résultat est du markdown propre avec headers, listes et formatage appropriés

Définir des prompts

Les prompts utilisent un pattern de décorateur similaire aux outils et ressources :

from mcp.server import fastmcp
from mcp.types import base

@mcp.prompt(
    name="format",
    description="Réécrit le contenu du document en syntaxe Markdown."
)
def format_document(
    doc_id: str = Field(description="Identifiant du document à formater")
) -> list[base.Message]:
    prompt = f"""
Votre objectif est de reformater un document en syntaxe markdown.

L'identifiant du document à reformater est :
<document_id>
{doc_id}
</document_id>

Ajoutez des headers, des listes à puces, des tableaux, etc. selon les besoins.
N'hésitez pas à ajouter de la structure.
Utilisez l'outil 'edit_document' pour modifier le document. Une fois le document
reformaté, confirmez que les modifications ont été effectuées.
"""
    
    return [
        base.UserMessage(prompt)
    ]

La fonction retourne une liste de messages qui sont envoyés directement à Claude. Vous pouvez inclure plusieurs messages utilisateur et assistant pour créer des flux de conversation plus complexes.

Tester vos prompts

Utilisez l’inspecteur MCP pour tester vos prompts avant de les déployer. L’inspecteur vous montre exactement quels messages seront envoyés à Claude, y compris comment les variables sont interpolées dans votre template. Cela vous permet de vérifier que le prompt a l’air correct avant que les utilisateurs commencent à l’utiliser.

Avantages clés

AvantageDescription
CohérenceLes utilisateurs obtiennent des résultats fiables à chaque fois
ExpertiseVous encodez des connaissances métier dans les prompts
RéutilisabilitéPlusieurs applications clientes peuvent utiliser les mêmes prompts
MaintenanceMettez à jour les prompts en un seul endroit pour améliorer tous les clients

Bonnes pratiques de design

Les prompts fonctionnent mieux quand ils sont spécialisés pour le domaine de votre serveur MCP :

  • Un serveur de gestion de documents → prompts pour formater, résumer, analyser des documents
  • Un serveur d’analyse de données → prompts pour générer des rapports ou des visualisations
  • Un serveur de code → prompts pour la révision, la refactorisation, la documentation

L’objectif est de fournir des prompts tellement bien conçus et testés que les utilisateurs les préfèrent à leurs propres instructions.