はじめに

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

前提条件

インストール手順

このツールは 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

例:

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

結果:

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

このルールが要件を満たさない場合は、次のシステムプロパティを設定してベース URL をオーバーライドできます。ツールはそれに応じて SSE エンドポイントを導出します。

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

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 Parameters: argument 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.1

1.0

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

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

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