MCP
Probierz MCP tool reference.
The `probierz-mcp` Rust binary exposes Probierz discovery, execution, evidence, and control operations over newline-delimited stdio JSON-RPC.
Start the server#
Build the repository with `cargo build --release` in `probierz-rs`, put `target/release` on `PATH`, and configure your MCP client to launch `probierz-mcp`. The server reads JSON-RPC from standard input and writes one JSON response per line to standard output.
The tool names, descriptions, and schemas below are generated by initializing that binary and calling `tools/list`; the documentation check refuses missing, extra, or changed tools.
probierz-mcpAsynchronous run queue#
Initialize the stdio session, send `notifications/initialized`, start a run, and poll its durable run ID until it settles. Artifacts are listed and read separately; `probierz_get_artifact` returns base64 content. Cancellation is idempotent: asking to cancel a settled run returns `cancelRequested: false`.
import { spawn } from "node:child_process";
import { createInterface } from "node:readline";
const server = spawn("probierz-mcp", [], { stdio: ["pipe", "pipe", "inherit"] });
const lines = createInterface({ input: server.stdout });
const pending = new Map();
let id = 0;
lines.on("line", (line) => {
const message = JSON.parse(line);
pending.get(message.id)?.(message);
pending.delete(message.id);
});
function rpc(method, params) {
id += 1;
server.stdin.write(JSON.stringify({ jsonrpc: "2.0", id, method, params }) + "\n");
return new Promise((resolve) => pending.set(id, resolve));
}
async function tool(name, args) {
const response = await rpc("tools/call", { name, arguments: args });
if (response.error) throw new Error(response.error.message);
return JSON.parse(response.result.content[0].text);
}
await rpc("initialize", {
protocolVersion: "2024-11-05",
capabilities: {},
clientInfo: { name: "probierz-docs", version: "1" },
});
server.stdin.write(JSON.stringify({ jsonrpc: "2.0", method: "notifications/initialized" }) + "\n");
const started = await tool("probierz_start_run", { target: "tui", appId: "docs-demo" });
let status = started;
while (["queued", "running"].includes(status.status)) {
await new Promise((resolve) => setTimeout(resolve, 500));
status = await tool("probierz_run_status", { runId: started.runId });
}
const artifacts = await tool("probierz_list_artifacts", { runId: started.runId });
const report = await tool("probierz_get_artifact", { runId: started.runId, file: "report.json" });
const decoded = JSON.parse(Buffer.from(report.content, "base64").toString("utf8"));
if (decoded.probierz.runId !== started.runId) throw new Error("artifact runId mismatch");
const cancelled = await tool("probierz_cancel_run", { runId: started.runId });
if (cancelled.cancelRequested !== false) throw new Error("settled run requested cancellation");
console.log({ status: status.status, artifacts: artifacts.artifacts });
server.stdin.end();Tools#
- probierz_list_surfaces — List the cross-platform test surfaces (web, electron, mobile, desktop-native): tool, npm script, targets, and relevant env vars.
- probierz_list_specs — Discover e2e/spec files on disk; optional surface narrows to one (web|electron|mobile|desktop-native).
- probierz_describe_spec — Static outline of a spec (describe/it/test titles in file order) by its path under the probierz root. Does not execute anything.
- probierz_run_command — Return the exact shell command to run a target yourself (web|electron|mobile:ios|mobile:android|desktop:mac|desktop:win). Read-only: probierz never runs it.
- probierz_check — Preflight a target's toolchain WITHOUT running anything: reports whether it is ready and, for each missing piece, exactly how to fix it -- `probierz setup <target>` for parts probierz owns (Playwright browsers, Appium drivers) or a host install command for the rest (Xcode, Android SDK, simulators, WinAppDriver). Read-only.
- probierz_setup — Install the toolchain parts probierz owns for a target (npm deps + Playwright browsers, or npm deps + the Appium driver). Does NOT install host-level dependencies (Xcode, Android SDK, simulators, WinAppDriver) -- probierz_check reports those. Side-effecting: runs npm / appium driver install.
- probierz_run — EXECUTE a target end-to-end, capture evidence, analyze it, and dispatch a bounded Brama repair worker when it fails. Heavy + side-effecting: needs the target toolchain; noRepair=true records without repair.
- probierz_analyze — Parse a finished run's report (Playwright report.json or the WDIO probierz-<kind>-results.json) and inventory its media: totals, per-test status, failure reasons, and recording metadata (duration/dimensions via ffprobe, optional frame montage via ffmpeg).
- probierz_evaluate_figure — SIDE-EFFECTING: render a scientific reference/candidate pair, run deterministic geometry checks, score the declared visual rubric through the authenticated model router, and write immutable PNG evidence plus a JSON verdict.
- probierz_evaluate_seo — SIDE-EFFECTING: crawl a declared site as ordinary Chrome and Googlebot Smartphone, enforce indexability and structured-data contracts, collect mobile performance evidence, run two independent Brama content graders with conditional adjudication, ingest optional Search Console/CrUX evidence, and write an immutable signed SEO verdict.
- probierz_create_readme_gif — SIDE-EFFECTING: convert one recorded journey video into a bounded, silent, looping README GIF and write a provenance sidecar with source/output SHA-256 and mandatory publication checks. Requires ffmpeg.
- probierz_affected — Given a change, report which run targets it could affect, so you re-run only what is relevant. Deterministic + structural (maps files to targets by package containment; agent/ or repo-root files are cross-cutting -> all targets). Provide `files` explicitly, or omit to diff the working tree against `ref` (default HEAD) via git. Read-only.
- probierz_ci — Change-driven pass: select affected targets, run and analyze them, then dispatch a bounded Brama repair worker for each failure unless noRepair=true. Selection and blockers stay deterministic; only the explicit repair step asks a model what to change.
- probierz_history — Read deterministic E5 stability history: pass rate, infrastructure failures, duration trend, flaky tests, journeys, latest run, and last green.
- probierz_dashboard — Project evidence for product → version → journey → surface → device → result → artifact dashboard navigation.
- probierz_matrix_plan — Read the deterministic nightly or release matrix without executing it.
- probierz_run_matrix — HEAVY + SIDE-EFFECTING: execute every cell of a declared nightly or release matrix and return an E4 verdict.
- probierz_protect_run — SIDE-EFFECTING: encrypt a complete run into an authenticated AES-256-GCM evidence bundle; optionally remove plaintext artifacts.
- probierz_restore_bundle — SIDE-EFFECTING: authenticate and restore an encrypted evidence bundle into an empty directory.
- probierz_retention — Plan retention expiry; with apply=true, delete expired plaintext runs and encrypted bundles.
- probierz_secret_scan — Scan a plaintext artifact directory for high-confidence secrets without returning secret values.
- probierz_audit — Read and integrity-check access audit records, optionally filtered by app, run, or action.
- probierz_source_identity — Compute exact path-independent harness and app source SHA-256 identities.
- probierz_gate_status — Read pull-request and release gate activation state.
- probierz_status — Journey coverage, evidence freshness vs HEAD, untested surfaces, and pull-request merge eligibility for an app.
- probierz_gate_prepush — Pre-push merge gate: select affected journeys from the push diff and evaluate the newest passing runs against the exact current HEAD identity (pull-request policy).
- probierz_author_spec — SIDE-EFFECTING: use the authenticated Stado model router to draft one journey spec from a probe of the real app, verify it with an actual run, and keep it on green (registers the journey in the app manifest).
- probierz_repair — SIDE-EFFECTING: dispatch one bounded Brama worker at a recorded failed run. Product fixes land on a fresh published branch; spec fixes must pass the real journey before publication.
- probierz_author_manifest — SIDE-EFFECTING: use the authenticated Stado model router to draft the whole app journey manifest from a probe and repository layout, validate it, and optionally cover every journey with author-spec.
- probierz_stado_run — SIDE-EFFECTING: run a target on a chosen stado host (provider/pin/spot/GPU); evidence lands back in test-results.
- probierz_stado_evaluate_seo — SIDE-EFFECTING: submit the complete SEO evaluator to a Stado-selected dedicated host, materialize only the declared Brama and signing secrets, and fetch the immutable evidence bundle.
- probierz_gate_evaluate — Evaluate exact build, E3 evidence, coverage, matrix, encryption, secret scan, and signed receipt eligibility; appends an audit record.
- probierz_gate_enforce — Enforce an activated gate against current evidence; pending-green gates fail closed.
- probierz_gate_activate — SIDE-EFFECTING: atomically activate a gate only after all green evidence requirements pass.
- probierz_compare_runs — Deterministically compare status, duration, tests, evidence, build identity, and artifact hashes between two run IDs.
- probierz_last_green — Return the newest passing run for a product, optional target, and optional journey.
- probierz_create_receipt — SIDE-EFFECTING: secret-scan evidence, verify exact source/build/artifact provenance, and sign a release receipt with immutable journey identities and report-typed publication media.
- probierz_verify_receipt — Verify receipt payload hash and Ed25519 signature against an explicit trusted public key or fingerprint.
- probierz_create_publication_manifest — SIDE-EFFECTING: verify a signed receipt, current source, secret scan, evidence hashes, driver capability, redaction review, and immutable storage registrations before emitting a deterministic first-use publication manifest.
- probierz_start_run — HEAVY + SIDE-EFFECTING: start a real run asynchronously and return its runId immediately. Poll with probierz_run_status; cancel with probierz_cancel_run.
- probierz_run_status — Return queued/running/blocked/passed/failed/canceled state for an asynchronous run.
- probierz_cancel_run — Cancel an asynchronous run and terminate its complete spawned process tree.
- probierz_get_result — Return the completed normalized result and evidence for an asynchronous run.
- probierz_list_artifacts — List run-scoped evidence artifacts for a completed asynchronous run.
- probierz_get_artifact — Read one run-scoped artifact up to 5 MiB as base64; path traversal is rejected.
Source snapshot#
Generated from https://github.com/wisent-ai/probierz.git revision `8ca8c1f19a5eb137164120d54f80405b0d0dbf14` by calling the Rust server's `tools/list` operation.
The captured server exposes 45 tools. Binary SHA-256: `72425bce4d10d4373586fb2ea7deb40be44bf277964e14aa53e52c9216e60bf4`; tools/list SHA-256: `856670843b435996d8cd5e1542c3001560c0cf11baf48a2c528f68e31600fdde`.