Examiner les appels MCP à l'aide de Trace

Vous pouvez configurer vos applications agentiques qui appellent des serveurs MCP Google Cloud distants pour permettre à ces serveurs de générer des étendues qui enregistrent l'état des appels. Vous pouvez ensuite utiliser Cloud Trace, qui stocke et analyse les étendues enregistrant les appels d'outils, les appels de méthodes, ainsi que les requêtes et les réponses, pour vous aider à comprendre le comportement de vos applications agentiques.

Une étendue enregistre une seule fonction ou opération qui fait partie d'une opération de bout en bout plus importante. Une trace représente une seule opération de bout en bout et est composée d'étendues. Par conséquent, une trace fournit des informations sur la séquence des fonctions appelées et la latence globale, tandis qu'une étendue fournit des informations sur l'état et la latence d'une fonction spécifique.

À propos des outils

Les outils permettent à un agent de collecter des informations en dehors de ses données d'entraînement, généralement en interagissant avec des API externes. Avec les serveurs MCP Google Cloud, vos applications agentiques peuvent appeler des outils qui appellent Google Cloud des méthodes d'API. Par exemple, votre application peut appeler l'outil list_log_entries pour récupérer les données de journal récentes.

Le protocole MCP (Model Context Protocol) est une spécification qui définit une manière standardisée pour les agents d'IA de communiquer et d'interagir avec des outils, des sources de données et des ressources externes. Pour obtenir la liste complète des produits qui fournissent un serveur MCP et des liens vers leur documentation de référence, consultez Produits compatibles.

Comment le contexte de trace est transmis à un serveur MCP

Les pages de référence MCP, telles que la documentation de list_log_entries, fournissent un exemple curl command que vous pouvez utiliser pour envoyer des requêtes HTTP à l'outil. La charge utile JSON envoyée dans la requête est semblable à la suivante :

{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "NAME",
    "arguments": {
      // provide these details according to the tool's MCP specification
    }
  },
  "id": 1
}

La valeur du champ name indique le nom de l'outil, tel que list_log_entries. Le champ arguments contient les informations requises par l'opération pour exécuter la requête.

La norme MCP définit un _meta champ, qui permet aux clients et aux serveurs d'associer des métadonnées à leurs interactions. Les clients et les serveurs peuvent utiliser ce champ pour transmettre le contexte de trace :

{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "NAME",
    "arguments": {
      // provide these details according to the tool's MCP specification
    },
    "_meta": {
        "traceparent": "00-TRACE_ID-PARENT_SPAN_ID-SAMPLED_FLAG",
        "tracestate": "Vendor specific information."
      },
  },
  "id": 1
}

Les données _meta incluent un champ traceparent. Le format de la valeur de ce champ est défini par le World Wide Web Consortium (W3C) traceparent en-tête. La valeur inclut les éléments suivants :

  • Version de la spécification traceparent (00).
  • ID de la trace (TRACE_ID).
  • ID de l'étendue appelante (PARENT_SPAN_ID).
  • Indique si le segment appelant a échantillonné la requête (SAMPLED_FLAG). Ce champ a la valeur 01 lorsqu'il est échantillonné et 00 lorsqu'il ne l'est pas.

Le champ tracestate contient des informations de traçage spécifiques au fournisseur.

Limites

  • Le contexte de trace doit respecter la norme W3C Trace Context, et l'indicateur sampled doit être défini sur 1.

  • Les serveurs MCP Google Cloud distants peuvent générer une seule étendue pour une opération tools/call, mais ils ne génèrent pas d'étendues pour d'autres types d'opérations ni d'étendues enfants pour l'opération tools/call.

  • Les serveurs MCP Google Cloud distants ne génèrent une étendue que lorsque la requête est authentifiée, autorisée et qu'elle réussit d'autres vérifications internes.

Serveurs MCP compatibles avec le traçage

Cette section répertorie les serveurs Google et Google Cloud MCP distants compatibles avec le traçage. Elle explique également comment vos serveurs MCP auto-hébergés peuvent générer des étendues de trace.

