Trace を使用して MCP 呼び出しを調査する

Cloud Trace は、ツール呼び出し、メソッド呼び出し、プロンプトとレスポンスなどのデータを収集して表示し、エージェント アプリケーションの動作を把握できるようにします。このドキュメントでは、リモート Google Cloud MCP サーバーを呼び出すエージェント アプリケーションを構成して、これらのサーバーが呼び出しのステータスを記録するスパンを生成できるようにする方法について説明します。

スパンは、より大きなエンドツーエンドのオペレーションの一部である単一の関数またはオペレーションを記録します。トレースは、単一のエンドツーエンドのオペレーションを表し、スパンで構成されます。したがって、トレースは呼び出された関数のシーケンスと全体的なレイテンシに関する情報を提供し、スパンは特定の関数のステータスとレイテンシに関する情報を提供します。

ツールについて

ツールを使用すると、エージェントは通常、外部 API とのやり取りによって、トレーニング データ以外の情報を収集できます。Google Cloud MCP サーバーを使用すると、エージェント アプリケーションは Google Cloud API メソッドを呼び出すツールを呼び出すことができます。たとえば、アプリケーションで list_log_entries ツールを呼び出して、最近のログデータを取得できます。

Model Context Protocol(MCP)は、AI エージェントが外部のツール、データソース、リソースと通信してやり取りするための標準化された方法を定義する仕様です。MCP サーバーを提供するプロダクトと、そのリファレンス ドキュメントへのリンクの完全なリストについては、サポートされているプロダクトをご覧ください。

トレース コンテキストを MCP サーバーに渡す方法

list_log_entries のドキュメントなどの MCP リファレンス ページには、ツールに HTTP リクエストを送信するために使用できる curl コマンドの例が記載されています。リクエストで送信される JSON ペイロードは次のようになります。

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

name フィールドの値には、list_log_entries などのツール名が一覧表示されます。arguments フィールドには、リクエストを完了するためにオペレーションで必要な情報が含まれます。

MCP 標準では、クライアントとサーバーがやり取りにメタデータを付加できる _meta フィールドが定義されています。クライアントとサーバーは、このフィールドを使用してトレース コンテキストを渡すことができます。

{
  "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
}

_meta データには、traceparent フィールドが含まれています。このフィールドの値の形式は、World Wide Web Consortium(W3C)の traceparent ヘッダーで定義されています。値には次のものが含まれます。

  • traceparent 仕様のバージョン(00)。
  • トレースの ID(TRACE_ID)。
  • 呼び出し元スパンの ID(PARENT_SPAN_ID)。
  • 呼び出し元スパンがリクエストをサンプリングしたかどうかを指定します(SAMPLED_FLAG)。このフィールドの値は、サンプリングされた場合は 01、サンプリングされなかった場合は 00 になります。

tracestate フィールドには、ベンダー固有のトレース情報が含まれます。

制限事項

  • トレース コンテキストは W3C トレース コンテキスト標準に準拠し、sampled フラグを 1 に設定する必要があります。

  • リモートの Google Cloud MCP サーバーは、tools/call オペレーションに対して単一のスパンを生成できますが、他のタイプのオペレーションや tools/call オペレーションの子スパンは生成しません。

  • リモート Google Cloud MCP サーバーは、リクエストが認証され、承認され、他の内部チェックに合格した場合にのみスパンを生成します。

トレースをサポートする MCP サーバー

このセクションでは、トレースをサポートするリモートの Google と Google Cloud MCP サーバーを一覧表示します。また、セルフホスト MCP サーバーでトレース スパンを生成する方法についても説明します。

セルフホスト型サーバー

セルフホスト MCP サーバーを計測して、テレメトリー データを Google Cloud プロジェクトに送信することをおすすめします。Python を使用すると、計測で tools/call オペレーションのスパンを生成できます。詳細については、OpenTelemetry を使用してセルフホスト型 MCP サーバーを計測するをご覧ください。

トレースをサポートするリモート Google と Google Cloud MCP サーバー

次のプロダクトには、リモート MCP サーバーが tools/call オペレーションのトレース スパンを生成できるインテグレーションが含まれています。

プロダクト リファレンス
Cloud Logging Cloud Logging MCP リファレンス
Cloud Monitoring Cloud Monitoring MCP リファレンス
マップ Grounding Lite マップ Grounding Lite MCP リファレンス
GKE GKE MCP リファレンス
Cloud Run Cloud Run MCP リファレンス
Compute Engine Compute Engine MCP リファレンス
Google Security Operations Google SecOps MCP リファレンス
AlloyDB for PostgreSQL AlloyDB for PostgreSQL MCP リファレンス
エージェント検索 エージェント検索 MCP リファレンス
Cloud SQL
BigQuery BigQuery MCP リファレンス
Personalized Service Health Personalized Service Health MCP リファレンス

アプリケーションの構成方法

_meta フィールドを使用してトレース コンテキストを渡すフレームワークまたは SDK を使用できます。これらのフレームワークと SDK には、MCP の OpenTelemetry セマンティック規約をサポートするものも含まれます。

たとえば、Agent Development Kit(ADK)フレームワークを使用できます。詳細については、OpenTelemetry を使用して ADK アプリケーションを計測するをご覧ください。

スパンを表示する方法

トレースデータを表示するには、Trace エクスプローラを使用します。このページでは、トレースデータの集計情報を表示し、個々のトレースとスパンを調べることができます。詳細については、トレースを検索して調査するをご覧ください。

MCP サーバーによって書き込まれたスパンを表示するには、スパン名でトレースデータをフィルタします。たとえば、一部のリモート Google Cloud MCP サーバーは、tools/call オペレーションを受信するとトレース スパンを生成できます。これらのスパンには、次の命名規則が適用されます。

tools/call NAME

上記の式で、NAME は呼び出されたエンドポイントを指します。たとえば、list_keys のようなものになります。この命名規則は、MCP の OpenTelemetry セマンティック規則で定義されています。

これらのスパンを見つけるには、フィルタバーを使用してmcp.method.name の属性フィルタを追加します。フィルタの値を tools/call に設定します。

インストルメンテーションのサンプル

計測手法の推奨事項については、計測方法を選択するをご覧ください。

提供するインストルメンテーションのサンプルでは、OpenTelemetry を使用しています。