はじめに

Parasoft MCP Client は、SOAtest に Model Context Protocol (MCP) のサポートを追加します。MCP を介して送られるメッセージを設定、送信、検証するときに、SOAtest の豊かなインターフェイスをフルに活用できます。この拡張機能は MCP サーバーをテストするために使用でき、Server-Sent Events (SSE) を使用した HTTP または Streamable HTTP 経由で送信されるメッセージをサポートします。

前提条件

  • MCP サーバーは、プロトコル バージョン 2025-03-26 (推奨) または 2024-11-05 (レガシー) をサポートし、トランスポート タイプの構成に基づいて次のいずれかのトランスポート メカニズムを使用して通信する必要があります。
    • Streamable: Streamable HTTP トランスポート (2025年3月26日)
    • SSE: Server-Sent Events (SSE) トランスポートを使用した HTTP (2024-11-05)
  • このツールを使用するには、SOAtest/Virtualize 2024.1 以降が必要です。SOAtest/Virtualize は、Java 17 以降で実行するように構成する必要があります。

インストール手順

このツールは UI またはコマンドラインからインストールできます。

UI からのインストール

  1. [Parasoft ] > [設定] を選択し、[システム プロパティ] をクリックします。
  2. [JAR の追加] をクリックし、com.parasoft.soavirt.tool.mcpclient-<version>.jar ファイルを選択します。
  3. [適用] をクリックします。
  4. SOAtest/Virtualize を再起動します。

コマンドラインからのインストール

設定プロパティ ファイルの system.properties.classpath プロパティに com.parasoft.soavirt.tool.mcpclient-<version>.jar ファイルを追加します。例:

system.properties.classpath=<PATH_TO_JAR>/com.parasoft.soavirt.tool.mcpclient-<version>.jar

使用方法

MCP Client は、SOAtest の [テストの追加] ツールからスタンドアロンツールとして追加できます。また、Virtualize のセットアップ アクション ツールとして追加することも可能です。クライアントを実行する前に、接続とリクエストを構成する必要があります。MCP Client をスイートに追加すると、トラフィック出力としてトラフィック ビューアーを追加したり、レスポンス出力として任意の JSON ツールを追加したりできます。

設定

ツール設定では以下の設定を行うことができます。

接続の設定

Endpoint

MCP サーバーのエンドポイントを http(s)://host[:port]/path の形式で指定します。これは新しい接続を作成するために必要です。初期接続を作成したら、接続ID を使ってどの接続を使用するかを制御できます。

ツールはデフォルトでエンドポイントを 2 つの部分に分割します。

  • ベース URL: http(s)://host[:port]
  • SSE エンドポイント: /path

ベース URL がホスト名とポートだけではない場合は、以下の注意を参照してください。

例:

  • エンドポイント: http://localhost:8080/sse

結果:

  • ベース URL: http://localhost:8080
  • SSE エンドポイント: /sse

注意: このツールは、エンドポイントのベース URL がホスト名とポートのみで構成され、それ以外はすべて SSE エンドポイントであると想定しています。状況がそうでない場合は、以下で説明するシステム プロパティを使用してベース URL を適切に定義し、エンドポイントが正しく分割されるようにしてください。

-J-Dcom.parasoft.soavirt.tool.mcpclient.baseurl=<BASE_URL> 

Transport Type

クライアントとサーバー間の通信のトランスポート メカニズムを指定します。以下のトランスポート タイプが利用可能です。

  • streamable: Streamable HTTP トランスポート
  • sse: Server-Sent Events (SSE) トランスポートを備えた HTTP

デフォルトは streamable です。

Keep Alive

テスト実行後に接続を開いたままにするか閉じるかを指定するには、true または false を指定します。デフォルトは false です。

MCP Client は、複数のアクティブな接続の使用を許可します。すでにオープンしている接続の ID に接続 ID が一致する場合、その接続は再利用されます。クローズした接続の ID 、あるいは接続のオープンに一度も使用されていない接続の ID に接続 ID が一致する場合、新しい接続が作成されます。

[Keep Alive] が true の場合、SOAtest はテスト実行の終了時に接続をクローズしません。[Keep Alive] が false の場合、SOAtest はテスト実行の終了時に接続をクローズします。ビルトイン トランスポートと異なり、このカスタム ツールの場合、実行の完了時にオープンしている接続のクリーンアップは行われません。そのため、接続の最後のテストについて [Keep Alive] を false に設定するべきです。有効化しない場合、接続はオープンのままになります。

