MCP tools reference
Status:
pixmoat mcpneeds thepixmoatCLI, which has no public install path yet. This reference is generated from the CLI source and lists the tools it will expose.
pixmoat mcp exposes 11 tools over stdio. It authenticates with the same PIXMOAT_URL, PIXMOAT_TOKEN and PIXMOAT_PROJECT environment variables as the CLI.
approve_runs
Approve one or more runs in a build. Accepts handles (e.g. “h7k2”) or UUIDs in run_ids, or change group IDs (e.g. [“g1”]) in group_ids. Sends decisions with source=agent for audit trail. Only approve when the visual change was intended. Respects the project’s agent_auto_approve setting.
| Parameter | Type | Required | Description |
|---|---|---|---|
build_id | string | yes | Build ID |
comment | string | no | Comment explaining why the changes are approved |
group_ids | string[] | no | One or more change group IDs to approve (e.g. [“g1”, “g2”]). When present, all runs in the specified groups are approved. |
run_ids | string[] | no | One or more run IDs to approve (can be empty when using group_ids) |
check_build
Check a pixmoat build for visual regressions. Returns a compact text digest (default) with a single-word verdict on line 2 and one line per changed screenshot. Waits for diffing to complete by default.
Verdicts: PASS (exit 0, all clean), REVIEW (exit 1, diffs pending), REVIEW_NEW (exit 2, new snapshots only), FAIL (exit 3, rejected or failed), WAIT (diffing in progress, only with wait: false).
Each run line shows: <handle> <name> <viewport> <browser> <ratio%> <severity> <regions>. Handles are 4-char short IDs usable in approve_runs, reject_run, and get_screenshot. A ! continuation line means a human rejected this screenshot — read the comment.
Decision rules: flaky/quarantined = skip; ! line = fix what the human flagged; unintended diff = regression, fix the code; intended diff = approve. Pass format: “json” for the full JSON response.
| Parameter | Type | Required | Description |
|---|---|---|---|
build_id | string | yes | Build ID to check for visual regressions |
format | string | no | Response format: “digest” (default, compact text) or “json” (full JSON) |
min_mismatch | number | no | Only include runs with mismatch_ratio >= this value |
timeout | integer | no | Timeout in seconds when waiting (default: 120, max: 300) |
wait | boolean | no | Wait for diffing to complete before returning (default: true) |
finish_review
Capability: finish_review. Finish a staged agent review after inspecting every actionable run and submitting an approve_runs or reject_run decision for each one. This is the final explicit step: it never decides runs automatically and cannot be forced. Pixmoat enforces the project’s agent and human approval policy.
| Parameter | Type | Required | Description |
|---|---|---|---|
build_id | string | yes | Build ID whose staged review should be finished |
get_build_context
Read build provenance, completeness, quality audit counts, and review policy. Use alongside check_build before deciding. Missing viewports, browsers, or unevaluated audits do not mean the build passed.
| Parameter | Type | Required | Description |
|---|---|---|---|
build_id | string | yes | Build UUID from check_build or list_builds. |
get_feedback
Show recent rejection comments for a snapshot key. If a snapshot was previously rejected by a human, read the feedback to understand what needs fixing before re-submitting.
| Parameter | Type | Required | Description |
|---|---|---|---|
branch | string | yes | Branch to filter by |
name | string | yes | Snapshot name (e.g. “header/nav-mobile”) |
limit | integer | no | Number of feedback entries (default: 5, max: 20) |
project | string | no | Project slug returned by list_projects. Defaults to PIXMOAT_PROJECT for local MCP. |
get_history
Show recent change history for a snapshot key. Check before deciding on a diff to see if this screenshot has been changing frequently or was recently rejected.
| Parameter | Type | Required | Description |
|---|---|---|---|
branch | string | yes | Branch to filter by |
name | string | yes | Snapshot name (e.g. “checkout/cart-desktop”) |
limit | integer | no | Number of history entries (default: 10, max: 50) |
project | string | no | Project slug returned by list_projects. Defaults to PIXMOAT_PROJECT for local MCP. |
get_run_details
Read evidence for one screenshot: changed regions, ignore regions, decision and comment, accessibility violations and DOM selectors, performance metrics and baseline, console failures, and agent review policy. Missing audits are explicitly marked evaluated=false. Use get_screenshot for visual evidence and get_feedback for earlier human rejection comments. Visual approval does not resolve separate quality findings.
| Parameter | Type | Required | Description |
|---|---|---|---|
build_id | string | yes | Build UUID containing the run. |
run_ref | string | yes | Run handle or UUID returned by check_build. |
get_screenshot
Returns a cropped side-by-side triptych image (baseline | current | diff, left to right, separated by blue/green/magenta bars) around the largest changed region. Use after check_build to visually inspect diffs before approving or rejecting.
Pass region: “all” when region_count > 1 to see all changed areas. Pass region: “full” to see the whole page. For new screenshots (no baseline), the triptych shows only the current pane.
Accepts run handles (e.g. “h7k2”) or UUIDs in run_ref.
| Parameter | Type | Required | Description |
|---|---|---|---|
build_id | string | yes | Build ID containing the run |
run_ref | string | yes | Run reference: a 4-char handle (e.g. “h7k2”) or a full UUID |
kind | string | no | Image kind: “triptych” (default — baseline|current|diff side by side), “baseline”, “current”, or “diff” |
max_width | integer | no | Maximum output width in pixels (default: 900) |
padding | integer | no | Padding around the crop rectangle in pixels (default: 24) |
region | string | no | Region to crop: “largest” (default — largest changed region), “all” (union of all regions — use when region_count > 1), “full” (whole page), or a numeric index |
list_builds
List recent builds for the project. Returns build IDs, branches, commit SHAs, and statuses. Use to find the build ID after a capture, or to check the status of builds on a branch.
| Parameter | Type | Required | Description |
|---|---|---|---|
branch | string | no | Filter by branch name |
limit | integer | no | Number of builds to return (default: 10) |
project | string | no | Project slug returned by list_projects. Defaults to PIXMOAT_PROJECT for local MCP. |
list_projects
List organizations and projects accessible to the current token. Requires a personal access token (PAT). Returns orgs and their projects with agent_auto_approve settings.
No parameters.
reject_run
Reject a run in a build with a comment explaining what is wrong. Accepts a handle (e.g. “h7k2”) or UUID in run_id. A comment is required. Reject when the visual change is a regression that you cannot fix.
| Parameter | Type | Required | Description |
|---|---|---|---|
build_id | string | yes | Build ID |
comment | string | yes | Comment explaining what is wrong (required) |
run_id | string | yes | Run ID to reject |