Définir des prompts MCP
Mis à jour le 30 juillet 2026
Troisième et dernière primitive du protocole après les outils et les ressources, les prompts MCP répondent à un constat simple : les utilisateurs écrivent des prompts médiocres, et ce n’est pas leur métier de faire mieux. Un serveur MCP peut donc embarquer des instructions pré-construites, rédigées et testées par son auteur — celui qui connaît le mieux son domaine — et les proposer aux clients comme des commandes prêtes à l’emploi.
Pourquoi utiliser des prompts MCP
Comparez les deux expériences. Un utilisateur tape « convertis report.pdf en markdown » : le résultat sera correct, sans plus — Claude improvisera la structure, oubliera peut-être les tableaux, ne saura pas quel outil d’édition employer. Le même utilisateur déclenche le prompt format du serveur : derrière cette commande d’un mot se déploie une instruction soigneusement conçue qui précise le niveau de détail attendu, les éléments de mise en forme à utiliser et l’outil exact à appeler pour écrire le résultat. L’utilisateur n’a rien appris de plus ; la qualité, elle, a changé de catégorie. C’est le principe des commandes slash que vous connaissez peut-être dans Claude Code — et MCP le généralise à n’importe quel serveur.
Implémentation
from mcp.server.fastmcp.prompts import base
@mcp.prompt(
name="format",
description="Reformate le contenu d'un document en Markdown",
)
def format_document(
doc_id: str = Field(description="Identifiant du document a formater"),
) -> list[base.Message]:
prompt = f"""
Ton objectif est de reformater un document en syntaxe Markdown.
L'identifiant du document a reformater est :
{doc_id}
Ajoute des titres, listes a puces, tableaux, etc. selon les besoins.
Utilise l'outil 'edit_document' pour modifier le document.
"""
return [base.UserMessage(prompt)]
Décortiquons l’implémentation. Le décorateur @mcp.prompt déclare le prompt au serveur avec son nom — celui que les clients afficheront — et sa description. La fonction prend des paramètres typés et documentés par Field, exactement comme un outil : ici, l’identifiant du document à formater. Et elle retourne une liste de messages, pas une simple chaîne : ce format permet de pré-construire un début de conversation complet — un message utilisateur ici, mais rien n’empêche d’y ajouter des exemples few-shot ou un échange amorcé. Remarquez enfin la dernière ligne du prompt : elle nomme explicitement l’outil edit_document à utiliser. Un prompt MCP qui connaît les outils de son propre serveur, c’est toute la cohérence de l’écosystème dans une seule instruction.
Tester les prompts
Via l’inspecteur MCP, l’onglet Prompts permet de sélectionner un prompt, de fournir ses paramètres, et de voir exactement quels messages seraient envoyés à Claude. Prenez ce réflexe avant toute intégration : c’est le seul moyen de vérifier le rendu final du template — interpolation des paramètres comprise — sans consommer un appel au modèle.
Avantages
Tout l’intérêt du mécanisme tient dans le déplacement de la responsabilité : la qualité du prompt n’est plus à la charge de l’utilisateur final, mais de l’auteur du serveur — qui peut la travailler. Il teste et affine ses instructions avant diffusion, comme n’importe quel livrable ; chaque utilisation produit alors des résultats cohérents, là où les formulations improvisées varient d’un utilisateur à l’autre. Cette centralisation permet la spécialisation — un serveur de documents juridiques embarque des prompts qui parlent le langage juridique — et la mutualisation : le même prompt sert tous les clients qui se connectent au serveur, et une amélioration profite instantanément à tous.
Points clés à retenir
- Les prompts MCP sont des instructions pré-construites et testées, exposées comme des commandes prêtes à l’emploi
@mcp.promptles déclare avec nom, description et paramètres typés — même ergonomie que les outils- Le retour est une liste de messages : on peut pré-construire un début de conversation complet
- Un prompt peut référencer les outils de son propre serveur pour guider l’exécution
- La qualité se travaille côté serveur, une fois, et profite à tous les clients