日本語
verify/operators
free, read only, no account

You run a server. Being measured costs nothing.

There is no application to review, so there is nobody to persuade and no reason to charge you. Measurement is free and always will be. What you can pay for is being told the moment something changes, and being told exactly what to change when it does.

Do not trust us. Measure us first.

Before you put your server in front of this gate, put the gate in front of itself. It is on the same register as everyone else, under the same conditions, and it does not pass all of them today. On 2026-08-08 the first run against our own servers scored 0.0% on compensation disclosure. Under condition 06, 85.7% of our own tools failed before we fixed them to 2.9%. Both numbers are still published, and we did not delete them.

So this is not a claim that we are transparent. It is the other way around: point the gate at us, and keep whatever comes back, good or bad.

# measure this gate itself, right now
curl -s -X POST https://gate.horizonshield.dev/check \
  -H 'content-type: application/json' \
  -d '{"endpoint":"https://gate.horizonshield.dev/mcp"}'
Three steps

No account, no fee, no waiting list

  1. Put your endpoint in front of the gate

    It reads initialize and tools/list, and it reads your agent card. It calls none of your tools. Ten seconds, nothing installed, nothing signed.

  2. Read the verdict, and the hash under it

    Every verdict carries a record_sha256. Recompute it before you believe us. A verifier you have to trust is not a verifier.

  3. Fix what is not met, and be measured again

    Nothing here is reviewed by a person, so there is no appeal to write. Change the condition and the next sweep says so.

When a condition is not met

What to change, condition by condition

01 · endpoint
The gate could not complete initialize and tools/list from the public internet. Common causes: the server only listens locally, the transport is stdio rather than HTTP, or a proxy in front is rejecting an unauthenticated read.
02 · identity
Serve /.well-known/agent-card.json with at least a name and a description, as JSON, over HTTPS.
03 · disclosure
Declare paid_by, referral_fee and listing_fee on the card. Only silence disqualifies. "referral_fee: none" and "referral_fee: 20 percent" both pass. We are not scoring the answer, only whether it was given.
04 · determinism
Not measured unless you ask for it, because it means executing one of your tools. Ask, and name the tool that is safe to call twice.
05 · recomputable
This one is on us, not on you. If a hash does not recompute, that is our defect.
06 · absence vs failure
A disclosed measurement, not a pass or fail. From tools/list alone, the gate reads whether each tool's declared outputSchema can separate “the call failed” from “the call found nothing”, a boolean, or an enum with two or more values, where that state can live. It executes nothing and judges nobody: the verdict field is null on purpose, and the field names behind every score are published so you can see the false positives. Across 12,429 public endpoints, 96.7-99.1% of tools cannot make the distinction; 85.7% of ours could not either, before we fixed it to 2.9% (we measured ourselves first). To move your number: declare a real read-state (a boolean, or an enum like lookup: ok | absent) and put failures in the tool-error channel, so an empty result and a failed read never arrive as the same value. That fix is free and complete. If you would rather have it done for you and measured in public, before and after under one ruler, that is the paid remediation, with the conflict of interest named on its own page. The verdict itself is never for sale. Named by Federico Blanco Sanchez-Llanos, “The Mould, Not the Letter”, 2026-08-20.

If you want this walked through against your actual server, that is the paid part: 2.0 hours, itemised, and the conflict of interest named on the page. Before you go there, the three free things on that page solve most rows, and if we think yours is one of them we will say so rather than take the work.

The badge

Drawn when it is asked for, not issued once

There is no procedure for taking a badge away, because there does not need to be one. The image is drawn from the register at request time, so it stops being green the moment your row does.

A saved file is a different thing: it stays green forever. So the saved version carries the date it was measured and the address where the current row lives. A dated snapshot is not a lie. A green rectangle with no date would be.

One thing you should know

Anyone can put a server in front of this gate, including one they do not own. That includes yours, and it includes ours. The check is read only and calls no tool, so there is nothing there to abuse. But it does mean the register can contain a row you did not create. If that row is wrong, ask for a re-measurement and both results stay published.