screenverity-mcp
# screenverity-mcp
MCP server for **[ScreenVerity](https://screenverity.com)** — U.S. exclusion, debarment and
licence screening for agents, with an Ed25519-signed receipt of exactly which list snapshots
were checked.
Screening one name through a state or federal portal usually costs an agent **~50k–200k tokens**
of browse-and-parse traffic and leaves no audit artefact. One `POST /v1/screen` is **~2k tokens**
of structured JSON, and it leaves evidence.
Coverage is explicit and deliberately unexaggerated — call `sources` and read it. This is not a
"50 states" product.
## Install
```bash
npx screenverity-mcp
```
Or run the single file directly — it has **no dependencies**:
```bash
curl -O https://api.screenverity.com/mcp/server.js
node server.js
```
### Claude Code
```bash
claude mcp add screenverity -- npx -y screenverity-mcp
```
### Any MCP client (stdio)
```json
{
"mcpServers": {
"screenverity": {
"command": "npx",
"args": ["-y", "screenverity-mcp"]
}
}
}
```
## Tools
| Tool | What it does |
|------|--------------|
| `screen` | Screen one subject across every loaded list; returns `clear` / `possible_match` / `match` + a signed receipt |
| `sources` | Which lists are loaded, their jurisdiction, freshness, and `full` / `partial` / `never_loaded` coverage |
| `verify_receipt` | Check an Ed25519 receipt against its request/response |
**All three are free.** No API key, no account, no wallet.
Call `sources` before assuming any particular list is covered.
## Cost
Free. There is no payment, no key and no account.
The public endpoint is rate limited. If you are limited, `screen` returns
`{"error": "rate_limited"}` — **it never fabricates a `clear` result.** That property is
deliberate: a screening tool that guesses is worse than no screening tool.
> 0.1.0 charged $0.25 per call via x402. That is gone. If you pinned 0.1.0, upgrade —
> it points at an endpoint that no longer exists in that form.
## Using the results
- `possible_match` means **adjudicate**, not auto-reject.
- If `complete` is `false`, a list was unavailable — it is not a full screen.
- Always pass `npi`, `dob`, or `license` when you have them. Common names without identifiers are
capped at `possible_match` by design.
## Not a consumer report
ScreenVerity is compliance-workflow tooling that retrieves and signs public exclusion-list data.
It is **not** a consumer reporting agency and its output is not a consumer report. Do not use it
to make eligibility decisions about employment, credit, insurance, or housing. Consult counsel
about FCRA obligations for your use case.
## More
- Skill description for agents: [`SKILL.md`](SKILL.md)
- Integration guide: [`INTEGRATION.md`](INTEGRATION.md)
- API spec: [`openapi.json`](openapi.json) · live at https://api.screenverity.com/openapi.json
- Coverage, right now: https://api.screenverity.com/v1/sources
## License
MIT
TDQS
Scored across 3 tools
Each tool serves a clear, separate purpose: 'screen' performs the core lookup, 'sources' provides metadata about loaded lists, and 'verify_receipt' handles cryptographic verification. There is no overlap in function or ambiguity in what each does.
Tool names are simple, lowercase, and follow a consistent style. 'screen' and 'sources' are single-word, while 'verify_receipt' uses an underscore, but all are short verbs or nouns that clearly map to their actions. No mixed conventions or vague verbs.
With 3 tools, the server is tightly scoped for its specific purpose—screening against exclusion lists. Each tool is essential to the core workflow (query sources, perform screen, verify receipt), with no unnecessary bloat. This is well within the ideal range.
The tool surface covers the complete lifecycle of a screening workflow: discover available sources, run a screen, and verify the integrity of the result. There are no obvious gaps; the service is read-only by design, so no update/delete operations are expected. All critical operations are present.