Fonctionnement
weave.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
weave, et l’autre pour l’initialiser.
Prérequis
Configuration
MCP_TRACE_LIST_OPERATIONS: définissez cette variable surtruepour activer le Tracing des opérations de liste (list_tools,list_resourcesetlist_prompts) côté serveur et côté client.
Intégration côté serveur
FastMCP existante : une pour importer Weave et une pour initialiser le client. Une fois ces lignes ajoutées, les opérations sur les outils, les ressources et les prompts seront automatiquement tracées.
Intégration côté client
Tutoriel : exemple mcp_demo
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.
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
| Commande | Description |
|---|---|
tools | Lister les outils disponibles |
resources | Lister les ressources disponibles |
prompts | Lister les prompts disponibles |
add <a> <b> | Additionner deux nombres |
bmi <weight> <height> | Calculer l’indice de masse corporelle |
weather <city> | Obtenir les données météo d’une ville |
greeting <name> | Obtenir une salutation personnalisée |
user <id> | Récupérer le profil d’un utilisateur |
config | Récupérer la configuration de l’application |
code-review <code> | Générer un prompt de revue de code |
debug <error> | Générer un prompt de débogage |
demo | Exécuter une démo complète de toutes les fonctionnalités disponibles. Cette commande exécute chaque fonctionnalité dans l’ordre et produit une chronologie complète des interactions dans la Weave UI. |
q | Quitter la session |
Comprendre l’exemple
example_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 ou fonctions personnalisées.
FAQ
Pourquoi le tracing MCP est-il nécessaire ?
- Développeur côté serveur MCP : vous souhaitez exposer plusieurs outils, ressources et prompts au client MCP. Vous exposez les outils, les ressources, etc. 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 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.
- D’itérer rapidement sur votre application
- D’auditer le flux de travail ou la logique d’exécution
- D’identifier les goulots d’étranglement