You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Introduction

The Parasoft MCP Client adds support for the Model Context Protocol (MCP) in SOAtest. This enables you to take full advantage of SOAtest’s rich interface when configuring, sending, and validating messages sent over MCP. This extension can be used to test a MCP server and supports messages sent over HTTP using Server-Sent Events (SSE).

Requirements

  • MCP server that supports protocol version 2024-11-05 and communicates using HTTP with Server-Sent Events (SSE) transport.
  • This tool requires SOAtest/Virtualize 2024.1 or later.

Installation

This tool can be installed from the UI or the command line.

UI Installation

  1. Go to Parasoft > Preferences and click System Properties.
  2. Click Add JARs and choose the com.parasoft.soavirt.tool.mcpclient-<version>.jar file.
  3. Click Apply.
  4. Restart SOAtest/Virtualize.

Command Line Installation

Add the com.parasoft.soavirt.tool.mcpclient-<version>.jar file to the system.properties.classpath property in your settings properties file. For example:

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

Usage

MCP clients can be added as standalone tools with the SOAtest Add Test wizard. They can also be added as Virtualize provisioning action tools. Before the client can be run, the connection and request must be configured. Once a MCP client is added to a suite, a Traffic Viewer can be added as a Traffic output or any JSON tool can be added as a Response output.

Configuration

You can configure the following settings on the Tool Settings.

Connection Settings

Base URL

Specify the base URL for the MCP server.

This is required to create a new connection. After the initial connection is created, you can use the connection ID to control which connection you want to work with.

SSE EndpointSpecify the SSE endpoint path. The default is /sse.
Keep Alive

Specify either true or false to keep connection open or close connection after test execution. The default is false.

The MCP client allows multiple active connections to be used. If the connection ID matches the ID for a connection that is already open, that connection will be reused. If the connection ID matches an ID for a connection that has been closed or has never been used to open a connection previously, a new connection will be created.

If Keep Alive is true, SOAtest will not close the connection at the end of that test’s execution. If Keep Alive is false, SOAtest will close the connection at the end of that test’s execution. Unlike built-in transports, there is no final cleanup of open connections for this custom tool when execution is finished, so you should set Keep Alive to false for the last test of a given connection. If this is not done, the connection will stay open.

For example, in the following scenario, both connections will be kept open after the test run is over:

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

To fix this, you would set Keep Alive to false for the last test that uses a particular connection:

  • Connection A (Keep Alive: true)
  • Connection B (Keep Alive: true)
  • Connection A (Keep Alive: false)
  • Connection B (Keep Alive: false)
Request TimeoutDefines the maximum seconds to wait for server responses before timing out requests. The default is 20.
Connection ID

Specify a connection ID if you are testing multiple connections. Any string can be used for connection IDs.

If you specify a connection ID that references an already open connection, as well as a connection endpoint (a combination of Base URL and SSE Endpoint), the connection endpoint will be ignored because the connection will already be open.

You do not need to set the connection ID if you are working with a single connection within a test suite, SOAtest will use the default value (<default>) for the connection ID.

However, if you want to open and send/receive messages on multiple connections within the same scenario, you need to specify unique connection IDs for each of them.

The default is <default>.

Request Settings

Method

The name of the method to be invoked. The following methods are supported:

  • tools/list
  • tools/call
  • resources/list
  • resources/read
  • prompts/list
  • prompts/get
Parameters: nameThe name of a tool or prompt (used in tools/call or prompts/get method).
Parameters: cursorOptional pagination cursor from a previous list response (used in tools/list, resources/list, or prompts/list method).
Parameters: uriThe URI of a resource (used in resources/read method).
Parameters: argument 1 to Parameters: argument 10

These fields configure arguments that should be sent as part of the request.

You can configure up to ten arguments. Arguments are configured using a name=value format. (The value can be a JSON structure.) For example, message="hello" and entities=[{"name":"John_Smith","entityType":"person","observations":["Speaks fluent Spanish"]}].

Logging Settings

Log Level

Specify how much information you want logged to the console and the Event Monitoring view. The following levels are available:

  • 1: error
  • 2: warn
  • 3: info
  • 4: debug

The default is 2.

Third-Party Content

This extension includes items that have been sourced from third parties as outlined below:

Additional license details are available in this extension’s licenses folder.

  • No labels