JIDEC: Bitcoin-anchored public verification ledger (NENRIN)

Read agents' Bitcoin-anchored conduct history (NENRIN) and cite and recompute ledger records.

我該用這個嗎

品質與安全性

A
說明品質
100%
結構描述完整度
84%
命名品質
80%
汙染風險
100%
權限相符程度
100%
協定合規性
100%

根據工具定義與協定合規性的自動化分析。

上下文成本

~2,694Token(工具定義)
~2.3 KB典型回應大小
顯著的注意力影響(128k 上下文的 2.10%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `claude_desktop_config.json` 檔案:

{
  "mcpServers": {
    "jidec": {
      "url": "https://jidec.horizonshield.dev/mcp"
    }
  }
}

遠端端點

https://jidec.horizonshield.dev/mcpstreamable-http

它能做什麼

工具清單

工具(9)

🟢 唯讀🟡 寫入🔴 刪除⚪ 未知
🟢jidec_cite(citation)

Resolve and INDEPENDENTLY verify any JIDEC citation. Accepts 'jidec:path:<sha>', 'jidec:entry:<n>', a bare 64-hex id, or a ledger URL. Fetches the record's exact bytes, recomputes SHA-256 locally, and confirms it equals the cited id. Returns integrity, Bitcoin anchoring status, the parsed record (verification path, claim, or v0 spec entry), and an explicit statement of what the proof does and does not cover. No trust in HORIZON SHIELD is required to accept the result.

輸入結構描述

{
  "type": "object",
  "properties": {
    "citation": {
      "type": "string",
      "description": "jidec:path:<sha> | jidec:entry:<n> | 64-hex | ledger URL"
    }
  },
  "required": [
    "citation"
  ]
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "lookup": {
      "type": "string",
      "enum": [
        "ok",
        "absent"
      ],
      "description": "ok = the ledger was read and the record exists. absent = the ledger was read and there is no such record. A read that FAILED never appears here: it comes back as a tool error (isError: true), so a consumer can never mistake this server's own failure for a statement about the ledger's contents."
    },
    "citation": {
      "type": "string"
    },
    "resolved_entry": {
      "type": [
        "number",
        "string",
        "null"
      ]
    },
    "integrity": {
      "type": "object",
      "description": "The whole point: claimed vs recomputed. match:false is an integrity FAILURE, which is a finding, not an error.",
      "properties": {
        "claimed_sha256": {
          "type": "string"
        },
        "recomputed_sha256": {
          "type": "string"
        },
        "match": {
          "type": "boolean"
        }
      },
      "required": [
        "match"
      ]
    },
    "bitcoin": {
      "type": "object",
      "properties": {
        "status": {
          "type": "string"
        }
      }
    },
    "record_kind": {
      "type": "string"
    },
    "trust_note": {
      "type": "string"
    },
    "limits": {
      "type": "string"
    }
  },
  "required": [
    "lookup",
    "integrity"
  ],
  "additionalProperties": true
}
🟢jidec_replay(citation)

Re-observe an anchored JIDEC verification path against the live system right now and report drift. Returns MATCH (the live system still matches what was anchored) or DRIFT (it changed), node by node. Nodes that cannot be re-observed server-side are reported as deferred, never counted as drift.

輸入結構描述

{
  "type": "object",
  "properties": {
    "citation": {
      "type": "string",
      "description": "jidec:path:<sha> | jidec:entry:<n> | ledger URL"
    }
  },
  "required": [
    "citation"
  ]
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "lookup": {
      "type": "string",
      "enum": [
        "ok",
        "absent"
      ],
      "description": "ok = the ledger was read and the record exists. absent = the ledger was read and there is no such record. A read that FAILED never appears here: it comes back as a tool error (isError: true), so a consumer can never mistake this server's own failure for a statement about the ledger's contents."
    },
    "verdict": {
      "type": "string",
      "description": "MATCH or DRIFT. Nodes that could not be re-observed are deferred, never counted as drift."
    }
  },
  "required": [
    "lookup"
  ],
  "additionalProperties": true
}
🟢jidec_list_paths

List the anchored JIDEC verification paths (most recent first), with purpose, verdict and Bitcoin anchoring status.

輸入結構描述

{
  "type": "object",
  "properties": {}
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "lookup": {
      "type": "string",
      "enum": [
        "ok",
        "absent"
      ],
      "description": "ok = the ledger was read and the record exists. absent = the ledger was read and there is no such record. A read that FAILED never appears here: it comes back as a tool error (isError: true), so a consumer can never mistake this server's own failure for a statement about the ledger's contents."
    },
    "count": {
      "type": "number",
      "description": "How many anchored paths the ledger returned. 0 means the ledger answered and holds none. It never means the ledger could not be read, that is an error."
    },
    "paths": {
      "type": "array",
      "items": {
        "type": "object"
      }
    }
  },
  "required": [
    "lookup",
    "count"
  ],
  "additionalProperties": true
}
🟢jidec_how_to_verify(citation)

Return the step-by-step recipe for verifying a JIDEC record WITHOUT trusting HORIZON SHIELD: which bytes to fetch, which hashes to recompute, which OpenTimestamps proof to check, which algorithm commit to check out, and what must match. Use this when you want to confirm the result yourself rather than repeat an assertion.

輸入結構描述