Serveurs auto-hébergés

Nous vous recommandons d'instrumenter vos serveurs MCP auto-hébergés pour envoyer des données de télémétrie à votre Google Cloud projet. Si vous utilisez Python, l'instrumentation peut générer des étendues pour les opérations tools/call. Pour en savoir plus, consultez Instrumenter un serveur MCP auto-hébergé avec OpenTelemetry.

Serveurs Google et Google Cloud MCP distants compatibles avec le traçage

Les produits suivants contiennent une intégration qui permet à leur serveur MCP distant de générer une étendue de trace pour une opération tools/call :

Produit Référence
Cloud Logging Référence MCP de Cloud Logging
Cloud Monitoring Référence MCP de Cloud Monitoring
Maps Grounding Lite Référence MCP de Maps Grounding Lite
GKE Référence MCP de GKE
Cloud Run Référence MCP de Cloud Run
Compute Engine Référence MCP de Compute Engine
Google Security Operations Référence MCP de Google SecOps
AlloyDB pour PostgreSQL Référence MCP d'AlloyDB pour PostgreSQL
Agent Search Référence MCP d'Agent Search
Cloud SQL
BigQuery Référence MCP de BigQuery
Personalized Service Health Référence MCP de Personalized Service Health
Cloud Billing Référence MCP de Cloud Billing
Policy Troubleshooter Référence MCP de Policy Troubleshooter
Managed Service pour Apache Airflow Référence MCP de Managed Service pour Apache Airflow
Datastream Référence MCP de Datastream
Policy Analyzer Référence MCP de Policy Analyzer

Configurer votre application

Vous pouvez utiliser n'importe quel framework ou SDK qui transmet le contexte de trace à l'aide du _meta champ. Ces frameworks et SDK incluent ceux qui sont compatibles avec les conventions sémantiques OpenTelemetry pour MCP.

Par exemple, vous pouvez utiliser le framework Agent Development Kit (ADK). Pour en savoir plus, consultez Instrumenter des applications ADK avec OpenTelemetry.

Afficher les étendues

Pour afficher vos données de trace, utilisez l'explorateur Trace. Cette page vous permet d'afficher des informations agrégées sur vos données de trace, ainsi que d'explorer des traces et des étendues individuelles. Pour en savoir plus, consultez Rechercher et explorer des traces.

Pour afficher les segments écrits par les serveurs MCP, filtrez vos données de trace par nom de segment. Par exemple, certains serveurs MCP Google Cloud distants peuvent générer une étendue de trace lorsqu'ils reçoivent une opération tools/call. Ces étendues suivent la convention d'attribution de noms suivante :

tools/call NAME

Dans l'expression précédente, NAME fait référence à l'outil appelé, par exemple, list_keys. Cette convention d'attribution de noms est définie par les conventions sémantiques OpenTelemetry pour MCP.

Pour trouver ces étendues, utilisez la barre de filtre et ajoutez un filtre d'attribut pour mcp.method.name. Définissez la valeur du filtre sur tools/call. Pour obtenir des informations détaillées sur ces étapes, consultez Afficher les appels aux serveurs MCP distants.

Exemples d'instrumentation

Pour obtenir des recommandations sur l'instrumentation, consultez Choisir une approche d'instrumentation.

Les exemples d'instrumentation que nous fournissons utilisent OpenTelemetry :

  • Pour les exemples qui utilisent une exportation basée sur un collecteur, consultez les éléments suivants :

    Ces exemples envoient des données de métriques et de traces au format OpenTelemetry Protocol (OTLP) à votre projet à l'aide de l' API Telemetry. Les exemples utilisent un Google Cloud exportateur pour les données de journal.

  • Pour savoir comment utiliser une exportation directe des données de trace et envoyer ces données à l'API Telemetry, consultez Migrer de l'exportateur Trace vers le point de terminaison OTLP.

  • Pour obtenir des exemples qui vous montrent comment configurer une application agentique afin de collecter des requêtes et des réponses, consultez Instrumenter vos applications d'IA générative.