Fonctionnement
L’intégration Weave trace automatiquement les composants clés du Model Context Protocol (MCP) en patchant les méthodes de base avec le décorateurweave.op(). Plus précisément, elle patche des méthodes dans les classes mcp.server.fastmcp.FastMCP et mcp.ClientSession.
Grâce à cette intégration, Weave trace les composants MCP suivants :
Utiliser l’intégration
L’intégration Weave fonctionne à la fois avec le serveur MCP et le client. Une fois installée, vous pouvez activer Tracing avec deux lignes de code supplémentaires : l’une pour importerweave, et l’autre pour l’initialiser.
Prérequis
Avant de commencer, installez les paquets requis :Configuration
Configurez l’intégration MCP à l’aide de la variable d’environnementMCP_TRACE_LIST_OPERATIONS. Définissez cette variable sur true pour activer le Tracing des opérations de liste (list_tools, list_resources et list_prompts) côté serveur et côté client.
Intégration côté serveur
Utilisez cette section si vous développez ou instrumentez un serveur MCP. Pour tracer un serveur MCP, ajoutez deux lignes à votre configurationFastMCP existante : l’une pour importer Weave et l’autre pour initialiser le client. Une fois ces lignes ajoutées, Weave trace automatiquement les opérations d’outil, de ressource et de prompt.
Intégration côté client
Utilisez cette section si vous développez ou instrumentez un client MCP. Côté client, le tracing exige également deux changements : importer Weave et l’initialiser. Weave trace automatiquement tous les appels d’outil, les accès aux ressources et les requêtes de prompt.Tutoriel : exemple mcp_demo
L’exemple mcp_demo présente une intégration entre le Model Context Protocol (MCP) et Weave pour le Tracing. Il montre comment instrumenter à la fois les composants client et serveur afin de capturer des traces détaillées de leurs interactions. En parcourant ce code, vous pouvez voir les traces des deux côtés d’une application MCP dans l’interface Weave et disposer d’une référence concrète à adapter à vos propres projets.
Exécuter l’exemple
-
Clonez le dépôt de documentation, puis accédez à l’exemple
mcp_demo:L’exemple comprend deux fichiers principaux :example_server.py: un serveur MCP de démonstration créé avecFastMCP. Il définit des outils, des ressources et des prompts.example_client.py: un client qui se connecte au serveur et interagit avec ses composants.
-
Installez manuellement les dépendances requises :
-
Exécutez la démonstration :
Cette commande lance à la fois le client et le serveur. Le client démarre un CLI interactif dans lequel vous pouvez tester différentes fonctionnalités.
Commandes CLI du client
L’interface client prend en charge les commandes suivantes :Aperçu de l’exemple
Le serveurexample_server.py définit les éléments suivants :
- Outils : des fonctions comme
add(),calculate_bmi(),fetch_weather() - Ressources : des endpoints comme
greeting://{name},config://app,users://{id}/profile - Prompts : des modèles comme
review_code()etdebug_error()
weave.init().
Le client example_client.py montre comment :
- Se connecter à un serveur MCP.
- Découvrir les outils, les ressources et les prompts disponibles.
- Appeler des outils avec des paramètres.
- Lire des données à partir d’URI de ressources.
- Générer des prompts avec des arguments.
- Illustrer l’utilisation de
weave.op()avec des méthodes et des fonctions personnalisées.
FAQ
La section suivante répond aux questions fréquentes sur l’intérêt du tracing MCP de Weave et sur son utilisation.Pourquoi le tracing MCP est-il nécessaire ?
En tant que développeur d’applications LLM, vous appartenez à l’une des trois catégories suivantes :- Développeur côté serveur MCP : vous souhaitez exposer plusieurs outils, ressources et prompts au client MCP. Vous exposez les outils et les ressources de votre application existante, ou vous avez créé des agents ou disposez de plusieurs agents orchestrés par un agent orchestrateur.
- Développeur côté client MCP : vous souhaitez connecter votre application côté client à plusieurs serveurs MCP. Une partie essentielle de votre logique côté client consiste à effectuer des appels LLM pour décider quel outil appeler ou quelle ressource récupérer.
- Développeur serveur et client MCP : vous développez à la fois le serveur et le client.
- Itérer sur votre application.
- Auditer le flux de travail ou la logique d’exécution.
- Identifier les goulots d’étranglement.