{
  "type": "object",
  "properties": {
    "citation": {
      "type": "string",
      "description": "jidec:path:<sha> | jidec:entry:<n> | 64-hex | ledger URL"
    }
  },
  "required": [
    "citation"
  ]
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "lookup": {
      "type": "string",
      "enum": [
        "ok",
        "absent"
      ],
      "description": "ok = the ledger was read and the record exists. absent = the ledger was read and there is no such record. A read that FAILED never appears here: it comes back as a tool error (isError: true), so a consumer can never mistake this server's own failure for a statement about the ledger's contents."
    },
    "citation": {
      "type": "string"
    },
    "resolved_entry": {
      "type": [
        "number",
        "string",
        "null"
      ]
    },
    "path_id": {
      "type": "string"
    },
    "recipe": {
      "type": [
        "object",
        "string"
      ]
    }
  },
  "required": [
    "lookup"
  ],
  "additionalProperties": true
}
🟢nenrin_resume(endpoint)

Return the NENRIN résumé of an agent or MCP endpoint: every recorded measurement that touches its origin (by the gate and by outside witnesses, signed or not), which are Bitcoin-anchored, discrepancies, rings, agreements, and the records not counted with the reason. Includes resume_sha256 and a recompute recipe. A history, not a score. Absent means no record, not a negative finding.

輸入結構描述

{
  "type": "object",
  "properties": {
    "endpoint": {
      "type": "string",
      "description": "https URL of the agent or MCP endpoint, e.g. https://mcp.horizonshield.dev/mcp"
    }
  },
  "required": [
    "endpoint"
  ]
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "lookup": {
      "type": "string",
      "enum": [
        "ok",
        "absent"
      ],
      "description": "ok = the ledger was read and the record exists. absent = the ledger was read and there is no such record. A read that FAILED never appears here: it comes back as a tool error (isError: true), so a consumer can never mistake this server's own failure for a statement about the ledger's contents."
    },
    "source_url": {
      "type": "string",
      "description": "The public ledger URL that returned this body. Fetch it yourself to compare."
    },
    "does_not_establish": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "lookup",
    "source_url"
  ],
  "additionalProperties": true
}
🟢nenrin_trust_signal(endpoint)

Return the compact NENRIN signal for an endpoint: counts of anchored measurements, witness diversity and freshness, in a shape a trust engine or orderer can read. No score, no allow or deny.

輸入結構描述

{
  "type": "object",
  "properties": {
    "endpoint": {
      "type": "string",
      "description": "https URL of the agent or MCP endpoint"
    }
  },
  "required": [
    "endpoint"
  ]
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "lookup": {
      "type": "string",
      "enum": [
        "ok",
        "absent"
      ],
      "description": "ok = the ledger was read and the record exists. absent = the ledger was read and there is no such record. A read that FAILED never appears here: it comes back as a tool error (isError: true), so a consumer can never mistake this server's own failure for a statement about the ledger's contents."
    },
    "source_url": {
      "type": "string",
      "description": "The public ledger URL that returned this body. Fetch it yourself to compare."
    },
    "does_not_establish": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "lookup",
    "source_url"
  ],
  "additionalProperties": true
}
🟢nenrin_witness(sha256)

Return one NENRIN witness record by its record SHA-256: pending or anchored, and when anchored, the ledger entry and batch that carry it. Use it to check a walk someone says they submitted.

輸入結構描述

{
  "type": "object",
  "properties": {
    "sha256": {
      "type": "string",
      "description": "64-hex record SHA-256"
    }
  },
  "required": [
    "sha256"
  ]
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "lookup": {
      "type": "string",
      "enum": [
        "ok",
        "absent"
      ],
      "description": "ok = the ledger was read and the record exists. absent = the ledger was read and there is no such record. A read that FAILED never appears here: it comes back as a tool error (isError: true), so a consumer can never mistake this server's own failure for a statement about the ledger's contents."
    },
    "source_url": {
      "type": "string",
      "description": "The public ledger URL that returned this body. Fetch it yourself to compare."
    },
    "does_not_establish": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "lookup",
    "source_url"
  ],
  "additionalProperties": true
}
🟢nenrin_ledger_head

Return the current head of the JIDEC/NENRIN ledger: entry count n, the head hash, and the end marker bound into the chain (jidec-head-v1) with the recipe to recompute it. Compare it with a head you saw earlier to detect truncation or rewrite.

輸入結構描述

{
  "type": "object",
  "properties": {}
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "lookup": {
      "type": "string",
      "enum": [
        "ok",
        "absent"
      ],
      "description": "ok = the ledger was read and the record exists. absent = the ledger was read and there is no such record. A read that FAILED never appears here: it comes back as a tool error (isError: true), so a consumer can never mistake this server's own failure for a statement about the ledger's contents."
    },
    "source_url": {
      "type": "string",
      "description": "The public ledger URL that returned this body. Fetch it yourself to compare."
    },
    "does_not_establish": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "lookup",
    "source_url"
  ],
  "additionalProperties": true
}
🟢nenrin_ledger_entry(n)

Return ledger entry n as the ledger serves it: claim_sha256, the canonical record bytes, work description, OpenTimestamps status and Bitcoin block when anchored. Pair with jidec_how_to_verify to recompute it.

輸入結構描述

{
  "type": "object",
  "properties": {
    "n": {
      "type": "integer",
      "minimum": 1,
      "description": "entry number"
    }
  },
  "required": [
    "n"
  ]
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "lookup": {
      "type": "string",
      "enum": [
        "ok",
        "absent"
      ],
      "description": "ok = the ledger was read and the record exists. absent = the ledger was read and there is no such record. A read that FAILED never appears here: it comes back as a tool error (isError: true), so a consumer can never mistake this server's own failure for a statement about the ledger's contents."
    },
    "source_url": {
      "type": "string",
      "description": "The public ledger URL that returned this body. Fetch it yourself to compare."
    },
    "does_not_establish": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "lookup",
    "source_url"
  ],
  "additionalProperties": true
}

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本9 個工具
已驗證未記錄版本4 個工具
已驗證未記錄版本4 個工具