Fonctionnement
L’intégration Weave trace automatiquement les principaux composants du Model Context Protocol (MCP) en patchant ses méthodes essentielles avec le décorateurweave.op(). Plus précisément, elle patche des méthodes des 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 aussi bien avec le serveur MCP qu’avec le client MCP. Une fois l’intégration installée, il suffit d’ajouter deux lignes de code pour activer le traçage : l’une pour importerweave, 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-la sur true pour tracer les opérations de listage (list_tools, list_resources et list_prompts) côté serveur comme côté client.
Intégration côté serveur
Consultez 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, l’autre pour initialiser le client. Une fois ces lignes ajoutées, Weave trace automatiquement les opérations sur les outils, les ressources et les prompts.
Intégration côté client
Consultez cette section si vous développez ou instrumentez un client MCP. Côté client, le traçage nécessite lui aussi deux modifications : importer Weave, puis l’initialiser. Weave trace automatiquement tous les appels d’outils, les accès aux ressources et les requêtes de prompts.Tutoriel : exemple mcp_demo
L’exemple mcp_demo illustre l’intégration de MCP et de Weave pour le traçage. Il montre comment instrumenter à la fois les composants client et serveur afin de capturer des traces détaillées de leurs interactions. En exécutant ce code, vous pourrez visualiser les traces des deux côtés d’une application MCP dans l’interface de Weights & Biases, et disposer d’une référence concrète à adapter à vos propres projets.
Exécuter l’exemple
-
Clonez le dépôt de la documentation et accédez à l’exemple
mcp_demo:L’exemple comprend deux fichiers principaux :example_server.py: un serveur MCP de démonstration conçu 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 :
-
Lancez la démonstration :
Cette commande lance à la fois le client et le serveur. Le client ouvre une CLI interactive depuis laquelle vous pouvez tester différentes fonctionnalités.
Commandes du CLI 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 telles que
add(),calculate_bmi(),fetch_weather() - Ressources : des points de terminaison tels que
greeting://{name},config://app,users://{id}/profile - Prompts : des modèles tels que
review_code()etdebug_error()
weave.init().
Le client example_client.py montre comment :
- Se connecter à un serveur MCP.
- Découvrir les outils, ressources et prompts disponibles.
- Appeler des outils avec des paramètres.
- Lire des URI de ressources.
- Générer des prompts avec des arguments.
- Utiliser
weave.op()avec des méthodes et fonctions personnalisées.
FAQ
Cette section répond aux questions fréquentes sur l’intérêt du traçage MCP de Weave et sur la façon de l’utiliser.Pourquoi le traçage MCP est nécessaire
En tant que développeur d’applications LLM, vous appartenez à l’une de ces trois catégories :- 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, voire 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 part essentielle de votre logique côté client consiste à effectuer des appels LLM pour déterminer 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.