You can configure AI-powered code editing tools like Copilot and Windsurf to use Virtualize as a Model Context Protocol (MCP) server. Once configured, those tools can use Virtualize directly. This works with the SOAVirt WAR and the Virtualize desktop server. This feature requires a license that has "MCP Server" enabled.
MCP Tools Available in Virtualize
The following tools are available. You can also see a list of available tools in your MCP client.
- getStatus: Gets basic API user and server status info.
- getStatusHealth: Retrieves server health metrics (CPU, memory, disk, threads).
- runRestClient: Runs REST Client (GET only) against a URL.
- manageVirtualServices: Creates virtual services on the Parasoft Virtualize server as well as lists, updates, describes, and deletes virtual services created via MCP. If your LLM supports sampling and your MCP tool has permission to use it, you should see much better sample values in your requests and responses.
Example Prompts
The following table provides some example prompts that you might use with your AI-powered code editing tool, once you have configured it with the MCP server endpoint, to satisfy common use cases. Notice that you do not have to specify the tools you want to use by name; the AI will usually figure it out from your plain-language request. If it's struggling with this, it can be helpful to use words that point it toward the tool you expect it to use.
| Use Case: You want to... | Example Prompt | Notes | |
|---|---|---|---|
| 1 | Verify connection to the SOAtest MCP server | "Get the SOAtest server information." | |
| 2 | Perform an HTTP GET on an endpoint and get the response | "GET http://localhost:8080/parabank/services/bank/customers/12212/accounts with SOAtest" | Using "SOAtest" in the prompt can help the LLM know to use this MCP server instead of another that might also be registered. |
| 3 | Leverage AI to validate an assertion on the content of the response traffic | "Assert that none of the accounts have a negative balance." | This is a follow-up prompt to use case 2. Using keywords in the prompt can help the LLM know which tool you want it to use (in this case, using the word "assert" to point it to the AI Assertor). |
| 4 | Create a virtual service | "Create a virtual service named myService from the files in myFolder." | Replace "myService" and "myFolder" with names appropriate to your request. You should have the folder open in your IDE workspace or provide an absolute path to the file folder. |
| 5 | Update a virtual service | "Update the virtual service named myService with files in myFolder2." | This is a follow-up prompt to use case 4. Replace "myService" and "myFolder2" with names appropriate to your request. You should have the folder open in your IDE workspace or provide an absolute path to the file folder. |
| 6 | Create a virtual service on a specific port | "Create a virtual service named myService from the files in myFolder on port 5555." | Replace "myService", "myFolder", and "5555" with names and port number appropriate to your request. You should have the folder open in your IDE workspace or provide an absolute path to the file folder. If there is already a HTTP message proxy listening to the specified port and forwarding to a path inside Virtualize, the new service will be deployed on that path and provide content for that proxy. |
| 7 | Get information about a virtual service | "Describe the myService virtual service." | Replace "myService" with the name of the service appropriate to your request. Only works on virtual services created via MCP. |
| 8 | Create a virtual service from a service definition | "Create a virtual service called bankingApp using a service definition at http://localhost:8080/parabank/services/bank/openapi.yaml." or "Create a virtual service called demoApp using service definition c:\temp\demo-app-v1.json." | Replace "bankingApp" or "demoApp" with a name appropriate to your request. Also replace the example URL or file path with the location of your service definition. |
| 9 | Create a virtual service from a service definition using sampling for better data | "Create a virtual service called bankingApp using a service definition at http://localhost:8080/parabank/services/bank/openapi.yaml. Use data that is appropriate for a bank." or "Create a virtual service called demoApp using service definition c:\temp\demo-app-v1.json. Use data that is appropriate for a camping store." | This is an improved version of use case 8 that uses sampling. Your MCP client must support sampling. Replace the service name and location of the service definition as described in case 8. |
| 10 | Create a virtual service from a service definition for specific resources | "Create a virtual service called bankingApp using a service definition at http://localhost:8080/parabank/services/bank/openapi.yaml that is just for account operations." or "Create a virtual service called demoApp using service definition c:\temp\demo-app-v1.json that is just for processing orders." | This is a more targeted version of use case 8 that creates your virtual service with only selected resources from the service definition. Replace "bankingApp" or "demoApp" with a name appropriate to your request. Also replace the example URL or file path with the location of your service definition. |
| 11 | Populate a virtual service with realistic request and response data | "Download the request and response data from the bankingApp virtual service and improve it with more realistic values. Update the bankingApp virtual service with the modified request and response data." | This is a follow-up to use cases like 8, 9, and 10. Replace "bankingApp" with a name appropriate to your request. |
| 12 | Get a list of virtual services created by MCP in order to know which ones MCP can do further work on | "Show me a list of virtual services you can work on." |