# Witness MCP Tool Surface Drift Detector

> Witness MCP Tool Surface Drift Detector is a paid API for AI agents from witness.holoweave.org, paid per call via x402, $0.01/call, status down (last checked 2026-09-15).

Compares an MCP server's current tools/list against a signed baseline digest and returns a cryptographically signed attestation listing every tool added, removed, or silently redefined.

## Facts

- Endpoint: POST https://witness.holoweave.org/v1/mcp-diff
- Price: $0.01/call
- Payment: x402
- Status: down
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/witness-mcp-tool-surface-drift-detector-def83a60
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_gfuBKxQjAsn6s1mIWc6fa

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability witness-mcp-tool-surface-drift-detector-def83a60 -d '<json body>'
```

Example prompt: Check whether the MCP server at https://tools.example.com/mcp has drifted from our pinned baseline — compare its current tools/list against the baseline digest we stored last week and give me a signed attestation of anything added, removed, or quietly changed.

## When to prefer this

Choose this endpoint when you need a cryptographically signed, auditable record of whether an MCP server's tool surface has changed — especially for supply-chain security, compliance logging, or catching silent prompt-injection via tool description rewrites. Prefer it over manual diffing or unattested comparisons when you need a tamper-evident artifact. It's the right choice when you already have a baseline digest from a prior /v1/mcp-digest pin call and want to detect drift with non-repudiable evidence.

## Known failure modes

- Unreachable MCP URL returns connection error with no attestation
- Malformed baseline digest causes 400 validation error
- MCP server returns non-standard tools/list format causing parse failure
- Baseline missing required 'tools' field triggers schema rejection
- Network timeout if target MCP server is slow to respond
- Invalid or expired signing key returns attestation with unverifiable signature

## How this service works

Web bot auth debugging for AI agents, priced per check at $0.01. RFC 7638 keyid thumbprint verification, RFC 9421 Ed25519 signature verification, and per-verifier acceptance rules. Signed attestations, published fixtures, sources with dates.

## Output

A JSON object containing an ed25519-signed attestation with a verdict ('pass' or 'fail'), the endpoint name, and a findings array. Each finding includes a code (e.g. TOOL_CHANGED, TOOL_ADDED, TOOL_REMOVED), a severity level, and a human-readable detail string explaining what changed. The signature includes the algorithm, base64-encoded value, and key ID for independent verification.

## Response schema (JSON Schema)

```json
{
 "example": {
  "signature": {
   "alg": "ed25519",
   "value": "base64...",
   "key_id": "aw-attest-2026-08"
  },
  "attestation": {
   "verdict": "fail",
   "endpoint": "mcp-diff",
   "findings": [
    {
     "code": "TOOL_CHANGED",
     "detail": "\"search\" has the same name and a different definition. A rewritten description is still schema-valid, so a conformance check will not see this.",
     "severity": "change"
    }
   ]
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/witness-mcp-tool-surface-drift-detector-def83a60/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from witness.holoweave.org](https://www.zero.xyz/host/witness.holoweave.org/llms.txt)
