MONARK
Commit / defer / abstain over a conformal coverage region - not a probability of being right.
使うべきか
品質と安全性
検出事項(2)
- HIGH
- MEDIUMgate 内
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"monark": {
"url": "https://mcp.monarkgate.tech/mcp"
}
}
}リモートエンドポイント
https://mcp.monarkgate.tech/mcpstreamable-httpできること
ツール一覧
ツール(4)
🟡gate(prediction, params, attested)
Coverage-gated decision from the real HIKAE L3 policy (commit/defer/abstain) over a caller-carried authorization budget B_t. Dispatches on task_class. For 'btc-dir-15m' it conformalizes against a committed synthetic calibration derived from the HIKAE S2a instrument (seed 101, n=300 draw), declared synthetic — a plumbing fixture, not a measured predictor. For 'cascade-liquidable-24h' no cascade calibration is committed; the gate abstains (under_calib) on this class. For 'stable-run-velocity-24h' (Narabi: a redemption-flow velocity forecast) the gate holds a committed stable-run velocity calibration for the USDe synthetic-dollar-whitelisted-redeem population (key narabi:persistence-v2@eip155:1/erc20:0x4c9edd5852cd905f086c759e8383e09bff1e68b3) over calm-window redemption flow; coverage is stated under the split-conformal bound of Barber, Candes, Ramdas and Tibshirani 2023 (Thm 2, unit weights): at least 1 − α minus the average total-variation gap between calibration windows and the next one; that gap is not estimated here and the calibration is measured non-stationary across half-years, so 1 − α is the coverage only if that gap is zero (exchangeability), which is not assumed here; no coverage is measured; for any other population, no stable-run velocity calibration is committed for this population; the gate abstains (under_calib). For 'liquidation-eligible-coverage' (Ukemi: a per-account liquidable-amount class, class A only) the served region is a conformal upper bound on the liquidable amount for the calibrated class; the lower edge is 0 by construction, not a calibrated bound; abstains (under_calib) outside it; this class requires alpha = 0.01, nMin = 100; calibrated on one recorded episode; no coverage is claimed on any other event; the H-3 exchangeability check is a report, a YES licenses nothing more; the bound holds only if yhat was produced by the frozen close-factor rule on a mono-collateral WETH account at the first crossing, which the gate does not check. When the caller instead supplies a `calibration` (its own nonconformity scores plus a `mode`: `interval` ⇒ region [yhat - q̂, yhat + q̂], or `set` ⇒ a conformal set over caller `candidates`), the gate conformalizes against THOSE caller-supplied scores (BYO): split-conformal quantile at miscoverage α over caller-supplied nonconformity scores. MONARK does not see, store, or verify the caller's data or model, and does not validate that the supplied numbers are nonconformity scores of any model. Marginal 1−α coverage holds ONLY for future points exchangeable with the supplied scores; non-exchangeable data (e.g. distribution-shifted or time-ordered) voids it. Never a probability of being right. A caller-carried `attested` price must declare a subject consistent with the committed task class (exact committed-URL membership; BYO classes do not accept `attested` in P1); the attestation is carried by the caller and is not re-verified at call time (the verifier is not executed here); `attest` only projects the committed witness — verify a caller-carried attestation offline with the Shōgen verifier; no temporal binding in P1. The gate only emits a decision; it never calls the named tool.
入力スキーマ
{
"type": "object",
"properties": {
"prediction": {
"type": "object",
"additionalProperties": false,
"required": [
"schema_version",
"task_class",
"yhat",
"predictor_id",
"produced_at"
],
"properties": {
"schema_version": {
"type": "string",
"pattern": "^\\d+\\.\\d+\\.\\d+$"
},
"task_class": {
"type": "string",
"pattern": "^[ -~]+$",
"minLength": 1
},
"yhat": {
"type": [
"string",
"number"
]
},
"predictor_id": {
"type": "string",
"pattern": "^[ -~]+$",
"minLength": 1
},
"produced_at": {
"type": "string",
"format": "date-time"
},
"features_digest": {
"type": "string",
"pattern": "^[0-9a-f]{64}$"
}
}
},
"params": {
"type": "object",
"additionalProperties": false,
"required": [
"remainingBudget",
"bFloor",
"tau",
"tauInterval",
"alpha",
"nMin",
"intent",
"tool",
"clockOpen"
],
"properties": {
"remainingBudget": {
"type": "number",
"description": "B_t — remaining authorization capacity (caller-owned, D6)."
},
"bFloor": {
"type": "number",
"description": "B_floor threshold (>= 0)."
},
"tau": {
"type": "number",
"description": "Set-size threshold for the `set` path (>= 0)."
},
"tauInterval": {
"type": "number",
"description": "Width threshold for the `interval` path (>= 0)."
},
"alpha": {
"type": "number",
"description": "Target miscoverage in (0,1)."
},
"nMin": {
"type": "integer",
"description": "Minimum calibration count (>= 1)."
},
"intent": {
"type": [
"string",
"number",
"null"
],
"description": "The intent tested against the region."
},
"tool": {
"type": "string",
"description": "The NAMED gated tool (echoed, never invoked — D0/D1)."
},
"clockOpen": {
"type": "boolean",
"description": "Whether the coverage window is still open (caller-owned)."
},
"calibration": {
"type": "object",
"additionalProperties": false,
"required": [
"scores",
"mode"
],
"description": "OPTIONAL BYO calibration (ADR-M007 D7): caller-supplied nonconformity scores + region mode. Present ⇒ the gate conformalizes on the caller's model, not a committed class.",
"properties": {
"scores": {
"type": "array",
"items": {
"type": "number"
},
"maxItems": 10000,
"description": "Caller-supplied nonconformity scores (interval mode requires all >= 0)."
},
"mode": {
"type": "string",
"enum": [
"interval",
"set"
],
"description": "`interval` ⇒ region [yhat - q̂, yhat + q̂]; `set` ⇒ conformal set over `candidates`."
},
"candidates": {
"type": "array",
"maxItems": 10000,
"description": "Set-mode candidate labels with their nonconformity scores (required and non-empty when mode = set).",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"label",
"score"
],
"properties": {
"label": {
"type": "string",
"description": "Candidate label (printable ASCII, unique, no `|`)."
},
"score": {
"type": "number",
"description": "The candidate's nonconformity score."
}
}
}
}
}
}
}
},
"attested": {
"type": "object",
"additionalProperties": false,
"required": [
"schema_version",
"subject",
"attestor",
"residual",
"transport",
"utterance",
"observed_at",
"octets_recalcules",
"verifier_revision"
],
"properties": {
"schema_version": {
"type": "string",
"pattern": "^\\d+\\.\\d+\\.\\d+$"
},
"subject": {
"type": "string",
"pattern": "^[ -~]+$",
"minLength": 1
},
"attestor": {
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"identity",
"key"
],
"properties": {
"identity": {
"type": "string",
"pattern": "^[ -~]+$",
"minLength": 1
},
"key": {
"type": "string",
"pattern": "^([0-9a-f]{2})+$"
}
}
}
},
"residual": {
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "string",
"pattern": "^[ -~]+$",
"minLength": 1
}
},
"transport": {
"type": "string",
"pattern": "^[ -~]+$",
"minLength": 1
},
"utterance": {
"type": "object",
"additionalProperties": false,
"required": [
"hash"
],
"properties": {
"hash": {
"type": "string",
"pattern": "^[0-9a-f]{64}$"
},
"bytes": {
"type": "string",
"pattern": "^([0-9a-f]{2})*$"
}
}
},
"observed_at": {
"type": "object",
"additionalProperties": false,
"required": [
"clock",
"instant"
],
"properties": {
"clock": {
"type": "string",
"pattern": "^[ -~]+$",
"minLength": 1
},
"instant": {
"type": "integer",
"minimum": 0
}
}
},
"octets_recalcules": {
"type": "boolean"
},
"verifier_revision": {
"type": "string",
"pattern": "^[ -~]+$",
"minLength": 1
},
"sens_emis_digest": {
"type": "string",
"pattern": "^[0-9a-f]{64}$"
}
}
}
},
"required": [
"prediction",
"params"
],
"additionalProperties": false
}出力スキーマ
{
"type": "object",
"properties": {
"schema_version": {
"type": "string",
"pattern": "^\\d+\\.\\d+\\.\\d+$"
},
"action": {
"enum": [
"commit",
"defer",
"abstain"
]
},
"allow": {
"type": "boolean"
},
"tool": {
"type": "string",
"pattern": "^[ -~]+$",
"minLength": 1
},
"intent": {
"type": [
"string",
"number",
"null"
]
},
"verdict": {
"type": "object",
"additionalProperties": false,
"required": [
"schema_version",
"task_class",
"method",
"alpha",
"n_calib",
"region",
"qhat",
"abstain",
"reason",
"residual",
"calib_digest",
"produced_at"
],
"properties": {
"schema_version": {
"type": "string",
"pattern": "^\\d+\\.\\d+\\.\\d+$"
},
"task_class": {
"type": "string",
"pattern": "^[ -~]+$",
"minLength": 1
},
"method": {
"enum": [
"split",
"hac-cp"
]
},
"alpha": {
"type": "number",
"exclusiveMinimum": 0,
"exclusiveMaximum": 1
},
"n_calib": {
"type": "integer",
"minimum": 0
},
"region": {
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"labels",
"label_schema"
],
"properties": {
"kind": {
"const": "set"
},
"labels": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[ -~]+$"
}
},
"label_schema": {
"type": "string",
"pattern": "^[ -~]+$",
"minLength": 1
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind",
"lo",
"hi"
],
"properties": {
"kind": {
"const": "interval"
},
"lo": {
"type": "number"
},
"hi": {
"type": "number"
}
}
}
]
},
"qhat": {
"type": [
"number",
"null"
]
},
"abstain": {
"type": "boolean"
},
"reason": {
"enum": [
"covered",
"set_too_large",
"interval_too_wide",
"intent_not_in_region",
"under_calib",
"no_label_schema",
"budget_exhausted",
"clock_expired",
"upstream_timeout",
"attestation_absent",
"attestation_refused",
"binding_broken",
"non_evaluable"
]
},
"residual": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[ -~]+$"
}
},
"scores": {
"type": "array",
"items": {
"type": "number"
}
},
"calib_digest": {
"type": "string",
"pattern": "^[0-9a-f]{64}$"
},
"produced_at": {
"type": "string",
"format": "date-time"
}
}
},
"remaining_budget": {
"type": "number"
},
"reason": {
"enum": [
"covered",
"set_too_large",
"interval_too_wide",
"intent_not_in_region",
"under_calib",
"no_label_schema",
"budget_exhausted",
"clock_expired",
"upstream_timeout",
"attestation_absent",
"attestation_refused",
"binding_broken",
"non_evaluable"
]
}
},
"required": [
"schema_version",
"action",
"allow",
"tool",
"intent",
"verdict",
"remaining_budget",
"reason"
],
"additionalProperties": false
}🟢cascade(L, e, shock, producedAt)
Estimated liquidable amount from the real UKEMI cascade primitives (imported, never re-implemented): an Eisenberg-Noe clearing of the interbank system (L, e) with alpha=beta=1 yields the largest clearing vector L*; each node is then read as a leveraged position — collateral is its cleared balance-sheet value (external assets plus interbank receipts under L*), debt is its nominal obligations, liquidation threshold K=1 — and liquidableAmount sums the debts of the nodes whose cleared value, once shocked by the caller-carried 24h fraction, no longer covers their obligations. Shocking the whole cleared value is a v0 simplification; no source supports shocking interbank receivables. yhat is that liquidable amount: a monetary quantity in the reference asset, a single point that HIKAE conformalizes downstream — no guarantee, no score. Downstream, no cascade calibration is committed; the gate abstains (under_calib) on this class. This cascade tool is v0, replaced at U-5.
入力スキーマ
{
"type": "object",
"properties": {
"L": {
"type": "array",
"description": "Nominal interbank liabilities matrix L[i][j] = what node i owes node j. Square, entries >= 0, zero diagonal.",
"maxItems": 64,
"items": {
"type": "array",
"items": {
"type": "number"
},
"maxItems": 64
}
},
"e": {
"type": "array",
"description": "External assets (liquidation value) per node at the clearing date. One value per node.",
"maxItems": 64,
"items": {
"type": "number"
}
},
"shock": {
"type": "number",
"description": "24h collateral price shock fraction in [0,1] — a declared fixture parameter, not a dynamics model."
},
"producedAt": {
"type": "string",
"description": "Caller-carried RFC3339 instant, injected for hash stability (D4); the tool reads no clock."
}
},
"required": [
"L",
"e",
"shock",
"producedAt"
],
"additionalProperties": false
}出力スキーマ
{
"type": "object",
"properties": {
"schema_version": {
"type": "string",
"pattern": "^\\d+\\.\\d+\\.\\d+$"
},
"task_class": {
"type": "string",
"pattern": "^[ -~]+$",
"minLength": 1
},
"yhat": {
"type": [
"string",
"number"
]
},
"predictor_id": {
"type": "string",
"pattern": "^[ -~]+$",
"minLength": 1
},
"produced_at": {
"type": "string",
"format": "date-time"
},
"features_digest": {
"type": "string",
"pattern": "^[0-9a-f]{64}$"
}
},
"required": [
"schema_version",
"task_class",
"yhat",
"predictor_id",
"produced_at"
],
"additionalProperties": false
}⚪attest
projection of a committed Shōgen-verified witness (Binance BTCUSDT, self-notarized); the verifier is NOT executed at call time.
入力スキーマ
{
"type": "object",
"properties": {},
"additionalProperties": false
}出力スキーマ
{
"type": "object",
"properties": {
"price": {
"type": "object",
"additionalProperties": false,
"required": [
"schema_version",
"subject",
"attestor",
"residual",
"transport",
"utterance",
"observed_at",
"octets_recalcules",
"verifier_revision"
],
"properties": {
"schema_version": {
"type": "string",
"pattern": "^\\d+\\.\\d+\\.\\d+$"
},
"subject": {
"type": "string",
"pattern": "^[ -~]+$",
"minLength": 1
},
"attestor": {
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"identity",
"key"
],
"properties": {
"identity": {
"type": "string",
"pattern": "^[ -~]+$",
"minLength": 1
},
"key": {
"type": "string",
"pattern": "^([0-9a-f]{2})+$"
}
}
}
},
"residual": {
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "string",
"pattern": "^[ -~]+$",
"minLength": 1
}
},
"transport": {
"type": "string",
"pattern": "^[ -~]+$",
"minLength": 1
},
"utterance": {
"type": "object",
"additionalProperties": false,
"required": [
"hash"
],
"properties": {
"hash": {
"type": "string",
"pattern": "^[0-9a-f]{64}$"
},
"bytes": {
"type": "string",
"pattern": "^([0-9a-f]{2})*$"
}
}
},
"observed_at": {
"type": "object",
"additionalProperties": false,
"required": [
"clock",
"instant"
],
"properties": {
"clock": {
"type": "string",
"pattern": "^[ -~]+$",
"minLength": 1
},
"instant": {
"type": "integer",
"minimum": 0
}
}
},
"octets_recalcules": {
"type": "boolean"
},
"verifier_revision": {
"type": "string",
"pattern": "^[ -~]+$",
"minLength": 1
},
"sens_emis_digest": {
"type": "string",
"pattern": "^[0-9a-f]{64}$"
}
}
},
"provenance": {
"type": "object",
"additionalProperties": false,
"required": [
"source_lot_sha256",
"source_verdict_sha256",
"shogen_head_sha"
],
"properties": {
"source_lot_sha256": {
"type": "string",
"pattern": "^[0-9a-f]{64}$",
"description": "sha256 of the committed witness lot (CBOR), recomputed from the bytes."
},
"source_verdict_sha256": {
"type": "string",
"pattern": "^[0-9a-f]{64}$",
"description": "sha256 of the committed verifier output (UTF-8), recomputed from the bytes."
},
"shogen_head_sha": {
"type": "string",
"pattern": "^[0-9a-f]{40}$",
"description": "Source revision the fixtures were extracted from (pinned)."
}
}
},
"label": {
"type": "string",
"description": "Honesty label carried OUTSIDE the frozen price (K-1): the witness is demonstrative, not probative."
}
},
"required": [
"price",
"provenance",
"label"
],
"additionalProperties": false
}⚪calibrate(scores, alpha, nMin)
split-conformal quantile at miscoverage α over caller-supplied nonconformity scores. MONARK does not see, store, or verify the caller's data or model, and does not validate that the supplied numbers are nonconformity scores of any model. Marginal 1−α coverage holds ONLY for future points exchangeable with the supplied scores; non-exchangeable data (e.g. distribution-shifted or time-ordered) voids it. Never a probability of being right.
入力スキーマ
{
"type": "object",
"properties": {
"scores": {
"type": "array",
"description": "Caller-supplied nonconformity scores (BYO: the caller owns the score function; MONARK stays agnostic).",
"maxItems": 10000,
"items": {
"type": "number"
}
},
"alpha": {
"type": "number",
"description": "Target miscoverage in the open interval (0,1)."
},
"nMin": {
"type": "integer",
"description": "Minimum calibration count (>= 1); n < nMin fails closed to under_calib."
}
},
"required": [
"scores",
"alpha",
"nMin"
],
"additionalProperties": false
}出力スキーマ
{
"type": "object",
"properties": {
"qhat": {
"type": [
"number",
"null"
],
"description": "The conformal quantile q̂, or null when the calibration is insufficient (fail-closed)."
},
"n": {
"type": "integer",
"description": "The number of supplied scores (echoed)."
},
"alpha": {
"type": "number",
"description": "The target miscoverage (echoed)."
},
"method": {
"const": "split",
"description": "The conformal method — always split."
},
"set_digest": {
"type": "string",
"pattern": "^[0-9a-f]{64}$",
"description": "calibDigest(scores): recalculable by reference; the audit tie to verdict.calib_digest (C2)."
},
"label": {
"type": "string",
"description": "Honesty label (K-1): the marginal coverage holds only under exchangeability with the supplied scores."
},
"reason": {
"type": [
"string",
"null"
],
"description": "under_calib when q̂ is null, else null on success."
}
},
"required": [
"qhat",
"n",
"alpha",
"method",
"set_digest",
"label",
"reason"
],
"additionalProperties": false
}コミュニティ
エビデンス