About verifyfirst
verifyfirst is an MCP server for developers diagnosing failures that appear successful. It organizes 48 documented or observed failure cases by the verification instrument that missed them, with checks for each case.
Key features
- 0148 observed or documented failure cases
- 02Lookup by symptom or instrument
- 03Searchable failure registry
- 04Checks for each failure
- 05Five-step completion checklist
Use cases
- 01Investigating a deploy that reports success but changes nothing
- 02Finding blind spots in a screenshot or HTTP check
- 03Reviewing an instrument’s missed failure cases
MCP support
Exposes registry lookups, instrument blind spots, failure details, and a completion checklist as tools for MCP clients.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
8Saved tool list · updated 3w ago
This tool takes no parameters.
Details
From the project READMEverifyfirst-mcp
An MCP server for what your verification method cannot see.
A failure that crashes is cheap. A failure that reports success is expensive: the screenshot looks fine, the command exits zero, the endpoint returns 200, and the bug ships.
This server exposes verifyfirst.dev — a registry of 48 such failures, organised by the instrument that missed them rather than by the technology involved, because the instrument is what you know before you know the bug.
Install
uvx verifyfirst-mcp # run it directly
pip install verifyfirst-mcp # or install it
Register with Claude Code:
claude mcp add verifyfirst -- uvx verifyfirst-mcp
Or any MCP client:
{
"mcpServers": {
"verifyfirst": { "command": "uvx", "args": ["verifyfirst-mcp"] }
}
}
Tools
| Tool | What it does |
|---|---|
from_symptom(description) | Start here when something is wrong but you do not know why. Describe what you see — "deploy ran but nothing changed", "200 but the data is wrong" — and get the failures that produce that appearance, each with its check. |
blind_spots(instrument) | The one to reach for mid-task. What an instrument cannot see, terse. Takes loose names — curl, 200, pgrep, systemctl, stdout, playwright all resolve. |
list_instruments() | All six instruments. |
get_instrument(id) | Full detail plus every recorded failure it missed, each with its check. |
search(query) | Substring search across the registry. |
get_entry(id) | One entry, e.g. NS-001. |
get_protocol() | A five-step checklist for claiming work is done. |
Example
> blind_spots("screenshot")
screenshot (A rendered image) is blind to:
- Time. A still frame cannot distinguish 'renders one frame then stops'
from 'renders one frame correctly'.
- Whether scripts ran at all, as opposed to running and producing this.
...
Notes
Zero dependencies — Python standard library only. Works offline from a bundled
copy of the registry; pass --remote to read the live one, which falls back to
the bundle on any failure.
Every entry in the registry is a failure that genuinely occurs, marked
observed (diagnosed first-hand) or documented (primary source cited and the
check reproduced). None are hypothetical.
CC0-1.0 — public domain. Maintained by Zion Labs.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.