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, which needs to be configured to run with Java 17 or higher.
Installation
This tool can be installed from the UI or the command line.
UI Installation
- Go to Parasoft > Preferences and click System Properties.
- Click Add JARs and choose the com.parasoft.soavirt.tool.mcpclient-<version>.jar file.
- Click Apply.
- 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 Endpoint | Specify the SSE endpoint path. The default is /sse . |
Keep Alive | Specify either 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 For example, in the following scenario, both connections will be kept open after the test run is over:
To fix this, you would set Keep Alive to
|
Request Timeout | Defines 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 ( 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 |
Request Settings
Method | The name of the method to be invoked. The following methods are supported:
|
---|---|
Parameters: name | The name of a tool or prompt (used in tools/call or prompts/get method). |
Parameters: cursor | Optional pagination cursor from a previous list response (used in tools/list , resources/list , or prompts/list method). |
Parameters: uri | The 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 |
Logging Settings
Log Level | Specify how much information you want logged to the console and the Event Monitoring view. The following levels are available:
The default is |
---|
Third-Party Content
This extension includes items that have been sourced from third parties as outlined below:
- jackson-annotations (Apache License 2.0)
- jackson-core (Apache License 2.0)
- jackson-databind (Apache License 2.0)
- MCP Java SDK (MIT License)
- Reactor Core (Apache License 2.0)
- Byte Buddy (Apache License 2.0)
- Reactive Streams (MIT No Attribution)
- SLF4J (MIT License)
Additional license details are available in this extension’s licenses
folder.