Skip to main content
The registry’s VPoint catalog — every name, schema, and type — is machine-readable, which makes Varianz tests a natural fit for coding agents. The Varianz MCP server (varianz-mcp) exposes the catalog and generation tools over the Model Context Protocol, so agents like Claude Code can discover what’s instrumented and produce validated stages and tests.
varianz-mcp is distributed alongside the other Varianz components (like the registry server) rather than through a public package index — it’s included with your team’s Varianz distribution.

Setup

varianz-mcp is a stdio adapter that connects to the Varianz services endpoint (--services-addr, default http://[::1]:50052), which runs alongside the registry in the full Varianz stack. Register it with your agent:

The tools

Discovery and inspection: Generation and validation:

Rules for agents

If you’re pointing a coding agent at Varianz (or writing prompts for one), four rules prevent almost all failures:
  1. Call get_vpoint_detail before writing any CEL. It shows the exact type and field names. Never guess — ChargeResult is not ChargeResponse, and struct fields are case-sensitive.
  2. Run every expression through validate_cel before putting it in test code. Fix validation errors first; they’re cheaper than runtime failures.
  3. Use the schema’s exact types. Missing required fields in struct literals are runtime errors.
  4. Always include await_sync_or_fail(timeout) between stage insertion and the trigger. Without it, stages may not have reached the service.
These same rules apply to humans — the tools just make following them cheap.

What good agent output looks like

A generated test should follow the standard lifecycle — insert, sync, trigger with the session header, assert:
For the underlying concepts an agent (or you) needs, the canonical pages are Stages, How tests work, and the CEL reference.