---
title: /webmcp-kit:verify
description: Reference for /webmcp-kit:verify — check that a running site's WebMCP tools register and execute correctly.
sidebar:
  label: verify
---


Checks that a locally running site's WebMCP tools actually work: registered on the right pages, absent where they shouldn't be, and returning real results when called.

```
/webmcp-kit:verify [base URL]
```

Example:

```
/webmcp-kit:verify http://localhost:3000
```

It runs standalone, and it is the same ladder the implement skill runs as its final phase.

## Before you start

- The site must be running locally (its own dev script or runbook).
- WebMCP must be active in the browser — see [Browser setup](/installation#browser-setup).

## The ladder

Each rung must hold before the next runs:

1. **Boot.** The site starts and the baseline page renders with no new console errors.
2. **Discover.** On each declared page and auth state, list the registered tools. Each tool must appear where declared, be **absent** where it shouldn't be (logged-out account tools, wrong-role tools), and unregister on its declared exits (empty cart, logout).
3. **Invoke read-only.** Call read-only tools with sample inputs; check both the returned data and the visible effect on the page.
4. **Invoke state-changing.** Only against local, dev, or seeded data, and only with an explicit go-ahead. Never against production or third-party services. No safe way to invoke → the tool is reported *could-not-verify*, not fired blindly.

## The report

One state per tool, printed as a table:

| State | Meaning | What happens |
| --- | --- | --- |
| **verified** | Registered and invoked as declared. | Ships. |
| **failed** | Didn't register, or errored. | Fixed or dropped — never ships broken. |
| **could-not-verify** | Plausible but unproven (no browser, no safe invocation path). | Ships, explicitly flagged. |
