Bitcoin-anchored, trustless public verification ledger (JIDEC) for AI-agent evidence: fetch the record bytes, recompute the SHA-256, and check the OpenTimestamps/Bitcoin timestamp β no trust in the issuer required.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by Horizon Shield.
get_price_rangeReturns the fair price range (min, avg, max), the overcharge danger threshold, unit, price trend, and field notes for a Japanese construction or renovation job.
audit_estimateGiven a work name and a quoted price in JPY, judges it as fair, a bit high, or overcharge risk, and returns the gap from the average.
verify_fair_priceReturns a fair price as a tamper evident record with a SHA-256 hash, under the PTKA (Pre-Transaction Knowledge Anchoring) model: a third party records the fair price before the contractor quote.
check_red_flagsChecks whether wording in an estimate or sales pitch matches known overcharge or high pressure tactics (lump sum, today only discount, free inspection, door to door). Language agnostic.
get_estimate_reading_guideReturns universal principles for judging whether any estimate is honest: the overhead ratio, how to treat lump sum entries, how to spot pressure tactics. Language agnostic.
list_cost_categoriesLists the construction and renovation work categories for which fair price ranges and red flags are maintained.
Don't trust the estimate. Verify it.
An MCP server that lets AI agents check whether a Japanese construction or renovation estimate is fair, against open data, and returns a result anyone can verify against Bitcoin (OpenTimestamps). No account, no key.
A tree adds one ring a year. Nobody can paint one in afterwards. NENRIN gives that property to software services.
In one thirty day window, measured 2026-08-17, this server appeared in 93,983 AI search results. How many of those became a call from outside, we cannot say. The usage counter deliberately stores no IP addresses, so it cannot separate our own automated checks from external traffic. An earlier version of this paragraph said the answer was 0. This instrument cannot establish that, so the claim is withdrawn here rather than quietly deleted. Discovery is solved. Choice is not. An agent picking between 90,000 servers can only read what each vendor wrote about itself. NENRIN adds the missing layer: records of conduct that the vendor did not author and cannot delete.
How it works, in three lines:
The specification is anchored on the public ledger as entry 19
(sha256 9ccba2e325fd2a555fcdb2dec519b8c6bf7a669064674846aea98ecfff824e3d):
NENRIN_SPEC_v1.md. It names its own prior art (Certificate Transparency, Rekor, in-toto, SLSA, OpenTimestamps), states exactly which combination is claimed as new, and invites refutation into the same ledger.
The witness intake is live. Start here:
We are the first test subject under our own rules. The ledger keeps the record of our gate failing its own test, and the full 522 incident that started all of this. Unflattering records stay.
If a register that cannot delete criticism of its own operator is infrastructure you want to exist, star this repository. Stars are how researchers and agent platforms find it. The rings accumulate either way. They accumulate faster with witnesses.
| Path | What it is |
|---|---|
workers/hs-verify-gate | The verification gate: nightly sweeps, on demand checks, probed_via route disclosure, gate_commit pinning, surface change tracking |
workers/hs-ledger | The JIDEC append only ledger and the NENRIN witness intake |
workers/hs-ledger/nenrin/agreement-v0 | The agreement record: two agents, two signatures, one set of bytes. Verifier written twice, in Python and JavaScript, and proved to agree |
workers/hs-verify-relay | The public edge relay born from the 522 incident (documented in the discrepancy record) |
verify-directory | The public register page: every listed server, our own included, with its live verdict |
| everything else | The GitHub Pages site for the human facing service at the-horizons-innovation.com |
A conduct record is one sided. Somebody measured somebody. Nothing in it records the other half of commerce: that two agents agreed on terms, and that both said so.
a2a-agreement-v1.1 is that record. At time T, party A and party B both signed the same canonical
bytes describing terms, and each of them pinned, by sha256, a conduct record about the OTHER party
written by somebody who is neither of them.
What it refuses to be is as load bearing as what it is. No custody. No matching. No editorial step. The recorder must not hold funds, must not decide whether a deal happens, and must not charge a fee that varies with the amount or the outcome. A record whose fee moves with the number is refused by name. Refusal is mechanical, and none of the terms are ever judged by anyone in this layer.
The claim is not a new primitive. It is the combination: two mandatory signatures, the counterparty's measured conduct pinned by sha at the moment of signing, an intake that judges nothing, and an external anchor nobody here operates. Prior art is named in the draft rather than left for a reader to find: AP2, x402, ACP, MPP, Cedulon, the 1F916 Agent Record, and SCITT.
The verifier is written twice. Once in Python, once in JavaScript, by design and not by accident: two implementations that disagree are the exact seam this project measures everywhere else, and building one into this layer on purpose would be a poor joke. 5,286 frozen cases, and the two produce the same report byte for byte, including every refusal code and the English sentence attached to it. Proving that moved the Python once, when the JavaScript disagreed on two cases and the check that settled it was running the Python against its own frozen fixture, where it failed the same two.
Then the rules were broken on purpose, 77 ways in Python and 36 in JavaScript, to find out whether the 5,286 cases could tell. Six breakages survived, and not one was a defect in either implementation. They were holes in the test set. All six are closed.
ops/AGREEMENT_EXT_v0_1_DRAFT.md.
v0 is anchored as JIDEC entry 39 and does not move.workers/hs-ledger/nenrin/agreement-v0ops/AGREEMENT_INTAKE_v0_BOUNDARY.mdThere is no intake yet, and that is deliberate. A record layer built before it has two parties is an empty exchange, and an empty exchange is worse than none.
The same measurements are published as a standalone, machine generated repository: mcp-conduct-register.
Nobody selects the rows there either. A script rebuilds the table from the public API once a day,
and the same run writes a
register.json
snapshot so an agent can read the register without parsing Markdown. It carries a CITATION.cff,
so the register can be cited the way a dataset is cited, and an
llms.txt
that states in plain words what the register is and, more importantly, what it is not.
Since 2026-09-04 the gate can be used without asking anyone at HORIZON SHIELD.
For the server you operate. Put {"allow_tool_call": true} at /.well-known/mcp-conduct.json on your
origin. Only the owner of an origin can place a file there, so the gate takes it as consent, measures
determinism on the public register with it, and writes into every verdict where it read it (gate 0.2.4).
Add a compensation block to your agent card (paid_by, referral_fee, listing_fee; the content is not
judged, only its absence) and POST /watch once. A row can then reach verified with no hand of ours involved.
For your CI. One step measures the server on every push and recomputes the verdict hash on the runner,
so the gate is never trusted:
wedjat-check-action
(uses: ogasurfproject-jpg/wedjat-check-action@v1). It fails the job on a measured failure and leaves
unmeasured conditions unmeasured; require and must_pass decide how strict that is.
Factual signals from GitHub, npm, and our automated checks β not a rating.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/ogasurfproject-jpg-horizon-shield-3)<a href="https://allmcps.com/mcp/ogasurfproject-jpg-horizon-shield-3"><img src="https://allmcps.com/api/badge/ogasurfproject-jpg-horizon-shield-3?style=directory" alt="Horizon Shield on AllMCPs" /></a>