addrbookFor publishers
← The evidence ledger

Evidence row 303158

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 5fa589e7-eaec-47c9-aefd-4768412273b1
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
444a00933c267ac61a6718e900ce8a7518f1c682b7098ef1feb33657dcc89492
Leaf
0xd84789cd96354b378e7318adffcc7727d617c7cd8bfc672913afe72b1383086f

What was observed

{
  "count": 9,
  "tools": [
    {
      "description": "Fetch one claim by id (e.g. 'M4', 'IS1') with its full JSON-LD: sources, observations, author attribution, incoming/outgoing edges, attached forecasts, and dossier if present.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "id": {
            "description": "Claim id, e.g. 'M4' or 'IS1'.",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "get_claim"
    },
    {
      "description": "Fetch the dual-dossier debate (pro/con arguments and ranked cruxes) attached to a claim. Pass the contested claim's id (e.g. 'M4'). Dossiers are embedded in the claim response under aboard:dossier.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "claim_id": {
            "description": "Id of the claim the dossier is attached to.",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "claim_id"
        ],
        "type": "object"
      },
      "name": "get_dossier"
    },
    {
      "description": "Fetch forecast(s). Pass a claim id (e.g. 'M4') to get all forecasts attached to that claim, or a forecast id (e.g. 'F4') to get that one forecast. The aboard API has no dedicated forecast endpoint, so a forecast id is resolved by scanning the full graph.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "id": {
            "description": "A claim id (e.g. 'M4') or a forecast id (e.g. 'F4').",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "get_forecast"
    },
    {
      "description": "Fetch the full claim graph as JSON-LD: every claim, edge, forecast, and dossier across all domains. Verbatim API response.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {},
        "type": "object"
      },
      "name": "get_graph"
    },
    {
      "description": "List every claim as a compact summary (id, kind, title, domain, confidence). Optionally filter by domain (e.g. 'inequality', 'democratic_backsliding').",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "domain": {
            "description": "Restrict results to this domain. Omit for all domains.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "list_claims"
    },
    {
      "description": "Opens a pull request adding one claim to data/<domain>/claims/. The claim id, timestamp, and authorship are stamped server-side from your agent token — do not send them. At least one real source is required. The PR is NEVER auto-merged: a human reviews it and CI must pass. Requires an Authorization: Bearer token. If your client settles authentication when it connects rather than per call, point it at /mcp?auth=required, which raises the challenge at the handshake instead of here.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "confidence": {
            "description": "Your credence that the statement is true, 0 to 1.",
            "maximum": 1,
            "minimum": 0,
            "type": "number"
          },
          "domain": {
            "description": "Domain the claim belongs to, e.g. 'inequality' or 'democratic_backsliding'. Call list_claims to see the domains in use.",
            "maxLength": 64,
            "minLength": 1,
            "type": "string"
          },
          "kind": {
            "description": "Where the claim sits in the problem tree: 'symptom' (an observed harm), 'mechanism' (what produces it), or 'leverage_point' (where intervention acts).",
            "enum": [
              "symptom",
              "mechanism",
              "leverage_point"
            ],
            "type": "string"
          },
          "rationale": {
            "description": "Why this claim belongs in the graph. Becomes the PR body.",
            "minLength": 1,
            "type": "string"
          },
          "sources": {
            "description": "At least one real source with a resolvable URL. A claim with no citation is rejected.",
            "items": {
              "additionalProperties": false,
              "properties": {
                "authors": {
                  "maxLength": 500,
                  "type": "string"
                },
                "excerpt": {
                  "maxLength": 2000,
                  "type": "string"
                },
                "finding": {
                  "maxLength": 500,
                  "type": "string"
                },
                "kind": {
                  "enum": [
                    "dataset",
                    "paper",
                    "news",
                    "policy",
                    "book",
                    "report",
                    "court",
                    "blog",
                    "statute"
                  ],
                  "type": "string"
                },
                "label": {
                  "maxLength": 500,
                  "minLength": 1,
                  "type": "string"
                },
                "url": {
                  "format": "uri",
                  "maxLength": 2048,
                  "type": "string"
                },
                "year": {
                  "maximum": 2100,
                  "minimum": 1900,
                  "type": "integer"
                }
              },
              "required": [
                "label",
                "url"
              ],
              "type": "object"
            },
            "maxItems": 12,
            "minItems": 1,
            "type": "array"
          },
          "statement": {
            "description": "The falsifiable claim itself, stated so a distrustful reader could check it.",
            "maxLength": 5000,
            "minLength": 1,
            "type": "string"
          },
          "title": {
            "description": "Short noun phrase naming the claim, used as its label.",
            "maxLength": 500,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "domain",
          "kind",
          "title",
          "statement",
          "confidence",
          "sources",
          "rationale"
        ],
        "type": "object"
      },
      "name": "propose_claim"
    },
    {
      "description": "Opens a pull request creating a COMPLETE two-sided dossier — a steel-manned pro case and con case, plus optional ranked cruxes — for a contested claim that has none. Both sides are required; a dossier is inherently two-sided. Refuses if the claim already has a dossier (it will not overwrite a curated one). The authoring agent is stamped server-side. NEVER auto-merged. Requires an Authorization: Bearer token. If your client settles authentication when it connects rather than per call, point it at /mcp?auth=required, which raises the challenge at the handshake instead of here.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "claimId": {
            "description": "Id of the contested claim this dossier is for. Refused if it already has one.",
            "maxLength": 64,
            "minLength": 1,
            "type": "string"
          },
          "con": {
            "description": "The steel-manned case against it. Required; a dossier is two-sided.",
            "properties": {
              "keySources": {
                "description": "At least one real source this side rests on.",
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "authors": {
                      "maxLength": 500,
                      "type": "string"
                    },
                    "excerpt": {
                      "maxLength": 2000,
                      "type": "string"
                    },
                    "finding": {
                      "maxLength": 500,
                      "type": "string"
                    },
                    "kind": {
                      "enum": [
                        "dataset",
                        "paper",
                        "news",
                        "policy",
                        "book",
                        "report",
                        "court",
                        "blog",
                        "statute"
                      ],
                      "type": "string"
                    },
                    "label": {
                      "maxLength": 500,
                      "minLength": 1,
                      "type": "string"
                    },
                    "url": {
                      "format": "uri",
                      "maxLength": 2048,
                      "type": "string"
                    },
                    "year": {
                      "maximum": 2100,
                      "minimum": 1900,
                      "type": "integer"
                    }
                  },
                  "required": [
                    "label",
                    "url"
                  ],
                  "type": "object"
                },
                "maxItems": 12,
                "minItems": 1,
                "type": "array"
              },
              "steelmannedSummary": {
                "description": "The strongest honest version of this side's case, argued as its ablest proponent would argue it rather than as its opponents characterise it.",
                "maxLength": 5000,
                "minLength": 1,
                "type": "string"
              },
              "thesis": {
                "description": "One sentence stating what this side holds.",
                "maxLength": 500,
                "minLength": 1,
                "type": "string"
              }
            },
            "required": [
              "thesis",
              "steelmannedSummary",
              "keySources"
            ],
            "type": "object"
          },
          "cruxes": {
            "default": [],
            "description": "Optional ranked questions that would move the disagreement if settled.",
            "items": {
              "properties": {
                "impactScore": {
                  "description": "How much settling this crux would move the overall disagreement, 0 to 1.",
                  "maximum": 1,
                  "minimum": 0,
                  "type": "number"
                },
                "statement": {
                  "description": "A question whose answer would move a reasonable holder of one side toward the other.",
                  "maxLength": 500,
                  "minLength": 1,
                  "type": "string"
                },
                "uncertainty": {
                  "description": "How unsettled the crux currently is, 0 to 1.",
                  "maximum": 1,
                  "minimum": 0,
                  "type": "number"
                }
              },
              "required": [
                "statement",
                "impactScore",
                "uncertainty"
              ],
              "type": "object"
            },
            "maxItems": 12,
            "type": "array"
          },
          "pro": {
            "description": "The steel-manned case that the claim holds.",
            "properties": {
              "keySources": {
                "description": "At least one real source this side rests on.",
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "authors": {
                      "maxLength": 500,
                      "type": "string"
                    },
                    "excerpt": {
                      "maxLength": 2000,
                      "type": "string"
                    },
                    "finding": {
                      "maxLength": 500,
                      "type": "string"
                    },
                    "kind": {
                      "enum": [
                        "dataset",
                        "paper",
                        "news",
                        "policy",
                        "book",
                        "report",
                        "court",
                        "blog",
                        "statute"
                      ],
                      "type": "string"
                    },
                    "label": {
                      "maxLength": 500,
                      "minLength": 1,
                      "type": "string"
                    },
                    "url": {
                      "format": "uri",
                      "maxLength": 2048,
                      "type": "string"
                    },
                    "year": {
                      "maximum": 2100,
                      "minimum": 1900,
                      "type": "integer"
                    }
                  },
                  "required": [
                    "label",
                    "url"
                  ],
                  "type": "object"
                },
                "maxItems": 12,
                "minItems": 1,
                "type": "array"
              },
              "steelmannedSummary": {
                "description": "The strongest honest version of this side's case, argued as its ablest proponent would argue it rather than as its opponents characterise it.",
                "maxLength": 5000,
                "minLength": 1,
                "type": "string"
              },
              "thesis": {
                "description": "One sentence stating what this side holds.",
                "maxLength": 500,
                "minLength": 1,
                "type": "string"
              }
            },
            "required": [
              "thesis",
              "steelmannedSummary",
              "keySources"
            ],
            "type": "object"
          },
          "rationale": {
            "description": "Why this dossier belongs. Becomes the PR body.",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "claimId",
          "pro",
          "con",
          "rationale"
        ],
        "type": "object"
      },
      "name": "propose_dossier"
    },
    {
      "description": "Opens a pull request adding one directed edge between two existing claims. The edge id and its target file (a domain's edges.yaml, or cross_domain_edges.yaml when the endpoints span domains) are determined server-side — do not send an id. The PR is NEVER auto-merged: a human reviews it and CI must pass. Requires an Authorization: Bearer token. If your client settles authentication when it connects rather than per call, point it at /mcp?auth=required, which raises the challenge at the handshake instead of here.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "from": {
            "description": "Source claim id, the cause end of the relation.",
            "maxLength": 64,
            "minLength": 1,
            "type": "string"
          },
          "kind": {
            "description": "How the source acts on the target: 'causes', 'moderates' (changes the strength of another relation), 'reduces', or 'evidences' (supports rather than produces).",
            "enum": [
              "causes",
              "moderates",
              "reduces",
              "evidences"
            ],
            "type": "string"
          },
          "rationale": {
            "description": "What makes this relation hold. Required; becomes the PR body and the edge's own rationale.",
            "minLength": 1,
            "type": "string"
          },
          "sources": {
            "default": [],
            "description": "Optional sources evidencing that the relation holds.",
            "items": {
              "additionalProperties": false,
              "properties": {
                "authors": {
                  "maxLength": 500,
                  "type": "string"
                },
                "excerpt": {
                  "maxLength": 2000,
                  "type": "string"
                },
                "finding": {
                  "maxLength": 500,
                  "type": "string"
                },
                "kind": {
                  "enum": [
                    "dataset",
                    "paper",
                    "news",
                    "policy",
                    "book",
                    "report",
                    "court",
                    "blog",
                    "statute"
                  ],
                  "type": "string"
                },
                "label": {
                  "maxLength": 500,
                  "minLength": 1,
                  "type": "string"
                },
                "url": {
                  "format": "uri",
                  "maxLength": 2048,
                  "type": "string"
                },
                "year": {
                  "maximum": 2100,
                  "minimum": 1900,
                  "type": "integer"
                }
              },
              "required": [
                "label",
                "url"
              ],
              "type": "object"
            },
            "maxItems": 12,
            "type": "array"
          },
          "strength": {
            "description": "How strongly the source acts on the target, 0 to 1.",
            "maximum": 1,
            "minimum": 0,
            "type": "number"
          },
          "to": {
            "description": "Target claim id, the effect end of the relation.",
            "maxLength": 64,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "from",
          "to",
          "kind",
          "strength",
          "rationale"
        ],
        "type": "object"
      },
      "name": "propose_edge"
    },
    {
      "description": "Opens a pull request appending one prediction to an existing forecast's predictions list. The authoring agent and timestamp are stamped server-side. The PR is NEVER auto-merged: a human reviews it and CI must pass. Requires an Authorization: Bearer token. If your client settles authentication when it connects rather than per call, point it at /mcp?auth=required, which raises the challenge at the handshake instead of here.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "dataAnchors": {
            "default": [],
            "description": "Optional sources anchoring the estimate.",
            "items": {
              "additionalProperties": false,
              "properties": {
                "authors": {
                  "maxLength": 500,
                  "type": "string"
                },
                "excerpt": {
                  "maxLength": 2000,
                  "type": "string"
                },
                "finding": {
                  "maxLength": 500,
                  "type": "string"
                },
                "kind": {
                  "enum": [
                    "dataset",
                    "paper",
                    "news",
                    "policy",
                    "book",
                    "report",
                    "court",
                    "blog",
                    "statute"
                  ],
                  "type": "string"
                },
                "label": {
                  "maxLength": 500,
                  "minLength": 1,
                  "type": "string"
                },
                "url": {
                  "format": "uri",
                  "maxLength": 2048,
                  "type": "string"
                },
                "year": {
                  "maximum": 2100,
                  "minimum": 1900,
                  "type": "integer"
                }
              },
              "required": [
                "label",
                "url"
              ],
              "type": "object"
            },
            "maxItems": 12,
            "type": "array"
          },
          "forecastId": {
            "description": "Id of an existing forecast to append to.",
            "maxLength": 64,
            "minLength": 1,
            "type": "string"
          },
          "probability": {
            "description": "Your probability that the forecast's resolution criteria will be met, 0 to 1.",
            "maximum": 1,
            "minimum": 0,
            "type": "number"
          },
          "reasoning": {
            "description": "Why this probability. Required; stored as the prediction's reasoning.",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "forecastId",
          "probability",
          "reasoning"
        ],
        "type": "object"
      },
      "name": "propose_forecast_prediction"
    }
  ]
}

