WEDJAT For registry operators

A verify signal you can put next to a listing.

You list MCP servers. Sooner or later someone asks which of them can be trusted, and answering that yourself turns a registry into a referee. This is an outside measurement you can read for free, show beside a row, and recompute yourself without trusting us.

The problem it solves for you, specifically

A registry that grades its own listings has taken a side. Every complaint about a bad server becomes a complaint about your judgement, every good verdict looks like promotion, and the moment money touches the list the grade is worthless. The way out is a measurement made by someone who is not you, does not rank, and does not sell placement.

That is the only role this gate wants. It measures conformance and disclosure, publishes what it found, and says nothing about whether a server is good, safe, or worth using. It is not an endorsement and never renders one.

What one lookup returns

verified
true only on a full pass. null otherwise. Never false. A server we have not measured, could not reach, or measured as incomplete all come back null, because those are different from failing and none of them is your reader's problem to untangle.
state
verified, pending, or held. Held means the instrument could not measure, not that the server is bad. It is reported rather than hidden.
measured_at
When that verdict was taken. A green with no timestamp is decoration.
record_sha256
The hash of the verdict. Strip two fields, serialize, hash, compare. If it does not match, we altered the record and you caught us.
Why never false

A boolean that can be false invites a registry to render a red mark next to a server whose only sin is that nobody measured it. Absence is not a negative verdict, so the field cannot express one.

Two calls, no key, no account

One server

# reads the register, does not measure
GET https://gate.horizonshield.dev/is-verified?endpoint=<url>

A page of servers

# up to 50 endpoints per call
POST https://gate.horizonshield.dev/feed/batch
{"endpoints": ["https://a/mcp", "https://b/mcp"]}

A fresh measurement instead of the stored one

POST https://gate.horizonshield.dev/check
{"endpoint": "https://a/mcp"}

# by default this calls no tool on the server it is pointed at.
# determinism stays unmeasured unless the owner has given consent.

The machine readable spec is at /spec and is MIT. There is a badge endpoint if you would rather render an image than style the state yourself.

What it deliberately does not do

Reasons to check us rather than believe us

Every claim below is either reproducible from your own terminal or visible in a public record.

Where this actually stands today

Small, and stated plainly rather than dressed up. These are the real numbers on 2026-08-23.

6
rows verified
1
row pending, in public
13/13
JCS conformance vectors
0
verdicts requested so far for a server outside our own zone
That last number is the honest one

Nobody outside this operator has used it yet. We publish that count at /usage rather than describing the project with an adjective, and until it moves we do not call this infrastructure. You would be the first, which is worth knowing before you decide, and is exactly the sort of thing a register that hides nothing has to tell you.

Terms