Implementer un client MCP
Le client MCP permet a votre application de communiquer avec le serveur MCP et d’acceder a ses fonctionnalites.
Architecture du client
Le client MCP est compose de :
- MCP Client : classe personnalisee pour simplifier l’utilisation
- Client Session : la connexion reelle au serveur (fournie par le SDK)
La session necessite un nettoyage des ressources, d’ou l’encapsulation dans une classe personnalisee.
Fonction list_tools
async def list_tools(self) -> list[types.Tool]:
result = await self.session().list_tools()
return result.tools
Fonction call_tool
async def call_tool(
self, tool_name: str, tool_input: dict
) -> types.CallToolResult | None:
return await self.session().call_tool(tool_name, tool_input)
Test du client
Executer uv run mcp_client.py doit retourner la liste des outils disponibles avec leurs descriptions et schemas.
Test bout en bout
En demandant a Claude “Quel est le contenu du document report.pdf ?” :
- La liste des outils est envoyee a Claude
- Claude decide d’utiliser
read_doc_contents - Le client appelle l’outil sur le serveur
- Le serveur retourne le contenu du document
- Claude repond avec l’information
Le client agit comme un pont entre votre code applicatif et le serveur MCP.