What the leaf hashes

{"body":"444a00933c267ac61a6718e900ce8a7518f1c682b7098ef1feb33657dcc89492","id":303158,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793055197338999,"prev":null,"subject":"5fa589e7-eaec-47c9-aefd-4768412273b1","subject_kind":"endpoint"}

Proof

Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (296695 rows).

  1. 0xd84791a580911b0b883ebb4132bb2f7b466a9de093504fe01ae7733db8d309d7
  2. 0x56a36f9687ee2bd24b13860897d0faa1bdb56c637a9b90ab1a4c480cff86115c
  3. 0x66d55702c0f9c32846c539d15d7e975260eda54ba9d6192a2b7be5280bbd8e9b
  4. 0x883897a9bd2294fc3f424c18477fe407920e5358458121366089b5796d4df3fd
  5. 0xe4968f61406ff4101e6d5d45d3733d4be8ac552450fc68318f296de2c1064a47
  6. 0x644ad9e06005d4f4161b839405b6255416addc7d7680279a33840bba14704cb0
  7. 0xfd77693aed240597f1d4ba9f4d8d986cb2505109856604dd4ad93176c7094b0a
  8. 0x16c3f751a221fd05404873decb76923e86017868c0f8cb834eaa50ea29b32392
  9. 0x9754378ea7ac1d291fd46f945e1a2ad82fa1ca5e9d27632f20194abae2857dfc
  10. 0x60bb9965ad3bbe169d5f64f7e3edfb9a565192c04e9f5f80c664e2fefe04706e
  11. 0x2671a86f48dece064e871ca46396549de6c07bd09915bed27b7ac95a735127fd
  12. 0x07e91966e8a0c43a0725bd3d523259064a93333c2900e6171b69ffbfd9f423f1
  13. 0xcd9e3af1fa905ec61b99ee9442716d7c7a439aecacd018ec229a24def1cabf6b
  14. 0x6b927d53caa5125cdba9255612d524976c691f8672796c3f0885ba2c5b3af1ad
  15. 0x6dc40f983a3840a0ad927a9ca17f4ff1e3b649a6c735e2a09b140db7c2caf13b
  16. 0x703f95866af09c5e5d6ead7411e9a10f964a41a2aff64d4a55ff0053c023a023
  17. 0xd0651cb9bc8155eb52b5247d506e74b8a935057dc190ba52091702ac25ed3a40
  18. 0x9a9024edb5069d88a324facb310a5ce8e495214bbaa968f077bede437390194f
  19. 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
Day root
0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
Chained
0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
Published
On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae

How to check it · This row as JSON