MCP Server (AI Agents)
VeriWasp ships a small MCP server so an AI coding agent, Claude Code, Claude Desktop, or any other MCP client, can trigger a saved VeriWasp run and read back its results without leaving your editor. It's the same idea as CI/CD Integration: "run this saved flow and tell me what broke," just called by an agent instead of a pipeline.
The server holds no VeriWasp logic of its own. Every tool call is a thin, authenticated HTTP call to the exact same trigger/status JSON endpoints your CI pipeline already uses, keyed by the same per-run trigger token you'd copy from a run's Trigger from CI/CD panel.
Installing
The server is a single Go binary, cmd/mcp-server in the
VeriWasp repository. Build it
once:
go build -o veriwasp-mcp ./cmd/mcp-server
Then point your MCP client at the binary. For Claude Code, add it to your
project's .mcp.json (or via claude mcp add):
{
"mcpServers": {
"veriwasp": {
"command": "/path/to/veriwasp-mcp"
}
}
}
By default it talks to https://veriwasp.com. If you're running VeriWasp
yourself or against a local dev instance, override that with an environment
variable:
{
"mcpServers": {
"veriwasp": {
"command": "/path/to/veriwasp-mcp",
"env": { "VERIWASP_BASE_URL": "http://localhost:8080" }
}
}
}
Tools
trigger_run
Triggers a saved run (any of the 4 run kinds) using its CI/CD trigger token, the same one from that run's detail page.
| Argument | Required | Description |
|---|---|---|
kind | yes | playtest, api_test, a11y_scan, or load_test |
trigger_token | yes | The CI/CD trigger token copied from the saved run's detail page |
wait_seconds | no | Block up to this many seconds (max 90) for the run to finish. 0 (default) returns immediately |
gate | no | Pass regression to have the reported status become regressed instead of completed when qualifying regressions are found (playtest and API test runs only, see CI/CD Integration) |
With wait_seconds set and the run finishing in time, the response includes
not just pass/fail counts but the actual issues found, category, severity,
summary, and detail for each one, so an agent can see exactly what broke
without a separate call.
get_run_status
Fetches a run's current status and results by its share slug (the id in its
report_url).
| Argument | Required | Description |
|---|---|---|
kind | yes | playtest, api_test, a11y_scan, or load_test |
share_slug | yes | The run's share slug, from report_url |
gate | no | Same as trigger_run's gate argument |
Both tools return the exact same JSON shape as their HTTP equivalents in CI/CD Integration, as both text and structured content.
A typical agent workflow
- You (or the agent) create and save a flow once in the VeriWasp UI, then copy its trigger token from the Trigger from CI/CD panel.
- Ask your agent something like "run the checkout playtest and tell me if anything's broken."
- The agent calls
trigger_runwithwait_secondsset, gets back the real issues list if anything failed, and can reason about them directly, for instance suggesting a fix for the specific console error it just read.
This intentionally mirrors CI/CD rather than replacing it: an agent can't create a brand-new flow against an arbitrary URL through this server today, it triggers an existing saved one, the same trust boundary a trigger token already enforces.