たとえば、以下のシナリオでは、テスト実行が終わった後、両方の接続がオープンのままになります。

  • Connection A (Keep Alive: true)
  • Connection B (Keep Alive: true)
  • Connection A (Keep Alive: true)
  • Connection B (Keep Alive: true)

これを修正するには、特定の接続を使用する最後のテストに対して [Keep Alive] を false に設定します。

  • Connection A (Keep Alive: true)
  • Connection B (Keep Alive: true)
  • Connection A (Keep Alive: false)
  • Connection B (Keep Alive: false)
Request Timeoutリクエストがタイムアウトする前にサーバーの応答を待機する最大秒数を定義します。デフォルトは 20 です。
Connection ID

複数の接続をテストしている場合、接続 ID を指定します。接続 ID には任意の文字列を使用できます。

すでに開いている接続を参照する接続 ID に加えて、エンドポイント、リクエスト タイムアウト、ベアラー トークン、Basic 認証ユーザー名、または Basic 認証パスワードを指定した場合、接続がすでに開いているため、エンドポイント、リクエスト タイムアウト、ベアラー トークン、Basic 認証ユーザー名、または Basic 認証パスワードは無視されます。

テスト スイートで1 つの接続だけを使用している場合、接続 ID を指定する必要はありません。SOAtest は接続 ID にデフォルト値 (<default>) を使用します。

ただし、同じシナリオで複数の接続をオープンしてメッセージを送受信したい場合、接続ごとに固有の接続 ID を指定する必要があります。

デフォルトは <default> です。

Bearer Token

OAuth 認証を使用する MCP サーバーへの認証に使用する OAuth 2.0 アクセス トークンを指定します。OAuth 認証が不要な場合は、このフィールドを空白のままにしてください。このフィールドを指定すると、Basic 認証ユーザー名と Basic 認証パスワードのフィールドは無視されます。

Basic Auth Username

Basic 認証を使用する MCP サーバーへの認証に使用するユーザー名を指定します。Basic 認証が不要な場合は、このフィールドを空白のままにしてください。ベアラー トークン フィールドが指定されている場合、このフィールドは無視されます。

Basic Auth Password

Basic 認証を使用する MCP サーバーへの認証に使用するパスワードを指定します。Basic 認証が不要な場合は、このフィールドを空白のままにしてください。ベアラー トークン フィールドが指定されている場合、このフィールドは無視されます。

リクエストの設定

Method

呼び出すメソッドの名前。以下のメソッドがサポートされています。

  • tools/list
  • tools/call
  • resources/list
  • resources/read
  • prompts/list
  • prompts/get
Parameters: nameツールまたはプロンプトの名前 (tools/call または prompts/get メソッドで使用)。
Parameters: cursor前回のリスト レスポンスから取得されたオプションのページ区切りカーソル (tools/list、resources/list、または prompts/list メソッドで使用)。
Parameters: uriリソースの URI (resources/read メソッドで使用)。
Parameters: argument 1 to 10

これらのフィールドは、リクエストの一部として送信される引数を設定します。

最大 10 個の引数を設定できます。引数は name=value 形式で設定します。(値は JSON 構造にすることができます。)例えば、message="hello" および entities=[{"name":"John_Smith","entityType":"person","observations":["Speaks fluent Spanish"]}]

Logging 設定

Log Level

コンソールと[モニターの開始] ビューに表示する情報の量を指定します。以下のレベルを指定できます。

  • 1: エラー
  • 2: 警告
  • 3: 通知
  • 4: デバッグ

デフォルトは 2 です。

変更ログ

1.2

  • ストリーミング可能な HTTP トランスポートのサポートが追加されました。

1.1

  • OAuth 認証と Basic 認証のサポートを追加しました。
  • 分離されていたベース URL と SSE エンドポイント設定フィールドを 1 つのエンドポイント設定フィールドに統合しました。

1.0

  • 初回リリース。

サード パーティのコンテンツ

この拡張機能は、以下のサード パーティのコンテンツを含みます。

その他のライセンスの詳細については、拡張機能の licenses フォルダーを参照してください。

  • No labels