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

リモートの Google Cloud MCP サーバーを呼び出すエージェント アプリケーションを構成して、呼び出しのステータスを記録するスパンを生成できるようにします。 ツール呼び出し、メソッド呼び出し、プロンプトとレスポンスを記録するスパンを保存して分析する Cloud Trace を使用して、エージェント アプリケーションの動作を把握できます。

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

ツールについて

ツール を使用すると、エージェントは通常、外部 API とのやり取りによってトレーニング データ以外の情報を収集できます。Google Cloud MCP サーバーを使用すると、エージェント アプリケーションは API メソッドを呼び出す Google Cloud ツールを呼び出すことができます。たとえば、 アプリケーションは 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 リファレンス
Cloud Billing Cloud Billing MCP リファレンス
Policy Troubleshooter Policy Troubleshooter 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 に設定します。これらの手順の 詳細については、 リモート MCP サーバーへの呼び出しを表示するをご覧ください。

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

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

提供する計測サンプルでは、 OpenTelemetry を使用しています。

  • コレクタベースのエクスポートを使用するサンプルについては、以下をご覧ください。

    これらのサンプルでは、 Telemetry API を使用して、 OpenTelemetry Protocol(OTLP)形式の指標データとトレースデータをプロジェクトに送信します。サンプルでは、ログデータに Google Cloud エクスポータを使用します。

  • トレースデータの直接エクスポートを使用して、そのデータを Telemetry API に送信する方法については、 Trace エクスポータから OTLP エンドポイントに移行するをご覧ください。

  • プロンプトとレスポンスを収集するようにエージェント アプリケーションを構成する方法を示すサンプルについては、 生成 AI アプリケーションを計測する方法をご覧ください。