Les serveurs MCP peuvent définir des prompts - des instructions pré-écrites et de haute qualité que les clients peuvent utiliser au lieu d'écrire leurs propres prompts à partir de zéro. Considérez les prompts comme des modèles soigneusement conçus qui donnent de meilleurs résultats que ce que les utilisateurs pourraient écrire eux-mêmes.
Pourquoi utiliser des prompts ?
Disons que vous voulez que Claude reformate un document en markdown. Vous pourriez simplement demander « Convertir report.pdf en markdown » et cela fonctionnerait bien. Mais vous obtiendriez probablement de bien meilleurs résultats avec un prompt minutieusement testé et détaillé qui couvre les cas particuliers et donne des instructions de formatage spécifiques.

L'idée est simple : en tant que développeurs de serveurs MCP, nous pouvons passer du temps à concevoir et tester de très bons prompts, puis les rendre disponibles à quiconque utilise notre serveur. Les utilisateurs obtiennent de meilleurs résultats sans avoir à devenir eux-mêmes des experts en ingénierie de prompts.
Définir un prompt
Les prompts utilisent un modèle de décorateur similaire à celui des outils et des ressources. Voici la structure de base :
@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]:
# Retourne une liste de messagesLa fonction renvoie une liste de messages qui peuvent être envoyés directement à Claude. Cela vous permet de construire des prompts complexes avec plusieurs messages utilisateur et assistant si nécessaire.
Construire le prompt de formatage
Pour notre serveur de documents, nous allons créer un prompt qui reformate les documents en markdown. Le prompt doit :
- Prendre un ID de document en entrée
- Utiliser l'outil read_doc_contents pour obtenir le document
- Le reformater avec une syntaxe markdown appropriée
- Enregistrer les modifications dans le document
Voici à quoi ressemble l'implémentation :
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 structure.
Use the 'edit_document' tool to edit the document. After the document has been reformatted...
"""
return [
base.UserMessage(prompt)
]Tester le prompt
Une fois votre prompt défini, vous pouvez le tester à l'aide du MCP Inspector. Accédez à l'onglet Prompts, sélectionnez votre prompt et fournissez les paramètres requis.

L'inspecteur vous montrera les messages générés qui seraient envoyés à Claude. Vous pouvez vérifier que l'interpolation des paramètres fonctionne correctement et que votre prompt contient toutes les instructions nécessaires.
Avantages clés
- Contrôle qualité - Les auteurs de serveurs peuvent tester et affiner les prompts avant que les utilisateurs ne les voient
- Cohérence - Tout le monde obtient le même prompt de haute qualité au lieu d'improviser
- Spécialisation - Les prompts peuvent être adaptés au domaine et aux capacités spécifiques de votre serveur
- Réutilisabilité - Plusieurs applications clientes peuvent utiliser les mêmes prompts bien conçus
N'oubliez pas d'importer le module de base pour les types de messages :
from mcp.server.fastmcp.prompts import baseLes prompts sont particulièrement précieux lorsque votre serveur MCP a un domaine de focalisation spécifique - comme la gestion de documents, l'analyse de données ou la génération de code. Vous pouvez fournir aux utilisateurs des prompts éprouvés qui exploitent efficacement les outils de votre serveur.