Aller au contenu principal

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 ?” :

  1. La liste des outils est envoyee a Claude
  2. Claude decide d’utiliser read_doc_contents
  3. Le client appelle l’outil sur le serveur
  4. Le serveur retourne le contenu du document
  5. Claude repond avec l’information

Le client agit comme un pont entre votre code applicatif et le serveur MCP.