Introduction au Model Context Protocol (MCP)
James Chapman
AI Curriculum Manager, DataCamp
Inviteurs : gabarits réutilisables qui optimisent les LLM pour des tâches précises


You are a timezone conversion engine.
Your task is to:
1. Extract the source datetime from the user's natural language input.
2. Identify the source timezone (explicit or inferred).
3. Convert the datetime into the target timezone.
Rules:
- If the date is ambiguous (e.g., "next Friday"), resolve it relative to the provided datetime.
- If the input cannot be resolved confidently, seek clarification.
→ Exposez cet inviteur pour la tâche de conversion de fuseaux horaires
@mcp.prompt(title="Timezone Conversion")def convert_timezone_prompt(user_input: str) -> str:return f"""You are a timezone conversion engine. Your task is to: 1. Extract the source datetime... Rules: - If the date is ambiguous (e.g., "next Friday"), resolve it relative to the provided datetime. - If the input cannot be resolved confidently, seek clarification. User's timezone conversion request: {user_input}"""
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("Timezone Converter")
# Tools and resources from before...
@mcp.prompt(title="Timezone Conversion")
def convert_timezone_prompt(timezone_request: str) -> str:
# ...
if __name__ == "__main__":
mcp.run(transport="stdio")
async def list_prompts(): """Répertorie tous les inviteurs disponibles depuis le serveur MCP.""" params = StdioServerParameters(command=sys.executable, args=["timezone_server.py"]) async with stdio_client(params) as (reader, writer): async with ClientSession(reader, writer) as session: await session.initialize()# Lister les inviteurs disponibles prompts = await session.list_prompts() print(f"Available prompts: {[p.name for p in prompts.prompts]}")
print(asyncio.run(list_prompts()))
Available prompts: ['convert_timezone_prompt']
Le name de l'inviteur n'est pas le même que son title
@mcp.prompt(title="Timezone Conversion")
def convert_timezone_prompt(timezone_request: str) -> str:
# ...
print(asyncio.run(list_prompts()))
Available prompts: ['convert_timezone_prompt']
Le name de l'inviteur n'est pas le même que son title
# Lister les inviteurs disponibles
prompts = await session.list_prompts()
print(f"Available prompts: {[p.name for p in prompts.prompts]}")
.name est utilisé côté client (pas .title)async def read_prompt(user_input: str, prompt_name: str = "convert_timezone_prompt") -> str: """Récupère un inviteur du serveur MCP avec l'entrée utilisateur.""" params = StdioServerParameters(command=sys.executable, args=["timezone_server.py"]) async with stdio_client(params) as (reader, writer): async with ClientSession(reader, writer) as session: await session.initialize() prompts = await session.list_prompts()# Récupérer l'inviteur if prompts.prompts: prompt = await session.get_prompt(prompt_name, arguments={"timezone_request": user_input})print(f"Prompt result: {prompt.messages[0].content.text}") return prompt.messages[0].content.text
print(asyncio.run(read_prompt(user_input="It is 9:50 AM in the UK in January. What time is
it in Lisbon, Portugal?")))
You are a timezone conversion engine.
Your task is to:
1. Extract the source datetime from the user's natural language input.
2. Identify the source timezone (explicit or inferred).
3. Convert the datetime into the target timezone.
Rules:
- If the date is ambiguous (e.g., "next Friday"), resolve it relative to the...
- If the input cannot be resolved confidently, seek clarification.
User's timezone conversion request: It is 9:50 AM in the UK in January. What time is it in
Lisbon, Portugal?
Introduction au Model Context Protocol (MCP)