mcpField
H
hs-audit-app

hs-audit-app

リモート
github.com/ogasurfproject-jpgビジネス・マーケティング2今日更新
リポジトリ

hs-audit-app について

HORIZON SHIELDは、オープンなコストデータを基に日本の建築・リフォーム見積もりを検証するMCPサーバーです。第三者が確認できる証拠を返し、OpenTimestampsでBitcoinにアンカーします。

主な機能

  1. 01オープンなコストデータとの見積もり比較
  2. 02観測データの根拠URLの提示
  3. 03検証可能な監査証拠の作成
  4. 04OpenTimestampsによる証拠のアンカー

活用シーン

  1. 01リフォーム見積もりが妥当な範囲か確認
  2. 02建築費用の評価根拠を確認

MCP 対応

MCPサーバーとして、AIエージェントによる日本の建築・リフォーム見積もりの評価を可能にし、検証可能な証拠を返します。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://hs-audit-app.oga-surf-project.workers.dev/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

詳細

🛡️ HORIZON SHIELD

AI エージェント向けの検証可能な建設見積もり監査

見積もりをうのみにしないでください。検証しましょう。

AI エージェントが日本の建設・リフォーム見積もりが公正かどうかをオープンデータと照合して確認し、誰でも Bitcoin を使って検証できる結果(OpenTimestamps)を返す MCP サーバーです。アカウントもキーも不要です。

MCP レジストリ トランスポート:streamable-http オープンデータ:JCCDB 526,128 · CC BY 4.0 アンカー:Bitcoin / OpenTimestamps 認証:なし GitHub スター Glama の HORIZON SHIELD KIRA Smithery A2A Python SDK:署名ベクターがマージされました

Probity による検証済み Probity による検証済み(github.com/probityai/probity):A2A conduct walk の RFC 8785 正規化は agent-evidence-vectors コーパスに合格しています。最新の合格実行

