verifyfirst-mcp 1.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- verifyfirst_mcp-1.0.0/PKG-INFO +95 -0
- verifyfirst_mcp-1.0.0/README.md +72 -0
- verifyfirst_mcp-1.0.0/pyproject.toml +48 -0
- verifyfirst_mcp-1.0.0/src/verifyfirst_mcp/__init__.py +16 -0
- verifyfirst_mcp-1.0.0/src/verifyfirst_mcp/__main__.py +5 -0
- verifyfirst_mcp-1.0.0/src/verifyfirst_mcp/registry.json +549 -0
- verifyfirst_mcp-1.0.0/src/verifyfirst_mcp/server.py +730 -0
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: verifyfirst-mcp
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: MCP server for what your verification method cannot see — a registry of software failures that report success.
|
|
5
|
+
Project-URL: Homepage, https://verifyfirst.dev
|
|
6
|
+
Project-URL: Repository, https://github.com/simulacra/verifyfirst
|
|
7
|
+
Project-URL: Registry, https://verifyfirst.dev/registry.json
|
|
8
|
+
Author: Zion Labs
|
|
9
|
+
License-Expression: CC0-1.0
|
|
10
|
+
Keywords: agent-tools,ai-agents,debugging,llm,mcp,model-context-protocol,observability,verification
|
|
11
|
+
Classifier: Development Status :: 4 - Beta
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: Programming Language :: Python :: 3
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
18
|
+
Classifier: Topic :: Software Development :: Debuggers
|
|
19
|
+
Classifier: Topic :: Software Development :: Quality Assurance
|
|
20
|
+
Classifier: Topic :: Software Development :: Testing
|
|
21
|
+
Requires-Python: >=3.10
|
|
22
|
+
Description-Content-Type: text/markdown
|
|
23
|
+
|
|
24
|
+
# verifyfirst-mcp
|
|
25
|
+
|
|
26
|
+
**An MCP server for what your verification method cannot see.**
|
|
27
|
+
|
|
28
|
+
<!-- mcp-name: io.github.simulacra/verifyfirst -->
|
|
29
|
+
|
|
30
|
+
A failure that crashes is cheap. A failure that *reports success* is expensive:
|
|
31
|
+
the screenshot looks fine, the command exits zero, the endpoint returns 200,
|
|
32
|
+
and the bug ships.
|
|
33
|
+
|
|
34
|
+
This server exposes [verifyfirst.dev](https://verifyfirst.dev) — a registry of
|
|
35
|
+
30 such failures, organised by the **instrument that missed them** rather than
|
|
36
|
+
by the technology involved, because the instrument is what you know before you
|
|
37
|
+
know the bug.
|
|
38
|
+
|
|
39
|
+
## Install
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
uvx verifyfirst-mcp # run it directly
|
|
43
|
+
pip install verifyfirst-mcp # or install it
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Register with Claude Code:
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
claude mcp add verifyfirst -- uvx verifyfirst-mcp
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Or any MCP client:
|
|
53
|
+
|
|
54
|
+
```json
|
|
55
|
+
{
|
|
56
|
+
"mcpServers": {
|
|
57
|
+
"verifyfirst": { "command": "uvx", "args": ["verifyfirst-mcp"] }
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Tools
|
|
63
|
+
|
|
64
|
+
| Tool | What it does |
|
|
65
|
+
|---|---|
|
|
66
|
+
| `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. |
|
|
67
|
+
| `list_instruments()` | All six instruments. |
|
|
68
|
+
| `get_instrument(id)` | Full detail plus every recorded failure it missed, each with its check. |
|
|
69
|
+
| `search(query)` | Substring search across the registry. |
|
|
70
|
+
| `get_entry(id)` | One entry, e.g. `NS-001`. |
|
|
71
|
+
| `get_protocol()` | A five-step checklist for claiming work is done. |
|
|
72
|
+
|
|
73
|
+
## Example
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
> blind_spots("screenshot")
|
|
77
|
+
|
|
78
|
+
screenshot (A rendered image) is blind to:
|
|
79
|
+
- Time. A still frame cannot distinguish 'renders one frame then stops'
|
|
80
|
+
from 'renders one frame correctly'.
|
|
81
|
+
- Whether scripts ran at all, as opposed to running and producing this.
|
|
82
|
+
...
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Notes
|
|
86
|
+
|
|
87
|
+
Zero dependencies — Python standard library only. Works offline from a bundled
|
|
88
|
+
copy of the registry; pass `--remote` to read the live one, which falls back to
|
|
89
|
+
the bundle on any failure.
|
|
90
|
+
|
|
91
|
+
Every entry in the registry is a failure that genuinely occurs, marked
|
|
92
|
+
`observed` (diagnosed first-hand) or `documented` (primary source cited and the
|
|
93
|
+
check reproduced). None are hypothetical.
|
|
94
|
+
|
|
95
|
+
CC0-1.0 — public domain. Maintained by [Zion Labs](https://zionlabs.io).
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# verifyfirst-mcp
|
|
2
|
+
|
|
3
|
+
**An MCP server for what your verification method cannot see.**
|
|
4
|
+
|
|
5
|
+
<!-- mcp-name: io.github.simulacra/verifyfirst -->
|
|
6
|
+
|
|
7
|
+
A failure that crashes is cheap. A failure that *reports success* is expensive:
|
|
8
|
+
the screenshot looks fine, the command exits zero, the endpoint returns 200,
|
|
9
|
+
and the bug ships.
|
|
10
|
+
|
|
11
|
+
This server exposes [verifyfirst.dev](https://verifyfirst.dev) — a registry of
|
|
12
|
+
30 such failures, organised by the **instrument that missed them** rather than
|
|
13
|
+
by the technology involved, because the instrument is what you know before you
|
|
14
|
+
know the bug.
|
|
15
|
+
|
|
16
|
+
## Install
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
uvx verifyfirst-mcp # run it directly
|
|
20
|
+
pip install verifyfirst-mcp # or install it
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Register with Claude Code:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
claude mcp add verifyfirst -- uvx verifyfirst-mcp
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Or any MCP client:
|
|
30
|
+
|
|
31
|
+
```json
|
|
32
|
+
{
|
|
33
|
+
"mcpServers": {
|
|
34
|
+
"verifyfirst": { "command": "uvx", "args": ["verifyfirst-mcp"] }
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Tools
|
|
40
|
+
|
|
41
|
+
| Tool | What it does |
|
|
42
|
+
|---|---|
|
|
43
|
+
| `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. |
|
|
44
|
+
| `list_instruments()` | All six instruments. |
|
|
45
|
+
| `get_instrument(id)` | Full detail plus every recorded failure it missed, each with its check. |
|
|
46
|
+
| `search(query)` | Substring search across the registry. |
|
|
47
|
+
| `get_entry(id)` | One entry, e.g. `NS-001`. |
|
|
48
|
+
| `get_protocol()` | A five-step checklist for claiming work is done. |
|
|
49
|
+
|
|
50
|
+
## Example
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
> blind_spots("screenshot")
|
|
54
|
+
|
|
55
|
+
screenshot (A rendered image) is blind to:
|
|
56
|
+
- Time. A still frame cannot distinguish 'renders one frame then stops'
|
|
57
|
+
from 'renders one frame correctly'.
|
|
58
|
+
- Whether scripts ran at all, as opposed to running and producing this.
|
|
59
|
+
...
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Notes
|
|
63
|
+
|
|
64
|
+
Zero dependencies — Python standard library only. Works offline from a bundled
|
|
65
|
+
copy of the registry; pass `--remote` to read the live one, which falls back to
|
|
66
|
+
the bundle on any failure.
|
|
67
|
+
|
|
68
|
+
Every entry in the registry is a failure that genuinely occurs, marked
|
|
69
|
+
`observed` (diagnosed first-hand) or `documented` (primary source cited and the
|
|
70
|
+
check reproduced). None are hypothetical.
|
|
71
|
+
|
|
72
|
+
CC0-1.0 — public domain. Maintained by [Zion Labs](https://zionlabs.io).
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["hatchling"]
|
|
3
|
+
build-backend = "hatchling.build"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "verifyfirst-mcp"
|
|
7
|
+
version = "1.0.0"
|
|
8
|
+
description = "MCP server for what your verification method cannot see — a registry of software failures that report success."
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.10"
|
|
11
|
+
license = "CC0-1.0"
|
|
12
|
+
keywords = [
|
|
13
|
+
"mcp", "model-context-protocol", "ai-agents", "llm", "verification",
|
|
14
|
+
"debugging", "observability", "agent-tools",
|
|
15
|
+
]
|
|
16
|
+
authors = [{ name = "Zion Labs" }]
|
|
17
|
+
classifiers = [
|
|
18
|
+
"Development Status :: 4 - Beta",
|
|
19
|
+
"Intended Audience :: Developers",
|
|
20
|
+
"Programming Language :: Python :: 3",
|
|
21
|
+
"Programming Language :: Python :: 3.10",
|
|
22
|
+
"Programming Language :: Python :: 3.11",
|
|
23
|
+
"Programming Language :: Python :: 3.12",
|
|
24
|
+
"Programming Language :: Python :: 3.13",
|
|
25
|
+
"Topic :: Software Development :: Debuggers",
|
|
26
|
+
"Topic :: Software Development :: Quality Assurance",
|
|
27
|
+
"Topic :: Software Development :: Testing",
|
|
28
|
+
]
|
|
29
|
+
# No dependencies, on purpose. An agent tool that drags in a resolver is a tool
|
|
30
|
+
# people skip installing, and the standard library covers JSON-RPC over stdio.
|
|
31
|
+
dependencies = []
|
|
32
|
+
|
|
33
|
+
[project.urls]
|
|
34
|
+
Homepage = "https://verifyfirst.dev"
|
|
35
|
+
Repository = "https://github.com/simulacra/verifyfirst"
|
|
36
|
+
Registry = "https://verifyfirst.dev/registry.json"
|
|
37
|
+
|
|
38
|
+
[project.scripts]
|
|
39
|
+
verifyfirst-mcp = "verifyfirst_mcp:cli"
|
|
40
|
+
|
|
41
|
+
[tool.hatch.build.targets.wheel]
|
|
42
|
+
packages = ["src/verifyfirst_mcp"]
|
|
43
|
+
|
|
44
|
+
[tool.hatch.build.targets.wheel.force-include]
|
|
45
|
+
"src/verifyfirst_mcp/registry.json" = "verifyfirst_mcp/registry.json"
|
|
46
|
+
|
|
47
|
+
[tool.hatch.build.targets.sdist]
|
|
48
|
+
include = ["src/verifyfirst_mcp", "README.md", "pyproject.toml"]
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"""verifyfirst — an MCP server for what your verification method cannot see.
|
|
2
|
+
|
|
3
|
+
https://verifyfirst.dev
|
|
4
|
+
"""
|
|
5
|
+
import sys
|
|
6
|
+
|
|
7
|
+
from . import server
|
|
8
|
+
|
|
9
|
+
__version__ = "1.0.0"
|
|
10
|
+
__all__ = ["cli", "server"]
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def cli() -> int:
|
|
14
|
+
"""Console-script entry point. The module keeps taking argv explicitly so
|
|
15
|
+
it stays runnable as a bare script for anyone who clones the repo."""
|
|
16
|
+
return server.main(sys.argv[1:])
|