Skip to main content

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.

ArgumentRequiredDescription
kindyesplaytest, api_test, a11y_scan, or load_test
trigger_tokenyesThe CI/CD trigger token copied from the saved run's detail page
wait_secondsnoBlock up to this many seconds (max 90) for the run to finish. 0 (default) returns immediately
gatenoPass 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).

ArgumentRequiredDescription
kindyesplaytest, api_test, a11y_scan, or load_test
share_slugyesThe run's share slug, from report_url
gatenoSame 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

  1. 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.
  2. Ask your agent something like "run the checkout playtest and tell me if anything's broken."
  3. The agent calls trigger_run with wait_seconds set, 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.