ひとことで。 JCCDB(Japan Construction Cost Database)は、日本の建設・リフォーム費用に関するオープンデータセットです。建設現場で30年の経験を持つ大賀俊勝が作成し、The HORIZONs Co., Ltd. が CC BY 4.0 のもとで公開しています。バージョン 5.1(2026-10-04、DOI 10.5281/zenodo.23133068、全バージョン 10.5281/zenodo.22127751)には、88件の日本の公的情報源から収集した526,128件のレコードが含まれます。内訳は、95,403件の明細と430,725件の観測値で、各観測値には根拠となる URL が付いています。米国版にあたるのが USCCDB(United States Construction Cost Database)で、2,849,829件の観測値を収録しています(DOI 10.5281/zenodo.22979157)。HORIZON SHIELD(https://shield.the-horizons-innovation.com)は、JCCDB を基盤とする購入者向けサービスで、日本のリフォーム見積もりが公正かどうかを確認します。

査読済み(2026年10月)。 Toshikatsu Oga,「A Demand-Side Benchmark for Consumer-Facing Construction Cost Questions: Price-Figure Span, Output Consistency, and the Case for a Verifiable Reference Layer」、『Intelligent Infrastructure and Construction』2026、2(4)、15(MDPI、オープンアクセス、CC BY 4.0)。DOI 10.3390/iic2040015。日本のリフォーム価格に関する40件の質問を最先端の LLM に提示したところ、相場の幅は中央値で2.5~3倍、1つの回答に含まれる価格数値の幅はすべて中央値で10倍となり、過剰請求のしきい値を示した回答はありませんでした。質問、未加工の出力、ハーネス、採点コードは公開されています。

Fair-price answers for common buyer questions (Japanese)

Each row is one question a homeowner in Japan asks, the page that answers it with the range from souba-db 2.2.0, and a JSON evidence object with the same numbers, a comparison across variants, steps to check a quote yourself, and the dataset hash anchored in JIDEC entry 42. Index: evidence/index.json.

QuestionAnswer pageEvidence object
外壁塗装 30坪 相場 いくら/souba/gaiheki/p002.json
外壁塗装の見積もりで150万円は高いですか/souba/gaiheki-150man/j001.json
屋根 葺き替え 30坪 費用/souba/yane-fukikae-slate-hiyou/p005.json
この屋根修理の見積もりが適正かどうか知りたい/souba/yane-check/j003.json
給湯器 交換 費用 相場/souba/kyutoki/p013.json
給湯器交換で20万円は高いですか/souba/kyutoki-20man/j002.json
トイレ リフォーム 費用 目安/souba/toilet/p016.json
シロアリ駆除 費用 適正価格/souba/shiroari/p071.json

Independent evidence, as of 2026-10-08

What people who do not work for this project have measured, signed or reproduced. Every row links to something you can fetch and recompute. The last two rows are the counts that are still small, stated as plainly as the rest.

Every night the TSUNAGI board runs these outside implementations again, cloned from their authors' own repositories at their latest commit, against the corpora in this repository, and keeps every disagreement on the board. A reproduction is checked again each day, not only on the day it was made. Add your implementation with one pull request to tools/tsunagi/implementations.json.

内容誰が確認先
a2a-card-sign-v01コーパスの5つのs0-controlベクトルを、A2A Python SDK公式のテストスイートに統合しました。変更のたびに、そのCIで、a2a-sdk、@a2a-js/sdk、a2a-go、参照署名実装によって署名された1つのAgent Cardが検証され、共通のバイト列に正規化されること、署名後に同じカードを編集すると拒否されることを確認します。レビューでは、テストが読み取らないベクトルフィールドと、凍結済みの本番カードを削除するよう求められました。対応した結果、承認され、マージされましたa2aproject/a2a-python、Iwaniukooo11がレビューし、マージ(2026-10-07)#1286、main上のベクトル、テスト
ソースコードを一切読まず、仕様だけからNENRINの来歴検証器を作成し、interop-v0の5つの判定署名と21個のダイジェストを再現し、本文の解釈に推測が必要だった5箇所を報告しました。本文を修正しました(interop-v0.1)。VERIFIER.mdだけを基に作成した2つ目の実装も18件中18件で一致し、kuangmi-bitの実行者が、現在ツリーにある36個のエッジベクトルの期待値を作成しました(interop-v0.2/edge)kuangmi-bit、A2A Discussion #1631およびPR #30(2026-10-04および2026-10-05)INTEROP.md、#1631、PR #30
a2c1c0b4のコミットを基に、NENRINとエージェントガバナンス用語の対応表をレビューしました。worker.js、agreement_verify.py、key_succession.py、RESUME_SPEC_v1.mdの引用行を確認し、run0002のMUSUBI決済をオフラインでバイト単位に再計算しました(アンカーb13a3869...、決済11c27fcf...、終了コード0)。2回のレビューで3行を下方に移しました(署名済み証人レコードを読者が検証できるようになるまでgovernance_attestationを除外し、bilateral_receiptとbaseline_revisionをfalse_analogに移動)。レビュー済みとしてファイルがマージされましたaeoess、agent-governance-vocabularyのメンテナー(2026-10-05)レビュー、マージ済みファイル
settle v0からv1.3で、署名されていない{"action": ...}が条件付きアクションの承認として通り、どのsettleバージョンでもprincipal以外は承認できないことを発見しました。babyblueviper1が独自の参照検証器とともに、承認者フィールドと9個のベクトルを作成しました。settle v1.10でこれらが採用され、両実装は9件中9件で一致しますbabyblueviper1、Issue #29(2026-10-05)報告、ベクトル、settle_v1_10.py
pipavlo82自身の新しいランナーにPyPIからnenrin-verify 0.4.5をインストールしました。settle v1.10は14個すべてのセルフテストグループに合格し、承認者ベクトルは9件中9件で一致し、3つのミュータントをすべて検出し、MUSUBIの22モジュールすべてに合格し、run0002を再現し、ベンダー提供ファイル51個すべてがソースコミットとバイト単位で一致しました。クリーンなWindows仮想環境では、pipavlo82がcontract_v0のNode版が一度も実行されないことを発見し、0.4.6で修正しました。pipavlo82はWindowsで修正を確認後、そこで0.4.7の全スイートを完了しました(Windows 11、Python 3.12.10、Node 22.15.0):22件中22件、終了コード0、1596秒、run0002に変更なし、マニフェストの全53ペアを827afef8に対して検証しました。pipavlo82自身の言葉によれば、公開済みの合成テストとフィクスチャを再現したものであり、完全な独立セキュリティ監査でも、実際の二者間契約でもありませんpipavlo82、Issue #29(2026-10-05)報告、実行結果、修正、Windowsでの修正確認、Windowsでの全実行結果
自身のホストからゲートを利用し、レコードの内容を自身のドメインでコンテンツアドレス指定方式により配信し、そのドメインが配信する鍵で署名した同一バイト列を台帳に登録しましたbabyblueviper1のエージェント、api.babyblueviper.com(登録日2026-09-28)コピー、登録記録
両者が署名した契約に基づく実行を行い、署名しました。Bitcoinブロック969090にアンカーされ、逸脱なしでwithin_grant、finalとして決済されました。2台のマシンで決済結果がバイト単位で再計算されますapi.babyblueviper.com(契約者)、実行19c44a79…(決済日2026-09-30)run0002、結果
どちらの当事者もこのプロジェクトではないMUSUBI契約に署名し、実行し、決済しました。principalのagent-passport.orgとcontractorのkuangmi-bit.github.ioはIssue #31で合意し、条件に署名して、実行をBitcoinブロック970480にアンカーし、決済結果を公開しました:within_grant、final。settle v1.10で両者のsettlement.jsonをバイト単位で再計算でき、settle v1.16でも同じ判定になります。当事者のファイルは、settleコア仕様の実際のベクトルになりましたagent-passport.orgおよびkuangmi-bit.github.io、契約d7118f28…当事者のリポジトリ、決済、#31、仕様とベクトル、IETFインターネットドラフト
AIコーディングエージェントを使い、aeoessの指示のもと、期待出力のない入力コピーからSETTLE_CORE_v0.mdとNOTES.mdだけを基にMUSUBI settleコアの2つ目の実装を作成し、比較前にコードと出力を凍結しました。76個すべてのベクトルで、8つのコアフィールドすべてが一致します。承認署名に関するaeoessの質問により、参照実装とは異なる解釈を許す2つの文が見つかり、本文を明確化し(revision 0.1)、ベクトルを3個追加しました。aeoessからの25件の実装メモを受けてrevision 0.2とし、本文が曖昧または誤っていた8箇所を修正し、親の絞り込みを全文で明記して、ベクトルを38個追加しました。revision 0.2に更新したaeoessのチェッカーは、未評価フィールドなしで117個すべてのベクトルに一致しました(4ca508f)。さらにaeoessから10件のメモを受けてrevision 0.3とし、ベクトルを6個追加しました。revision 0.3に更新したチェッカーは、未評価フィールドなしで123個すべてのベクトルに一致しました(c0f8f4f)。c0f8f4fでも再実行し、123件中123件、すべての出力がバイト単位で一致しました。revision 0.4に更新したチェッカーは、未評価フィールドなしで128個すべてのベクトルに一致し、以前の123個の出力もバイト単位で同一でした(53cfafb。作成者が実行し、こちらでは再実行していません。新規ケースに対するブラインドではありません。この結果はルール、理由、ベクトルを変更しなかったrevision 0.5にも当てはまります)。real_p31_baselineの背後にある契約の当事者を維持する作成者が実行しました。7f9a224でこちらも再実行し、76件中76件が一致しましたaeoess(Agent Passport System)、Issue #49(2026-10-17)チェッカー、報告、こちらでの再実行、53cfafbのrevision 0.4、NOTES.md N13
SETTLE_CORE_v0.md(revision 0.5)と公開済みのベクトルだけを基に、参照実装も2つ目の実装も読まずに、MUSUBI settleコアの3つ目の実装を作成しました。128個すべてのベクトルで、8つのコアフィールドすべてが一致しました。Ed25519はcryptography経由、または独自のRFC 8032検証器で処理します。kuangmi-bitも同じマシンで参照実装を実行し、128件中128件が一致しました。bbe455cで両方の署名経路を再実行し、128件中128件が一致しました。本文とベクトルの不一致に関する2つのメモ(6.0、本文がstrictではない厳密署名済みレコード、4.3、親の絞り込み)はrevision 0.6に反映され、ベクトルは変更せず、文を2つ修正しましたkuangmi-bit、Issue #49(2026-10-19)実装、報告、NOTES.md N20
pipavlo82自身のWindows PCからゲートのA2Aインターフェースに2回アクセスし、/a2aが異なるURLを示すエンドポイントの申告を返すことを発見しました(EXT-001。同日にserved_byで修正)。その後、修正をオフラインで検証しました。最初に取得したレスポンスは新しいクライアントに拒否され、served_byだけを変更したコピーも拒否されます。この2回のアクセスは署名なしで、エントリー58にアンカーされており、pipavlo82がその証明をBitcoinブロック968914に対して確認しました。2026-09-29には、pipavlo82.github.ioで配信される鍵で署名した別のアクセスがあり(7/7)、観測結果がpipavlo82の管理する鍵に紐付けられました。2026-10-07にpipavlo82は同じ鍵で署名した別のアクセスを登録しました(7/7)。GET /witness/<sha>が正規バイト列、署名、鍵を返し、その鍵がpipavlo82.github.ioで配信されるため、読者は台帳だけから署名を確認できます(台帳エントリー73にアンカー、Bitcoinブロック970423、2026-10-08)。pipavlo82自身の言葉によれば、これはWindowsマシンで当方の参照クライアントを使った1回の観測であり、Codexの支援とCrystal Receiptのコンテキストを開示しています。プールへの参加も、独立性の主張もありません。署名済みのアクセスは帰属を示すものであり、再検証プールのクォーラムには、独自の/a2aで応答する証人が引き続き必要ですpipavlo82(2026-09-27、2026-09-29、2026-10-07)#27、FINDINGS_EXTERNAL.md、鍵、curl -s https://ledger.horizonshield.dev/witness/07838de9bbcd913bf56a4b1a59ddeb27a7c45225a23a1af047b939a854f521b6、2026-10-07のレコード、curl -s https://ledger.horizonshield.dev/witness/747ecd97635e104e75185212cfb70e3cc37310ea1f41966a818bfb5b5d57df15
独立したGo実装で、固定したゲートカードの@a2a-js/sdk正規形式を、コミット済みフィクスチャを使ってオフラインでバイト単位に再現しました(6410バイト)。kuangmi-bitが、上流への報告で提案した修正を訂正しました。空の値は再帰的に削除する必要がありますkuangmi-bit、a2aproject/a2a-go#445にて(2026-09-28)オフライン実行
astrogilda自身のリーダーで署名ベクトルを再現しました。s3の未知フィールドのケース13件とs4の二重名のケース5件を、両方の解釈で実行し、MANIFESTのa2a-go列と一致しましたastrogilda、Probityの証拠ベクトル(2026-10-02)probityai/agent-evidence-vectors#34、#42
手書きのES256検証器を使い、自分たちのテストファイルを使用せずに、a2a-pythonの修正候補と提供した11個のテストを検証しました。13個すべてのベクトルの長さとSHAが、a2a-card-sign-v01のcanonical_utf8_hexと一致することを確認しましたkuangmi-bit、a2a-python#1287(2026-10-01)実行結果
受信したJSONを正規化する検証器の候補を公開しました。自己報告された結果は、すべてのベクトルでコーパスと一致し(s0 5/5、s1 8/8、s2 11/11、s3 13/13)、現在はMANIFESTの固定列になっていますaeoess、a2a-python#1287(2026-10-02)候補、#1287
両者が署名した二者間契約で、署名対象のバイト列内に公開への同意を含みます。両方の署名鍵は、各ドメインが配信する鍵と一致しますこのプロジェクトとapi.babyblueviper.com、レコード5d3e62f1…(受理日2026-09-28)curl -s https://agreement.horizonshield.dev/agreement/5d3e62f1f0b139992dd15db07b4abc6288a8a824effc31da8300ebe1d6ae6e6c/report
独自の検証器でゲートのエージェントカード署名を再検証し、10件中10件が一致しました。記録したダイジェスト7c3bcb5f9633…は、署名ツールが出力したものと一致します。そこに至るまでに、検証器のバグを2つ見つけて修正しましたAgenstry、アムステルダムの独立したエージェントディレクトリ(2026-09-28)掲載情報、カード
外部の台帳適合性仕様に基づいてJIDEC台帳エクスポートを採点し、VLC-1 CIで検証しました。L1は日次Bitcoinバッチに刻まれた先頭に対する結果で、VLC-1 1.4.1-draftの正誤表で終了マーカー自体がチェーンされていないと判明したため、ログ単独ではL0でした(EXT-022)。2026-09-29に修正しました(833f8048)。マーカーに独自のentry_sha256を持たせ、同じ手順で最後のエントリーにリンクしたため、マーカーを書き換えるとハッシュが破損します。VLC-1の再採点結果は未公開です。報告した課題の1つは、そこにEXT-020として記録されていますVLC-1仕様のメンテナーVLC-1、THIRD-PARTY.md
自身のサーバーを測定するためにゲートを利用した外部運用者2026-10-02までの30日間に実在したホスト5台(カウンターは6台を示しますが、1つは名前解決できないテスト名です)。最後の利用は2026-09-23(UTC)curl -s https://gate.horizonshield.dev/usage
公開レジストリにある、当プロジェクトのものではない行10件中2件:1件は保留中、1件はPOST /watchで匿名追加され、まだ測定されていませんcurl -s https://gate.horizonshield.dev/register
毎週 tools/adoption/count_adoption.py で集計しています。最終集計日は 2026-10-26 です。すべての数値は閲覧できるソースに基づいています。閲覧できなかったソースについては、ゼロとして数えるのではなく、その旨を記載しています。集計全体は ops/adoption/latest.json をご覧ください。
項目件数出典
当プロジェクトのバイト列または判定結果を再現した独立した実装7 人の作者による 19 行(a2a-card-canonical-form 1、a2a-card-sign-v01 7、a2a-card-walk 1、agent-card-signature 1、musubi-approval-v2 1、nenrin-action-presence 2、nenrin-provenance 3、nenrin-witness-reader 1、trace-intake 1、vate-nenrin-s3-crosswalk 1)tools/adoption/registry.json。各行に公開リンクがあります
当プロジェクトのコードの再現、およびベクトルまたは記録の統合(上の行とは別に集計)再現:2 人の作者による 2 行、統合:1 人の作者による 1 行tools/adoption/registry.json。kind が reproduction または integration の行
ウォークに署名し、台帳に登録した外部ドメイン3(api.babyblueviper.com、kuangmi-bit.github.io、pipavlo82.github.io)台帳にあるすべての nenrin-witness-batch-v1 エントリー
再検証プール2 つの制御クラスターに 2 人のメンバー。クォーラムには 2 クラスターが必要workers/hs-ledger/nenrin/recovery-v0/pool_report.json。クラスターについては workers/hs-ledger/nenrin/recovery-v0/witness_diversity_report.json
外部当事者との署名済み MUSUBI 契約3(当プロジェクトのメンバーが当事者ではないもの:1)workers/hs-ledger/nenrin/musubi-v0/ にある署名済み契約、および当事者自身が公開した契約。registry.json に記載し、署名を検証済み
...うち最終確定に至ったもの。当事者の決済内容をここでバイト単位で再計算1各決済で指定されたバージョンの決済検証ツールを、当事者自身の契約、イベント、ヘッダービューに対して実行
証拠(ウォーク、契約、または合意)に署名した外部 ID4上記 3 行と合意記録
trace-pin-v0 で記録がピン留めされた外部 TRACE 署名鍵0台帳と保留プールにあるすべての nenrin-trace-pin-batch-v0 エントリー
conduct-witness-template から作成され、過去 30 日以内に再現実行が成功した公開リポジトリ1GitHub API

募集中:別の作者による NENRIN プロベナンス検証ツール(言語は問いません)で、interop-v0、interop-v0.1、interop-v0.2/edge の判定署名を再現するもの。現時点では 2 件あり、どちらも kuangmi-bit によるものです:workers/hs-ledger/nenrin/interop-v0/INTEROP.md;任意の NENRIN プロベナンス検証ツールを九つの survivors ベクトルに適用し、結果を投稿してください:npx nenrin-tsunagi run nenrin-interop-v0.3-survivors -- " {in} {out}"。参照実装は npm install [email protected] の後に 1 つのコマンドを受け取ります(papers/nenrin-stack/README.md の「Rerun it from outside」セクション;複製パッケージ doi:10.5281/zenodo.23344510)。

外部証人が 1 つあることは第一歩ですが、ネットワークと呼べるものではありません。以下の再検証プールでは、これを 1 つの制御クラスターとして数えており、独立した制御が 2 つ必要なクォーラムにはまだ達していません。2 つ目を募る公開依頼は Issue #27 です。

すべての署名が検証されたとき、このシステムを欺きうるもの

パーサー、署名、チェーンを破ることは、このリポジトリがまず対処するために作られた攻撃です。より難しいのは、そのすべてが成立しているにもかかわらず、システムに何か偽りを伝えるという、なお残る問題です。以下では、私たちが把握している 6 つの方法、それぞれに対して実装されている対策、実際の利用でこれまでどの程度検証されたか、そしてここにあるどれほどのコードでも対処できないことを説明します。

攻撃構築したものこれまでに実利用で試されたことできないこと
組織的シビル攻撃:異なる鍵を持ちながら、同一の管理者に従う証人または当事者witness_diversity.mjs は、登録ドメイン、IP、ネームサーバー、名前、鍵、申告された法人を強いシグナルとして、ASN や共有ホスティングを弱いシグナルとして使い、プールを管理クラスターに分類します。抽選では、同じクラスターから2人目が選ばれることはありません。 independence_v0.py は、各鍵が署名した申告に基づき、契約の当事者のうち異なる法人の数を、契約に記載されたクォーラムと照合します再検証プールのメンバーは1人なので、single_control_cluster とクォーラム不足が報告されます。どちらの署名済み契約にも、独立性クォーラムはまだ記載されていません。2026-10-02以降、契約では最終確定をクォーラムの成立に依存させられます。settle v1.8 は、記載されたクォーラムが満たされるまで final を拒否します。また、convergence v0(settle v1.9)は、当事者と署名済みの履歴を共有する計測者を数に含めません。これらを使った署名済み契約は、まだありません異なるプロバイダーと異なる法人を使うシビル攻撃を阻止すること。攻撃を高コストで目立つものにはしますが、不可能にはしません
署名された虚偽:虚偽の観測に対する正しい署名corroboration_v0.py は、署名の数ではなく法人ごとに計測を数え、Bitcoin ビーコンとアンカーの時間枠内にあるものだけを数えます。各項目は、裏付けあり、異議あり、矛盾あり、判定不能、または裏付けなしとして扱われます。NENRIN は不一致を解消せずに保持し、response-v0 によって、計測対象の当事者が台帳上で回答できます2人の外部証人がゲートを確認し(issues #25 および #27)、外部の指摘1件がプロトコルを変更しました(EXT-001)。裏付けを義務付けた署名済み契約はまだありません。2026-10-02以降は義務付けが可能です。settle v1.8 は、裏付けが成立するまで final を保留します。settle v1.9 は、両当事者が固定したプールから将来の Bitcoin ブロックによって選ばれ、抽選後に計測し、2つ以上の手法で一致した計測者のみを数えます独立した法人同士の意見が異なる場合に、どちらが正しいかを決めること、またはすべての独立した計測者が虚偽を伝える場合にそれを見抜くこと
意味上の契約:双方が同じバイト列に署名しながら、「完了」の意味を異なって解釈することterms_v0.py:すべての成果物は、コンテンツアドレス方式の語彙に含まれる項目であり、数量、単位、許容差、完了テストを備えます。自由記述は unpinned_term として拒否され、check_completion は条件と計測値だけに基づく純粋関数です署名済み契約はいずれも証人による確認であり、「完了」とは記録された確認を意味します。これは settle が within_grant として確認します。語彙項目を使用した契約はまだありません。settle v1.8 では、ゲートを利用する契約は条件を固定しなければならず、固定しない場合はまったく決済されません語彙に含まれていない意味を定めること
隠れた意思決定への影響:公開されたルールがある一方で、選択を誘導するプロンプト、報酬、インセンティブが見えないこと契約の決定に用いるふるい分け機構とポリシーは署名され、契約の横に sha256 で固定されます(run0001)。conduct-v1 は、エージェントに、紹介料、掲載料、成功報酬など、誰が報酬を支払うのかをエージェントカードで開示するよう求めますrun0001 では、ふるい分け機構と隠された指示の検出器が固定されていますが公開されていないため、外部での再計算では NOT CHECKED と判定されました開示されていないものが意思決定に影響していないと証明すること。固定されたルールからは、どのルールが適用されたかはわかりますが、それだけが影響を及ぼしたとは証明できません
永続的な可用性:アンカーは残っているのに、バイト列のコピーがすべて失われることmirror-v0 によって、誰でもコピーを保持し、アンカーに照らしてオフラインで検証できます。誠実なミラー2つは content_sha256 を共有します。evidence-v0 は、ゲートの判定バイト列を毎日このリポジトリにコピーし、Software Heritage にアーカイブを依頼します。/evidence/trace と /record は、名前が sha256 である生のバイト列を提供しますこの会社の外部に保持されているミラーは1つあります。babyblueviper1 のミラーで、2026-09-28 に当社の契約の1つとの差分を確認しましたコピーが必ず残ることを保証すること。可用性は独立した保有者の数であり、現在その数は少ない状態です
偽装された観測可能な表面:実際の状態が異なるのに、すべての公開窓口が正常と報告すること運用者が同意した場合、ゲートはヘルスページだけでなく実際のツールを呼び出します。また、計測する日とツールは、どちらの当事者も選べない Bitcoin ビーコンから導出されるため(nenrin_instant.js)、計測日のためだけに維持された表面には、狙うべき日がありません。外部証人は自身のネットワークから確認し、観測地点間の不一致はそのまま保持されます。実行時のアテステーションも、これらの観測結果の横に固定できるようになりました。POST /evidence/trace は TRACE Trust Record の署名を確認し、そのバイト列をアンカーに記録します(trace-pin-v0)これまでに外部の観測地点は2つです。外部の当事者による TRACE Record はまだ固定されていませんすべての観測者に対して、常に同じく虚偽である表面を見抜くこと。外部観測で計測できるのは提供された内容であり、そのことも明示します
鍵の侵害:盗まれた鍵が、数学的には正当な署名を生成することkey-history-v1 (仕様、/.well-known/key-history.json で提供):各鍵にはステータス(active、retired、または revoked)と compromised_from の時刻があり、これは鍵が漏えいした可能性のある最も早い時刻を示します。revoked の鍵による署名は、運用者が管理できない時計によって、その時刻より前にバイト列が存在していたと示される場合に限り、帰属が認められます。JWKS は revoked の鍵を提供しません鍵は4つ掲載されています。カード、契約、証人、運用者の鍵です。revoked の鍵はありません鍵が実際に盗まれた時刻を判断すること。compromised_from は運用者による申告であり、それに基づいて構築されるものも同様です
物理世界のオラクル:全員が作業完了に署名したのに、実際には完了していないことcorroboration_v0.py の計測には、計測者が確認した Bitcoin ブロックハッシュと、その後のアンカーが含まれるため、契約前に用意したり、契約後の日付にしたりすることはできません。署名ごとではなく法人ごとに数えます計測を義務付ける契約はまだありません。物理的な作業に対価を支払う最初の契約が、最初のテストになります。2026-10-02以降は、そのような契約で計測者を当事者が選ぶのではなく抽選で選ぶことを義務付けられるため(settle v1.9)、当事者が自分たちの計測者を連れてくることはできません物理世界を証明に変えること。すべての法人が共謀して虚偽を伝える場合、台帳に残るのは、誰が、いつ、どの条件に照らしてそう述べたかだけです
ネットワーク:ほかに誰も参加しないことコードには何もありません。すべての入り口は開かれており、鍵も費用も不要ですまだ少ないものも含め、上の表に記載したとおりです。/usage は、計測対象とは別に、誰がリクエストしたかを2026-09-28から記録しています(requesters)参加者を生み出すこと。それを実現するのは利用だけです
1 つの検証器が契約の行をつなぎ合わせます。:spine_verify.py は、契約が何を意味すると合意されたか(terms_sha256)から、誰が合意し、誰が実行したか、誰が完了を測定したかまでを、ブロックウィンドウ内のエンティティとして読み取ります。最初の 3 つの行には、一度だけ名前を付ける価値のある制限があります。検証器は存在し、それぞれに対する攻撃を想定してテストされていますが、どの契約からも呼び出されない検証器が証明するのは、それが機能するはずだということだけです。実作業に対価を支払う次の契約では、独立性クォーラムを明記し、語彙から成果物を指定し、裏付けを必須にする必要があります。2026-10-02 以降は、契約自体でこれを拘束力のある要件にできます。settle v1.8(requirements.spine)では、すべての段階が整うまで final を拒否し、settle v1.9(requirements.convergence)では、選定されていない測定者を追加します。まだ不足しているのは、これらを使用する署名済み契約と、このプロジェクトのいずれの当事者も含まない 2 者間の契約です。

MUSUBI はすべて、クローンなしでインストールできます。:pip install 'nenrin-verify[ca2a]'(0.7.0)には、musubi-v0/ がバイト単位でそのまま収録されており、settle v1 から v1.16、および 128 個のベクトルを含む settle core v0 が含まれています。musubi-verify --settle-core、musubi-verify --pilot51-set2、musubi-verify --run0002 でこれらを再計算できます。QUICKSTART.md は 5 分で完了します。

1つのタイムライン:各記録が答えること

上記の各レイヤーは別々の製品ではありません。それぞれが同じ作業について、順番に1つの問いに答えます。また、それぞれの記録は、私たちを信頼することなく取得して再計算できます。どの記録も、その下の行にある問いには答えません。各記録が証明しないことは、表に記載しています。

順序問い記録検証方法証明しないこと
1当事者は何に合意しましたか?MUSUBI 契約(a2a-contract-v0)。許可された行為、禁止された行為、条件付きの行為、承認者、最終性の深さについて、双方が署名した許諾contract_v0.py誰かが実行すること、または法的な契約であること
2受託者は何を実行したと述べていますか?実行記録(a2a-execution-v0)。受託者が署名し、contract_sha256で契約を指定settle_v1_10.py行為が現実世界で起きたこと
3ランタイムは何を実行したと証明しましたか?RFC 8785 形式の SHA-256 で固定され、アンカーされた TRACE 信頼記録trace-pin-v0証明に含まれる主張そのものが真実であること。外部当事者による TRACE 記録は、まだ固定されていません
4外部の誰かは何を観測しましたか?証人記録(jidec-path-v1)。証人が署名し、その証人自身のドメインが提供する鍵を使用nenrin-verify、またはa2a_conduct_walk.pyでウォークを再実行いずれかの応答が正しかったこと、またはエージェントが別の時点でも同じように振る舞うこと
5観測者は合意しましたか?解決せずに保持された不一致記録と、測定対象当事者が署名した回答(response-v0)NENRIN_DISCREPANCY_0001.mdどの観測者が正しかったか
6障害発生後、本当に復旧しましたか?TSUGI 復旧チェーン:ドリフト、提案、承認、実行、Bitcoin ブロックから抽出した証人による再検証tsugi-verify(recovery-v0)修復が適切だったこと。ただし、承認され、実行され、再検証されたことは示します
7これらは後から変更された可能性がありますか?JIDEC:上記のすべての記録が、追記専用のハッシュ連鎖型台帳に記録され、エントリーが Bitcoin にタイムスタンプされていますこのプロジェクトを信頼せずに検証する記録が真実であること。ただし、ブロックの時点で存在し、それ以降変更されていないことは示します

Settle は行 1、2、4、7 を組み合わせて読み取ります。アンカーされた実行が許諾の範囲内に留まったかを再計算します。また、v1.8 以降では、独立した測定結果(行 4)が一致し、測定者が選ばれたのではなく抽出された場合に限り、契約がfinalを拒否できます。どのレイヤーも補えない行が、上のセクションの最後にある問いです。すべての独立した当事者が同じ嘘をついた場合、タイムラインには、誰が、いつ、どの条件に対してそれを述べたかが正確に記録されます。ランタイムの証拠(行 3)と外部観測(行 4)が補完し合うのはそのためです。一方は内部で実行されたことを示し、もう一方は他のすべての人に提供された内容を示します。契約では両方を必須にできます。

再計算できる価格帯

get_price_rangeの各応答にはrecomputeブロックが含まれています。そこには、使用したsouba-db.jsonのバイト列の URL と SHA-256(同じファイルはこのリポジトリのdata/souba-db.jsonにあります)、各行のエントリーid、および計算式が記載されています。計算式は、表の値そのもの、または同じファイル内の地域別乗数を表の値に掛け、四捨五入(0.5 は切り上げ)したものです。tools/recompute_price_range.pyは、Python 標準ライブラリを使って回答を最初から最後まで検証し、1バイトでも1行でも異なれば失敗します。

この仕組みが示すのは、回答が公開された表と一致することです。表が正しいことまでは示しません。値は、ファイルに記載された情報源を参照して、名前が明記されたキュレーターが選定したものであり、公開された計算式に基づいて情報源から算出されたものではありません。

NENRIN:AI 向けサービスの年輪

木は毎年、年輪をひとつ増やします。あとからひとつ描き足すことはできません。NENRIN は、その性質をソフトウェアサービスにもたらします。

2026-08-14 までの30日間に、このサーバーはある MCP ディレクトリの掲載ページで 93,983 回表示されました。これは、そのディレクトリ独自のダッシュボードの数値です(クリック数24、プロフィール閲覧数421、掲載ページ経由のツール呼び出しはゼロ)。これはひとつのディレクトリでの表示回数であり、検索エンジンや AI アシスタント全体での検索結果数ではありません。別の経路でサーバーに届く呼び出しは別の数値であり、そのうちどれほどが外部からのものかは判断できません。利用カウンターは意図的に IP アドレスを保存しないため、自動化された自分たちのチェックと外部からのトラフィックを区別できないからです。この段落の以前の版では、サーバーが 0 回呼び出され、93,983 件の AI 検索結果があったと記していました。ゼロという数値が当てはまるのは、そのひとつの掲載ページ経由の呼び出しだけです。そのため、サーバー全体に関する主張は、ひそかに削除するのではなく、ここで撤回します。また、NENRIN 仕様書に記載された文も、アンカー済みのバイト列は編集できないため、後続の台帳エントリー(seed_entry_nenrin_spec_correction_20261013.json)で訂正されています。発見の問題は解決しました。選択の問題は未解決です。90,000 のサーバーから選ぶエージェントが読めるのは、それぞれのベンダーが自ら書いた情報だけです。NENRIN は、欠けていた層を加えます。ベンダーが作成したものではなく、ベンダーが削除することもできない、行動の記録です。

3行で説明すると、次のとおりです。

  1. オープンな証言。 誰でも任意のエンドポイントを測定し、証言者自身の名前と観測地点を付して、その測定結果を公開台帳に提出できます。運営者に拒否権はありません。受理はスキーマの機械的な検証によって行われ、それを実施するコードはこのリポジトリにあります。
  2. 相違点が成果物です。 ふたつの証言者が同じ対象について互いに両立しない観測結果を報告すると、その不一致自体が恒久的で引用可能な記録になります。最初の事例は実際に存在します。NENRIN_DISCREPANCY_0001 は、誠実なふたりの証言者、ひとつの対象、どちらも正しいという記録です。
  3. 年輪。 毎月、受理された記録がひとつの年輪にまとめられ、直前の年輪のハッシュを含めて Bitcoin にタイムスタンプが付与されます。誰であっても、私たち自身であっても、18か月分の年輪を午後のうちに作ることはできません。

仕様書は、公開台帳のエントリー19としてアンカーされています (sha256 9ccba2e325fd2a555fcdb2dec519b8c6bf7a669064674846aea98ecfff824e3d): NENRIN_SPEC_v1.md。仕様書では、先行する取り組み(Certificate Transparency、Rekor、in-toto、SLSA、OpenTimestamps)を挙げ、新規性を主張する組み合わせを正確に示し、同じ台帳への反証を呼びかけています。

証言の受付が稼働中です。 こちらから始めてください:

curl -s https://ledger.horizonshield.dev/witness

私たちは、自らのルールに基づく最初のテスト対象です。台帳には、私たちのゲートが自身のテストに失敗した記録と、すべての始まりとなった522のインシデントの全容が残されています。都合の悪い記録も残ります。

運営者自身への批判を削除できない台帳をインフラとして存在させたいなら、このリポジトリにスターを付けてください。 研究者やエージェントプラットフォームに見つけてもらうために、スターが役立ちます。スターの有無にかかわらず、年輪は蓄積されていきます。証言者がいれば、蓄積は速くなります。

タスクに紐づく行動記録:A2A Task を証拠に紐づける

エージェントがサーバーを選んだ時点で、選択が終わるわけではありません。選択した後、タスクを委任します。委任されたタスクで実際に何が行われたのかを、当事者以外の誰かが観察した記録が、次のエージェントに必要な証拠です。NENRIN は「このサーバーで一度失敗した」という情報ではなく、A2A Task の ID 自体(A2A の issue #1769 および #2103 に対応する a2a.task.id)に紐づけます。

行動記録のウォークは、すでに A2A 経由で実際のエージェントと通信し、ID 付きの実際の Task を受け取っています。今回、誰が誰にタスク T を委任し、ウォーク対象のエージェントがどのように振る舞ったかを示す、署名付きのコンテンツアドレス指定された観察記録を、この ID に紐づけて保存します。証人は観察記録に署名し(witness_sig)、依頼側は委任エッジに署名します(edge_sig)。どちらの鍵も did:key 識別子に含まれているため、ネットワークにも私たちへの信頼にも頼らず、誰でも検証できます。

今すぐ取得できる、実際の記録を返す 3 つの読み取り方法:

curl -s "https://ledger.horizonshield.dev/witness/task?task_id=d1651c71-28b0-422b-8f14-e2dc66c5a145"
curl -s "https://ledger.horizonshield.dev/trust-signal?task_id=d1651c71-28b0-422b-8f14-e2dc66c5a145"
curl -s "https://ledger.horizonshield.dev/witness/task/evidence/0bff13042d89ec0bc33f2f5149612774f8a706e67c1f345abfc1f10962e31608"

1 つ目は、委任の各ホップについて証人の完全な一覧を返します。集約判定も計算されますが、意見の相違は保持され、有利な判定に置き換えられることはありません。2 つ目は、件数と判定を含み、数値スコアを含まない、利用可能なシグナルとして同じ情報を返します。3 つ目は、アンカーの状態を含む 1 件の観察記録を返します。この証拠は NENRIN 台帳のエントリー 44 にあり、他のすべてのリングと同様に、nenrin-task-witness-batch-v1 バンドルとして Bitcoin にタイムスタンプが記録されています。

署名が証明することを明確に述べると、観察記録を主張したのが誰か、委任エッジを証言したのが誰かであり、その主張が真実であることではありません。台帳は、鍵によって証人が両ホップの当事者とは別人であることを証明します(R1)。運営者として独立していることまでは証明しないため、自己証人でも R1 を満たし、そのことは自身の記録に明記されます。実際の第三者による観察記録は、利害関係のない誰かが同じウォークを実行し、同じ稼働中のエンドポイントに記録したものです。

このループによって完結する流れは次のとおりです。エージェントがサーバーを見つけ、サーバー自身が書いたものではない行動記録を読み、選択し、タスクを委任します。そのタスクが証人によって記録され、証拠がタスク ID に紐づいた状態で蓄積され、次のエージェントがその証拠に基づいて選択します。コードは workers/hs-ledger/nenrin/task-delegation-bind-v0(台帳側の処理とプロデューサー)と workers/hs-ledger/nenrin/a2a-conduct-walk(--bind-task で紐づけるウォーク)にあります。

TSUGI:復旧の証明、第二の柱

検証によって、エンドポイントが現在適合しているかどうかは分かります。しかし、障害発生時に何が起きたのか、あるいは本当に復旧したのかは分かりません。TSUGI(継。金継ぎに由来し、修復の跡が見える形で残り、対象の歴史の一部になります)は、検証の後に続くレイヤーです。修復するのではなく、復旧を証明します。

ハッシュで連結された5種類の記録があります。ドリフト(証人が公開サーフェスを測定し、一致したかどうかを記録)、提案(5つのプリミティブからなる閉じたカタログから1つの修復方法を選び、それによって証明できないことを記録)、承認(提案のハッシュに対するオペレーターのEd25519署名。期限付き)、実行(実行前と実行後の状態)、検証(証人が再度測定)。検証ツールは、人間の承認を要するプリミティブの実行について、承認に署名がない場合、信頼されていない鍵で署名されている場合、または期限切れの場合は拒否します。オペレーターの公開鍵は、合意と証人の鍵と同じ方法で、https://gate.horizonshield.dev/keys/operator.json から提供されます。

再検証を行う証人は、オペレーターが選ぶわけではありません。sha256(bitcoin block hash | pool hash | record hash) をシードとして公開プールから選ばれるため、第三者が誰に依頼すべきだったかを再計算できます。選ばれた証人には、期待値を含まないブラインドリクエストだけが送られ、証人は署名済みの観測結果だけを返します。証人の発言が実行されることはありません。これは、2026年7月の教訓を反転させたものです。未知のエージェントはあなたを観察できても、指示することはできません。

実際に発生した2件のインシデントが、workers/hs-ledger/nenrin/recovery-v0 に記録されています。1件目は、デプロイガードを回避する生のデプロイによってカード署名とOpenAIドメインチャレンジがひそかに壊れた事例です(外部検証者が発見し、署名のないチャットでの承認によって収束しました。厳格な検証ツールはその事実を指摘します)。2件目は、再署名せずに2回のバージョン更新をデプロイしたためにカード署名が壊れた事例です(毎日の証人が発見し、署名済みの承認によって収束しました。記録は12件です)。2026-09-20時点で外部証人のプールは空でした。記録には、定足数があったかのように装うのではなく、その事実が記されています。2026-10-22までは、babyblueviper1 のエージェント1つがプールに参加しており、記録では定足数を満たしたとはせず、不足として報告していました。コミット89305502以降、プールには api.babyblueviper.com と kuangmi-bit のCloudBaseホストの2つが含まれています。多様性チェック(witness_diversity v2.3)では、これらを2つの制御クラスターとして数えるため、定足数2を満たせるようになりました。インシデント2は、プロジェクトを信頼しなくても、ブラウザーでハッシュとオペレーターのEd25519署名を再計算できます:https://shield.the-horizons-innovation.com/tsugi/ チェーンファイルと記録のハッシュは、JIDEC entry 50(OpenTimestamps、Bitcoin)にアンカーされています。

リポジトリの構成

パス内容
workers/hs-verify-gate検証ゲート:夜間の一括検査、オンデマンドチェック、probed_via による経路の開示、gate_commit の固定、サーフェス変更の追跡
workers/hs-ledgerJIDEC の追記専用台帳と NENRIN の証人受付
workers/hs-ledger/nenrin/task-delegation-bind-v0タスクに紐づく行動記録:A2A Task IDを、署名済みでBitcoinにアンカーされた証人の観測記録に紐づけます。/witness/task、/trust-signal?task_id、/witness/task/evidence の各エンドポイントを提供します
workers/hs-ledger/nenrin/a2a-conduct-walkエージェントを測定する行動記録のウォークです。--bind-task を指定すると、実際の a2a.task.id の下に観測記録を登録します
workers/hs-ledger/nenrin/agreement-v0合意記録:2つのエージェント、2つの署名、1組のバイト列。検証器は Python と JavaScript で二重に実装され、両者が一致することが証明されています
workers/hs-ledger/nenrin/recovery-v0TSUGI(継)、第2の柱である復旧の証明です。ドリフト証人がゲートの8つの公開サーフェスを毎日測定します。修復案は限定カタログから提案され、オペレーターのEd25519鍵(/keys/operator.json のトラストアンカー)で承認された後に実行され、再検証されます。チェーン全体はハッシュでリンクされているため、誰でも再計算できます。ランダムな再検証証人は、Bitcoinブロックをシードとして公開プールから選ばれるため、オペレーターが証人を選んだと主張することはできません。実際に起きた2つのインシデントが、7件と12件の記録からなるチェーンとしてツリーに含まれています。検証器はJavaScript(recovery_verify.mjs、sdk/tsugi_verify.mjs と同じ1ファイル)です。リポジトリにあるPython版(recovery_verify.py)は、記録のバイト列、ハッシュ、署名、抽選結果、および対応するテストで確認される拒否コードについて、JavaScript版と一致します。拒否文も含む完全なレポートは、Pythonパッケージ nenrin-verify(0.2.0、tsugi-verify)と一致します。98件の固定ケースと、実際のチェーンに対する29,228件の編集のいずれでも、node tsugi_verify.mjs とバイト単位で同じ出力になります
workers/hs-verify-relay522インシデントをきっかけに生まれた公開エッジリレー(不一致記録に記載)
verify-directory公開レジストリページ:掲載されているすべてのサーバー(自分たちのサーバーも含む)と、そのリアルタイム判定
その他すべてthe-horizons-innovation.com の、人間向けサービスの GitHub Pages サイト

合意記録:測定のもう半分

行動記録は一方的なものです。誰かが誰かを測定しました。そこには、取引のもう半分、つまり2つのエージェントが条件に合意し、双方がそれを表明したことを記録するものはありません。

a2a-agreement-v1.1 は、そのための記録です。時点Tにおいて、当事者Aと当事者Bは条件を記述した同一の正規化バイト列に署名します。また、双方は署名時に、当事者のどちらでもない第三者が作成した、相手方についての行動記録をsha256で固定します。

この記録が何であるかと同じくらい、何ではないかも重要です。資産の保管はしません。マッチングはしません。編集工程もありません。 記録者は資金を預かってはならず、取引を行うかどうかを決めてはならず、金額や結果によって変動する手数料を請求してはなりません。手数料が金額に応じて変動する記録は、明示的に拒否されます。拒否は機械的に行われ、このレイヤーでは誰も条件を判断しません。

これは新しいプリミティブを主張するものではありません。主張するのは、それらの組み合わせです。2つの必須署名、署名時点でshaにより固定された相手方の測定済み行動記録、何も判断しない受付、そしてこの仕組みの管理者が運用しない外部アンカーです。先行事例は読者が探すままにせず、草案で明示しています。AP2、x402、ACP、MPP、Cedulon、1F916 Agent Record、SCITTです。 検証器は意図的に二度実装されています。 Python と JavaScript でそれぞれ一度ずつです。これは偶然ではなく、設計によるものです。意見が食い違う二つの実装こそが、このプロジェクトがほかのあらゆる場所で測定している、まさにその境界だからです。このレイヤーにわざわざ一つ組み込むのは、出来の悪い冗談になってしまいます。凍結された5,286件のケースで、両者は拒否コードのすべてと、それに添えられた英語の文を含め、バイト単位で同じレポートを生成します。これを証明する過程で、一度 Python の動作を変更しました。JavaScript が二つのケースで一致せず、決着をつけたチェックでは Python を独自の凍結フィクスチャに対して実行したところ、同じ二つのケースで失敗したためです。

次に、5,286件のケースで検知できるかを確かめるため、ルールを意図的に破りました。Python では77通り、JavaScript では36通りです。6つの破損は検知されませんでしたが、どれも実装の欠陥ではありません。テストセットに穴があったのです。6つすべてを塞ぎました。

受付処理は2026-09-16から存在します(agreement_intake.mjs、台帳ワーカーに組み込み済みです)。POST /agreement は、両当事者がそれぞれの key_url で公開している鍵に照らして両方の署名が検証できた場合にのみレコードを受け付け、重複をアトミックに排除します。レコードは GET /agreement/{canonical_sha256} で sha を指定して取得でき、受け付けたレコード群は毎日の固定台帳エントリーにまとめられます。受付処理は何も判断しません。このプロジェクトのエージェントと babyblueviper1 のエージェント間で最初に受け付けられたレコードは、first_agreement_record.json としてリポジトリに収録されています。この段落の以前の版では受付処理は存在しないと記していました。コードは作成・デプロイ済みでしたがコミットされておらず、2026-09-20にこのリポジトリが気づいて修正しました。

同じ二つのエージェント間の2件目のレコードは、両当事者が署名したバイト列の中に "publication": "public" を含めて、2026-09-28に再署名されました(record-privacy-v1:一方の同意だけで二者間の情報が公開されることはありません)。同日、両者の署名鍵が各ドメインの公開鍵と一致することを確認して受け付けられ、双方の固定された行動記録が台帳に登録されています: 5d3e62f1…/report。

リポジトリとしての登録簿

同じ測定結果を、独立した機械生成リポジトリとして公開しています: mcp-conduct-register。

ここでも、誰も行を選んでいません。スクリプトが毎日一度、公開 API から表を再生成します。同じ実行処理で、 register.json のスナップショットも作成されるため、エージェントは Markdown を解析せずに登録簿を読み取れます。データセットと同じ方法で登録簿を引用できるよう CITATION.cff を含めています。また、登録簿が何であるか、さらに重要な点として、何ではないかを平易な言葉で説明する llms.txt も含まれています。

外部に頼る必要のない、3つの利用方法

2026-09-04以降、HORIZON SHIELDの誰かに依頼しなくてもゲートを利用できます。

運用しているサーバー向け。 オリジンの /.well-known/mcp-conduct.json に {"allow_tool_call": true} を配置してください。オリジンの所有者だけがその場所にファイルを配置できるため、ゲートはこれを同意として扱い、公開レジスター上でその設定を使って決定性を測定し、読み取ったすべての判定にその内容を書き込みます(ゲート 0.2.4)。エージェントカードに compensation ブロック(paid_by、referral_fee、listing_fee)を追加し、POST /watch を一度実行してください。これで、私たちが関与しなくてもレコードを verified にできます。

CI向け。 1つのステップでプッシュのたびにサーバーを測定し、ランナー上で判定ハッシュを再計算するため、ゲートが信頼されることはありません。 wedjat-check-action (uses: ogasurfproject-jpg/wedjat-check-action@v1)。測定された失敗があるとジョブを失敗させ、測定されていない条件は未測定のままにします。厳格さは require と must_pass で決まります。

接続するエージェント向け。 npm の mcp-conduct(依存関係ゼロ)は、MCP クライアントが接続する前に /is-verified を読み取り、選択したポリシーを適用します。 warn、measured(測定済みで不合格だったものだけをブロック)、verified-only、または off を指定できます。 verified は true または null で、false にはなりません。未測定は不合格にはなりません。ソース: mcp-conduct。

率直に言うと、2026-09-05時点で、レジスターには私たち自身のサーバーだけが登録されており、他のサーバーはありません。門戸は開かれていますが、外部のレコードはまだ1件も登録されていません。

JIDEC:このプロジェクトを信頼せずに検証する

HORIZON SHIELDの結果を支える検証プロセスは、ビットコインにアンカーされた追記専用の公開台帳として公開されています。私たちを信頼する必要はありません。アンカーされたバイト列を取得し、自分でハッシュを計算して、タイムスタンプを確認してください。

どのエントリーも、次の1行で確認できます。

curl -s "https://ledger.horizonshield.dev/ledger/5?format=raw" | shasum -a 256

これによって証明されることと証明されないことは、台帳自体の /health の transparency に記載されています。これには、OpenTimestampsにRFC、ISO、またはeIDAS上の位置付けがないことも含まれます。

以前のホスト名である hs-ledger.oga-surf-project.workers.dev と hs-jidec-mcp.oga-surf-project.workers.dev は、引き続き応答し、今後も常に利用できます。すでにビットコインにアンカーされた記録にはこれらが記載されているため、廃止すると過去の証明書を検証できなくなります。

MCP サーバーの機能

建設工事を依頼する住宅所有者が、見積もりが公正な価格を反映しているかどうかを確実に判断するのは困難です。これは典型的な信頼財の問題です。この MCP サーバーは、公正価格の第三者参照値をソフトウェアから呼び出して検証できるようにし、エージェントが数値を信頼するのではなく確認できるようにします。

  • プロトコル: Model Context Protocol(MCP)
  • トランスポート: Streamable HTTP 上の MCP(JSON-RPC 2.0)。レガシーの SSE トランスポートは実装されていません。/sse への GET は 405 sse_not_supported を返します。
  • エンドポイント: https://mcp.horizonshield.dev
  • アクセス: 読み取り専用、API キー不要
  • データ対象地域: 日本の公正価格判定(JPY)。オープンな JCCDB データセット(526,128件のレコード:明細項目と観測値)に基づいています。日本の建設費データ(JCCDB観測レイヤー)と米国の建設費データ(USCCDB、米国建設費データベース)
  • ツール: 30個(公正価格、検証、請負業者向けが15個、建設費データ向けが15個)

ツール

ツール説明
get_price_range日本の建設・リフォーム工事の適正価格帯(最小、平均、最大)、不当請求の危険しきい値、単位、価格動向、現場メモを返します。
audit_estimate工事名と見積価格(JPY)に基づき、適正、やや高め、不当請求のリスクありのいずれかを判定し、平均価格との差を返します。
verify_fair_pricePTKA(取引前知識アンカリング)モデルに基づき、改ざんを検知できるSHA-256ハッシュ付きの適正価格記録を返します。これは、施工業者の見積もり前に第三者が適正価格を記録するモデルです。
check_red_flags見積もりや営業トークの表現が、既知の不当請求や強引な営業手法(一式計上、本日限定割引、無料点検、訪問販売)に該当するかを確認します。言語を問いません。
get_estimate_reading_guideあらゆる見積もりが誠実かどうかを判断するための普遍的な原則(諸経費率、一式計上項目の扱い、強引な営業手法の見分け方)を返します。言語を問いません。
list_cost_categories適正価格帯と注意すべき表現を管理している建設・リフォーム工事のカテゴリを一覧表示します。
get_fair_price_sources適正価格データの出典、更新日、地域別係数を返します。
get_jccdb_dataset_infoJapan Construction Cost Database(JCCDB)のメタデータ、規模、ライセンス、ダウンロードリンク、引用情報を返します。
get_anonymous_estimate_review_link(旧名 suggest_ehn。現在も応答します)見積もりへの不安を検知し、第三者レビューを受けるための投稿案内と投稿URLを返します。
search_cost_category工事名やキーワードから、管理されている工事カテゴリを検索します。
preview_reverse_estimate詳細な内訳がない段階で、概算見積もりが平均よりどの程度高いか低いか(例:約20%高い)だけを返します。
verify_integrity_claim第三者として、署名付きの完全性判定(signed_payloadに対するSHA-256)を独立して再計算します。フェイルクローズ方式です。再計算できない場合、結果は未検証となり、暫定的な合格にはなりません。
create_ap2_fairness_attestation適正価格の証明を支払い承認とともに提示できるよう、Google AP2(Agent Payments Protocol)のCart Mandateに添付できる形式のFairPriceAttestationを発行します。オプションの quoted_price を指定すると、基準内・基準より高い・基準より低いの判定が追加されます。
get_agent_cardエージェント間の検出に使用するA2A Agent CardのURLと公開済みスキルを返します。
find_verified_contractorYakumo上で検証に合格した施工業者を検索します。掲載条件はKIRAの適正価格監査に合格することのみで、紹介料や掲載料は発生しません。価格ではなくスコアとランクを返し、該当がない場合は正直に0件を返します。
建設コストデータ:日本(JCCDB)および両国
ツール説明
search_jccdb_itemsJCCDB の項目(資材、製品、労務)を名称で検索し、それぞれが公開文書に存在するかどうかと、根拠となる URL を返します。
get_jccdb_observations日本および米国の公開文書における項目の地域、日付、価格の有無です。ライセンスで再配布が認められている値のみを返します。各行にはライセンス、出典表記、根拠となる URL が記載されています。
get_jccdb_labor_rate都道府県・職種別の国土交通省(MLIT)の公共工事設計労務単価(8時間あたりの賃金)です。デフォルトでは最新の値を返し、history:true で年次データを返します。
compare_jccdb_regions項目と仕様について、地域ごとの最新値と最小値、中央値(算出値)、最大値を返します。同一の仕様、単位、基準の値のみを比較します。
get_jccdb_work_unit_price工事項目の公共工事単価(資材、労務、機械を合算)と、構成比の行を返します。改修工事の見積価格ではありません。
get_jccdb_index_series指定期間の建設コスト指数(NHCCI、PPI、MLIT デフレーターなど)を返します。前年比はこのサービスで算出されます。
get_jccdb_coverage観測データレイヤーの収録内容(国、レイヤー、データソースごとの行数、価格のある行、データソースの対象期間)です。データのない組み合わせは、未収録として一覧表示されます。
建設費データ:米国(USCCDB)

USCCDB は米国建設費データベースです。米国の連邦政府によるパブリックドメインのデータと各都市のオープンデータを収録し、1 観測値につき 1 行で、ソース URL、sha256、ライセンスを記載しています。4 つのチェーンツールはリクエストに応じて計算を行い、ファイルとして配布されるものではありません。公共事業の価格、統計、見積もりは参考データであり、リフォームの見積もりではありません。

ツール説明
get_us_construction_prices米国の公共建設費データを、階層、地域、期間、項目別に取得します。Davis-Bacon 賃金、BLS 賃金、公共事業の単価、機器料金、許可証と支出、指数と地域係数、HUD 費用上限、州 DOT 入札価格が含まれます。
get_us_prevailing_wage州、郡、職種別の Davis-Bacon 一般賃金決定情報を取得します。基本賃金と付加給付に加えて、決定番号とソース URL を含みます。連邦資金による工事の最低額であり、民間市場の料金ではありません。
get_us_permits地域、年別の米国建築許可証データを取得します。Census BPS と、都市の許可証データに記載された申告評価額の分布が含まれます。契約価格ではありません。
get_us_area_factor州、郡、ZIP、都市、海外の国別に、DoD Area Cost Factors と USACE CWCCIS の州別調整係数を取得します。予算編成用の係数であり、見積もりの妥当性を検証するものではありません。
get_us_price_chain建設資材と化学製品について、流通チェーンに沿った米国の推定価格を取得します。輸入着地原価、卸売価格、小売価格の範囲、請負業者の価格が含まれ、各行に計算式、ソース URL、sha256 が記載されています。リクエストに応じて計算されます。
get_us_import_landed_costHS 10 桁コード別に、米国輸入品の着地原価を取得します(Census IMDB)。通関価格、CIF、Section 232 を含む計算上の関税、単価、実効関税率、主な相手国が含まれます。
get_us_trade_marginsNAICS 別の米国卸売・小売粗利益率を取得します(Census AWTS、ARTS、AIES 2024)。kake_cost_ratio = 1 - margin も含まれます。オプションで BEA 2007 の利益率構造も取得できます。業界平均です。
get_us_contract_discounts米国の公共契約における定価からの公表割引率を取得します(Washington DES、NASPO ValuePoint MRO)。kake_ratio = 1 - discount も含まれます。割引率は上限値であり、定価の基準は行ごとに異なります。

同じ公開データを、見積もりを受け取った住宅所有者向けに読み解き、各ページで 1 つの疑問を取り上げ、すべての数値を出典記録にリンクしています:ガイド · テキサス州オースティンの屋根交換費用 · 屋根工事の見積もりは高すぎますか? · 請負業者の見積もりにおける諸経費と利益 · テキサス州オースティンの職種別時給 · 屋根の面積は何スクエアですか? · オースティンでは屋根工事に許可証が必要ですか? · テキサス州で屋根業者が免責額を免除できますか? · 価格は今日限り · 手付金はいくらですか? · 資材価格が上昇:見積もりは妥当ですか? · 鉛塗料と RRP 認定 · 見積もりを取る前の作業範囲。見積もりの確認はこちら:shield.the-horizons-innovation.com/us/。

接続

これはリモート MCP サーバーです。任意の MCP クライアントからエンドポイントに接続してください。

{
  "mcpServers": {
    "horizon-shield": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.horizonshield.dev/"]
    }
  }
}

クライアントがリモート MCP サーバーに直接対応している場合は、上記のエンドポイント URL を使用してください。

Claude では設定不要

建設コストデータサーバー(https://ccdb.horizonshield.dev/mcp、JCCDB と USCCDB 用の読み取り専用ツール 15 個)は、Anthropic による自動審査を経て、Claude のコネクタディレクトリに掲載されています:https://claude.ai/directory/connectors/horizon-shield-construction-cost-data 。Claude でページを開き、「接続」を押してください。キーも、当社のアカウントも必要ありません。これはコミュニティコネクタです。つまり、自動審査には合格していますが、Anthropic による認証は受けていません。

例

audit_estimate(work: "外壁塗装 30坪", quoted_price: 1500000)

判定(たとえば、過剰請求のリスク)、適正価格の範囲(最小値、平均値、最大値)、平均値との差を返します。verify_fair_price はさらに、PTKA に基づく適正価格の主張の SHA-256 フィンガープリントを返します(PTKA 宣言は Bitcoin にアンカーされており、レシートは発行者が保管します。2026-10-19 以降は、各日のレシートが翌日に 1 件の JIDEC 台帳エントリーに記載されます)。

判定を自分で検証する

verify_fair_price の呼び出しはすべて、https://shield.the-horizons-innovation.com/verify/?id=<claim_sha256> 形式の verify_url を返します。公開検証ページでは、ご自身のブラウザー(Web Crypto)で SHA-256 を再計算し、レシートと照合します。サーバーには何も送信されません。同じ主張は、https://mcp.horizonshield.dev/ledger/<claim_sha256> から JSON として返されます。信頼は発行者を信用する前提ではなく、再計算によって得られます。

実際の過剰請求診断 20 件も、改ざん検知可能なレシートとして公開されています。各レシートには claim.txt、その SHA-256 ダイジェスト、OpenTimestamps の証明が含まれています。

sha256sum claim.txt
ots verify -f claim.txt proof.ots

AP2 ブリッジ

Google の Agent Payments Protocol(AP2)は、ユーザーが承認した内容を、署名付きで改ざん検知可能な Mandate によって検証可能にします。create_ap2_fairness_attestation は、価値を検証可能にする並行する証明を発行します。これは、ユーザーが署名する前に AP2 Cart Mandate に添付できる形式です。並行するレイヤー、同じ理念です。トランザクション前に、改ざん検知可能で、独立して再計算できます。

データと学術記録

  • 適正価格データは、公開されているJCCDBデータセット(526,128 件:日本の建設工事項目 95,403 件と、出典が明記された観測データ 430,725 件、CC BY 4.0)を基に構築されています:https://github.com/ogasurfproject-jpg/japan-construction-cost-database
  • PTKA プロトコル宣言は Bitcoin ブロック 949356 にアンカーされています(2026-05-14)。JCCDB Extended 論文はブロック 951871 にアンカーされています(2026-06-01)
  • JCCDB の起源に関する論文:Zenodo 10.5281/zenodo.20019572
  • 監査ハッシュとマクロ補正:SSRN 6738701、engrXiv にも掲載
  • VRQ フレームワークと PTKA モデル:SSRN 6807738
  • 再現用パッケージ(購入者側の検証ゲート):GitHub、Zenodo 10.5281/zenodo.20756867 にアーカイブ(MIT、実行可能:node test/run_local.mjs)

作者

Toshikatsu Oga(大賀俊勝)、The HORIZONs Co., Ltd.、日本、平塚。大工として 30 年の経験があります。ORCID 0009-0000-9180-903X。

「最安値が適正価格とは限りません。」

「信じるのではなく、検証してください。」

「現場での 30 年が教えてくれたのは、敵は職人ではなく仲介業者だということです。」

全作品集(引用 50 件、JSON-LD):TOshi Oga の言葉

ライブ診断:https://shield.the-horizons-innovation.com · 証拠:https://shield.the-horizons-innovation.com/evidence-en/ · 運動:https://shield.the-horizons-innovation.com/movement-us/

ライセンス

データ:JCCDB、CC BY 4.0。サーバーコード:このリポジトリの LICENSE ファイルを参照してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。