# ai.testiv/mcp (npm · @testivai/mcp)

Local-first visual regression for AI agents: verdicts, diff images, explain_snapshot. No API key.

- Trust score: 80/100 (high trust)
- Change this week: +72
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `@testivai/mcp`: 80/100 (this document), [markdown](https://verifymcp.io/servers/ai-testiv-mcp/testivai-mcp.md), [page](https://verifymcp.io/servers/ai-testiv-mcp/testivai-mcp)

## Channel facts

- Registry: `npm`
- Package: `@testivai/mcp`
- Version: `0.5.7`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 87/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (185 of 189), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (185 of 189), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 97/100
  - Source repository is publicly reachable at the declared URL.
  - Cryptographically verified build provenance (signed, bound to mcbuddy/testivai-oss).
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 2 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 82/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 449 tokens (~56/item across 8 items; 8 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 23/100
  - Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add ai-testiv-mcp -- npx -y @testivai/mcp
```

### Codex

```bash
codex mcp add ai-testiv-mcp -- npx -y @testivai/mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "ai-testiv-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@testivai/mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add ai-testiv-mcp --command npx --arg -y --arg @testivai/mcp
```

### Hermes

```yaml
mcp_servers:
  ai-testiv-mcp:
    command: "npx"
    args: ["-y", "@testivai/mcp"]
```

### Other

```json
{
  "mcpServers": {
    "ai-testiv-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@testivai/mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-02 (score 80, +41)

- [security regression] Stability: 0.17 → unverified
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Provenance: unverified → pass
- [security improvement] Install scripts: unverified → pass
- [security improvement] Malware scan: unverified → pass
- [security] The attested source repository moved: mcbuddy/testivai-oss
- [functional regression] Schema quality: 100 → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional regression] Capabilities: pass → unverified
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] License: unverified → pass
- [functional improvement] Maintenance: unverified → pass
- [functional] Licence: MIT

### 2026-08-01 (score 39, +34)

- [functional improvement] Tool coverage: unverified → 100
- [functional improvement] Stability: unverified → 0.17
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Schema quality: unverified → 100

### 2026-07-31 (score 5, −37)

- [functional regression] Tool coverage: 100 → unverified
- [functional regression] Schema quality: 100 → unverified
- [functional] Package version: 0.5.5 → 0.5.6
- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 42, −34)

- [security regression] Provenance: pass → unverified
- [security regression] Known CVEs: partial → unverified
- [security regression] Install scripts: pass → unverified
- [security] The attested source repository moved: mcbuddy/testivai-oss
- [functional regression] Maintenance: pass → unverified
- [functional regression] License: pass → unverified
- [functional regression] Dependency health: partial → unverified
- [functional] Licence: MIT

### 2026-07-29 (score 76, +70)

- [security improvement] Install scripts: unverified → pass
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Provenance: unverified → pass
- [security] The attested source repository moved: mcbuddy/testivai-oss
- [functional regression] Security disclosure: unverified → fail
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] Schema quality: unverified → 100
- [functional improvement] License: unverified → pass
- [functional improvement] Tool coverage: unverified → 100
- [functional] First check of Tool coverage: 100
- [functional] First check of Schema quality: good
- [functional] First check of Schema quality: pass
- [functional] First check of Schema quality: fail
- [functional] Licence: MIT

### 2026-07-28 (score 6, −2)

- [functional regression] Security disclosure: fail → unverified
- [functional regression] Dependency health: partial → unverified
- [functional] Package version: 0.5.4 → 0.5.5

### 2026-07-27 (score 8)

First indexed and scored.

## MCP tools (8)

### `get_visual_results` (~80 tokens)

Get visual test results

Read the latest TestivAI visual regression results (visual-report/results.json). Returns a per-snapshot verdict combining the pixel diff and the DOM signal: DOM-identical diffs are likely render noise; DOM changes are real and need human review. Run the test suite first (e.g. `npx playwright test`) if results are stale or missing.

### `get_diff` (~54 tokens)

View snapshot diff images

Return the baseline, current, and diff images for one changed snapshot so you can see what changed visually. Use get_report / get_visual_results first to find snapshot names.

Input parameters:

- `name` (string, required): Snapshot name from the results

### `get_snapshot_diff` (~55 tokens)

View snapshot diff images

Return the baseline, current, and diff images for one changed snapshot so you can see what changed visually. Use get_report / get_visual_results first to find snapshot names.

Input parameters:

- `name` (string, required): Snapshot name from the results

### `get_report` (~44 tokens)

Get the raw visual report (results.json)

Return the machine-readable results.json payload verbatim (summary + per-snapshot status, diff %, DOM signal, and region→selector attribution). Parse this instead of scraping CLI output.

### `approve_snapshot` (~64 tokens)

Approve one snapshot as the new baseline

Promote .testivai/temp/<name>/ to the committed baseline (same as `testivai approve <name>`). Only approve changes a reviewer has confirmed are intended; then commit .testivai/baselines/.

Input parameters:

- `name` (string, required): Snapshot name to approve

### `approve_all` (~55 tokens)

Approve all pending snapshots as baselines

Promote every pending capture under .testivai/temp/ to committed baselines (same as `testivai approve --all`). Only run this after a reviewer has confirmed the changes; then commit .testivai/baselines/.

### `list_baselines` (~24 tokens)

List committed baselines

List the snapshot baselines committed under .testivai/baselines/.

### `explain_snapshot` (~73 tokens)

Explain what changed in one snapshot

Layered evidence for one snapshot: pixel regions with bounding boxes, element attribution (which selectors shifted vs changed, whole-page shift detection), the DOM/style signal, and interpretation guidance. Use this to explain WHY a diff happened — pair with get_diff for the images.

Input parameters:

- `name` (string, required): Snapshot name from the results

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/ai-testiv-mcp/testivai-mcp#diagnostics

## Score history

- 2026-08-03: 80
- 2026-08-02: 80
- 2026-08-01: 39
- 2026-07-31: 5
- 2026-07-30: 42
- 2026-07-29: 76
- 2026-07-28: 6
- 2026-07-27: 8

## Links

- npm package: https://www.npmjs.com/package/@testivai/mcp
- Socket report: https://socket.dev/npm/package/@testivai/mcp
- Repository: https://github.com/mcbuddy/testivai-oss
- Changelog RSS feed: https://verifymcp.io/servers/ai-testiv-mcp/testivai-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/ai-testiv-mcp/testivai-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/ai-testiv-mcp/testivai-mcp
