Appeler des outils côté serveur
Passons maintenant au déclenchement d'appels d'outils sur le serveur depuis votre client ! Là encore, vous utiliserez des opérations asynchrones pour éviter tout blocage ou gel en attendant la fin d'autres opérations.
Cet exercice fait partie du cours
<cours>Introduction au Model Context Protocol (MCP)</cours>Instructions de l’exercice
- Appelez l'outil avec les paramètres
tool_nameetargumentsfournis par l'utilisateur ; assurez-vous que l'appel se met en pause pour attendre la réponse du serveur en utilisant le mot-clé Python approprié. - Extrayez et affichez le contenu texte de la réponse du serveur.
- Exécutez l'outil
"convert_currency"avec un ensemble de paramètres valides (utilisez les valeurs et devises de votre choix).
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client
async def call_mcp_tool(tool_name: str, arguments: dict) -> str:
params = StdioServerParameters(
command=sys.executable,
args=["currency_server.py"],
)
async with stdio_client(params) as (reader, writer):
async with ClientSession(reader, writer) as session:
await session.initialize()
# Call the currency conversion tool
result = ____ ____(tool_name, arguments)
# Extract and print the text content of the server response
text_content = result.____[0].____
print(f"Conversion Result: {text_content}")
return text_content
# Run the "convert_currency" tool
asyncio.run(
call_mcp_tool("convert_currency",
{"amount": 250.0, "from_currency": "USD", "to_currency": "EUR"})
)