← The evidence ledger
Evidence row 800148
Observed , by probe.mcp/1.
- Kind
- mcp.tools
- About
- endpoint 5f44df91-7a27-404f-a78b-b169c0548c4d
- Recorded
- Previous row
- #510971
- Body SHA-256
- e120d51092c449c5fdad55f8ddcadc2bd202c9cc9ffec8f7fccd7c860952c792
- Leaf
- 0x61f1cb4ce87c851b77e4f126213fea3aaccc30d65c620a4f94b4556e32cfdaf6
What was observed
{
"count": 8,
"tools": [
{
"description": "List authors linked to one claim.\n\n Use this when you have a claim id and need the people linked to it.\n Returns author id, name, and orcid. The list is empty when none are linked.\n Example: get_authors(claim_id=\"claim-attention\").\n Example: get_authors(claim_id=\"<id from query_claims>\").\n ",
"inputSchema": {
"properties": {
"claim_id": {
"description": "Claim id returned by a search tool. Example: claim-attention.",
"examples": [
"claim-attention"
],
"title": "Claim Id",
"type": "string"
}
},
"required": [
"claim_id"
],
"title": "get_authorsArguments",
"type": "object"
},
"name": "get_authors"
},
{
"description": "List claims stored as contradicting one claim.\n\n Returns each opposing claim id, status, evidence strength, and opposition strength.\n Example: get_contradictions(claim_id=\"<id from query_claims>\").\n ",
"inputSchema": {
"properties": {
"claim_id": {
"description": "Claim id to inspect.",
"title": "Claim Id",
"type": "string"
}
},
"required": [
"claim_id"
],
"title": "get_contradictionsArguments",
"type": "object"
},
"name": "get_contradictions"
},
{
"description": "Provenance for one claim. Excerpts are short unless full_text is true.\n\n Use this after a search when you have a claim id and need the papers behind it.\n Example: get_evidence(claim_id=\"claim-attention\").\n Example: get_evidence(claim_id=\"claim-attention\", full_text=true).\n ",
"inputSchema": {
"properties": {
"claim_id": {
"description": "Claim id returned by a search tool. Example: claim-attention.",
"examples": [
"claim-attention"
],
"title": "Claim Id",
"type": "string"
},
"full_text": {
"default": false,
"description": "Return stored excerpts without shortening. Example: false.",
"examples": [
false
],
"title": "Full Text",
"type": "boolean"
}
},
"required": [
"claim_id"
],
"title": "get_evidenceArguments",
"type": "object"
},
"name": "get_evidence"
},
{
"description": "List innovation flags, strongest first.\n\n Use this when you want links between claims rather than the claims themselves.\n Each flag includes flag_type. lexical_association is exploratory shared-term context.\n scientific_connection and research_hypothesis are evaluated relationships.\n Returns flag id, domain, summary, strength, flag_type, connected_domain, the claim ids on each path, and a claims array in that same order.\n Each claims item has claim_id, statement, and evidence strength. Full evidence stays on get_evidence.\n connected_domain is the primary domain of the claim that does not match the flag domain.\n It is null when the claims share a primary domain.\n Optional cross_domain_only, when true, returns only flags whose claims sit in different primary domains.\n Repeated claim paths return once, keeping the strongest flag for that pair.\n Example: get_innovation_flags(domain=\"ai-ml\", min_strength=0.5, limit=10).\n Example: get_innovation_flags(domain=\"quantum\", min_strength=0.8, limit=5).\n Example: get_innovation_flags(domain=\"consciousness\", cross_domain_only=True, limit=10).\n ",
"inputSchema": {
"properties": {
"cross_domain_only": {
"default": false,
"description": "When true, return only flags whose connected_domain is set. Default false.",
"examples": [
false
],
"title": "Cross Domain Only",
"type": "boolean"
},
"domain": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Restrict flags to one domain. Example: ai-ml.",
"examples": [
"ai-ml"
],
"title": "Domain"
},
"limit": {
"default": 20,
"description": "Page size. Example: 10.",
"examples": [
10
],
"maximum": 50,
"minimum": 1,
"title": "Limit",
"type": "integer"
},
"min_strength": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Drop flags below this strength, from 0 to 1. Example: 0.5.",
"examples": [
0.5
],
"title": "Min Strength"
},
"offset": {
"default": 0,
"description": "Number of hits to skip. Example: 0.",
"examples": [
0
],
"minimum": 0,
"title": "Offset",
"type": "integer"
}
},
"title": "get_innovation_flagsArguments",
"type": "object"
},
"name": "get_innovation_flags"
},
{
"description": "List claims whose last_updated is at or after a timestamp.\n\n Use this to read claims that changed after a time you already checked.\n Returns claim id, status, evidence strength, and a shortened excerpt.\n Example: get_updates(since=\"2026-01-01T00:00:00Z\", domain=\"ai-ml\", limit=20).\n Example: get_updates(since=\"2026-10-01T00:00:00Z\", domain=\"consciousness\", offset=20).\n ",
"inputSchema": {
"properties": {
"domain": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Restrict results to one domain. Example: ai-ml.",
"examples": [
"ai-ml"
],
"title": "Domain"
},
"limit": {
"default": 20,
"description": "Page size. Example: 20.",
"examples": [
20
],
"maximum": 50,
"minimum": 1,
"title": "Limit",
"type": "integer"
},
"offset": {
"default": 0,
"description": "Number of hits to skip. Example: 0.",
"examples": [
0
],
"minimum": 0,
"title": "Offset",
"type": "integer"
},
"since": {
"description": "ISO-8601 timestamp. Claims updated at or after this time. Example: 2026-01-01T00:00:00Z.",
"examples": [
"2026-01-01T00:00:00Z"
],
"format": "date-time",
"title": "Since",
"type": "string"
}
},
"required": [
"since"
],
"title": "get_updatesArguments",
"type": "object"
},
"name": "get_updates"
},
{
"description": "Search claim statements and excerpts.\n\n A domain keeps claims whose primary domain is that value or one of its\n aliases, such as cs.LG for ai-ml. Evidence strength orders those hits.\n cross_domain also keeps claims from other domains that carry the domain\n as a secondary tag. When the query is one domain keyword and domain is\n omitted, claims in that domain come first.\n\n Use this when you have keywords or a domain and want the strongest matching claims.\n Returns claim id, status, evidence strength, and a shortened excerpt.\n Example: query_claims(query=\"transformer\", domain=\"ai-ml\", limit=5).\n Example: query_claims(query=\"United States\", domain=\"data-protection\", limit=5).\n ",
"inputSchema": {
"$defs": {
"AssertionType": {
"enum": [
"asserted",
"hedged",
"conditional"
],
"title": "AssertionType",
"type": "string"
},
"ClaimFilters": {
"description": "Optional status, strength, and assertion type for a claim search.",
"properties": {
"assertion_type": {
"anyOf": [
{
"$ref": "#/$defs/AssertionType"
},
{
"type": "null"
}
],
"default": null,
"description": "Keep one assertion type: asserted, hedged, or conditional. Example: asserted.",
"examples": [
"asserted"
]
},
"min_strength": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Drop claims below this evidence strength, from 0 to 1. Example: 0.6.",
"examples": [
0.6
],
"title": "Min Strength"
},
"status": {
"anyOf": [
{
"$ref": "#/$defs/ClaimStatus"
},
{
"type": "null"
}
],
"default": null,
"description": "Keep one status: consensus, contested, or outdated. Example: consensus.",
"examples": [
"consensus"
]
}
},
"title": "ClaimFilters",
"type": "object"
},
"ClaimStatus": {
"enum": [
"consensus",
"contested",
"outdated"
],
"title": "ClaimStatus",
"type": "string"
}
},
"properties": {
"cross_domain": {
"default": false,
"description": "Also return claims from other primary domains that carry this domain as a secondary tag. Default false.",
"examples": [
false
],
"title": "Cross Domain",
"type": "boolean"
},
"domain": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Primary domain or an alias of it. Example: ai-ml.",
"examples": [
"ai-ml"
],
"title": "Domain"
},
"filters": {
"anyOf": [
{
"$ref": "#/$defs/ClaimFilters"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional status, minimum evidence strength, and assertion type. Example: {\"status\": \"consensus\", \"min_strength\": 0.6}.",
"examples": [
{
"min_strength": 0.6,
"status": "consensus"
}
]
},
"limit": {
"default": 20,
"description": "Page size. Example: 5.",
"examples": [
5
],
"maximum": 50,
"minimum": 1,
"title": "Limit",
"type": "integer"
},
"offset": {
"default": 0,
"description": "Number of hits to skip. Example: 0.",
"examples": [
0
],
"minimum": 0,
"title": "Offset",
"type": "integer"
},
"query": {
"description": "Text matched against the claim statement and its excerpt. Example: transformer.",
"examples": [
"transformer"
],
"title": "Query",
"type": "string"
}
},
"required": [
"query"
],
"title": "query_claimsArguments",
"type": "object"
},
"name": "query_claims"
},
{
"description": "List law records for one jurisdiction and area of law.\n\n Use this when you want jurisdiction-scoped records. Omitting jurisdiction returns science claims.\n Returns record id, status, evidence strength, a shortened excerpt, jurisdiction, and area of law.\n Example: query_law(jurisdiction=\"DE\", area_of_law=\"data-protection\", query=\"consent\", limit=5).\n Example: query_law(query=\"transformer\", limit=5).\n ",
"inputSchema": {
"properties": {
"area_of_law": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Area of law slug. Example: data-protection.",
"examples": [
"data-protection"
],
"title": "Area Of Law"
},
"jurisdiction": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Jurisdiction code. Example: DE. Omit it to search science.",
"examples": [
"DE"
],
"title": "Jurisdiction"
},
"limit": {
"default": 20,
"description": "Page size. Example: 5.",
"examples": [
5
],
"maximum": 50,
"minimum": 1,
"title": "Limit",
"type": "integer"
},
"query": {
"default": "",
"description": "Text matched against the statement and its excerpt. Example: consent.",
"examples": [
"consent"
],
"title": "Query",
"type": "string"
}
},
"title": "query_lawArguments",
"type": "object"
},
"name": "query_law"
},
{
"description": "Find claims from a natural-language question.\n\n A question is matched on its content phrases. When that match is empty,\n the longest content terms are searched as keywords. Those hits stay on\n strategy question, set fallback to keyword, and are ordered by how many\n question terms appear in the statement or excerpt. A keyword stays on\n the lexical match.\n\n A domain keeps claims whose primary domain is that value or one of its\n aliases. cross_domain also keeps claims from other domains that carry\n the domain as a secondary tag.\n\n Use this when the input is a question instead of keywords.\n Example: search_smart(natural_language=\"How do transformers handle long context?\", domain=\"ai-ml\", limit=5).\n Example: search_smart(natural_language=\"What limits healthspan?\", domain=\"longevity\", limit=5).\n ",
"inputSchema": {
"properties": {
"cross_domain": {
"default": false,
"description": "Also return claims from other primary domains that carry this domain as a secondary tag. Default false.",
"examples": [
false
],
"title": "Cross Domain",
"type": "boolean"
},
"domain": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Primary domain or an alias of it. Example: ai-ml.",
"examples": [
"ai-ml"
],
"title": "Domain"
},
"limit": {
"default": 10,
"description": "Page size. Example: 5.",
"examples": [
5
],
"maximum": 50,
"minimum": 1,
"title": "Limit",
"type": "integer"
},
"natural_language": {
"description": "A question or description of the claims you want. Example: How do transformers handle long context?",
"examples": [
"How do transformers handle long context?"
],
"title": "Natural Language",
"type": "string"
},
"offset": {
"default": 0,
"description": "Number of hits to skip. Example: 0.",
"examples": [
0
],
"minimum": 0,
"title": "Offset",
"type": "integer"
}
},
"required": [
"natural_language"
],
"title": "search_smartArguments",
"type": "object"
},
"name": "search_smart"
}
]
}What the leaf hashes
{"body":"e120d51092c449c5fdad55f8ddcadc2bd202c9cc9ffec8f7fccd7c860952c792","id":800148,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793218111643517,"prev":510971,"subject":"5f44df91-7a27-404f-a78b-b169c0548c4d","subject_kind":"endpoint"}Proof
Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (231336 rows).
- 0x61f1ea23bb8af2ccfca16f198fa2dfd0e4e680449dcb8670c2af0521ca8c3fd9
- 0xc6243e200d3beaf0ec674afcb5b597b5b21fb21cc019bfc5945ecee5fae5da22
- 0xb9cca61e34fcc5eea25a63150c64d44248b16c00e5ae9d1391bf0eff77de0baa
- 0x7c0ca40deb7a1e5aec1fc71ac0a7aaa4180054619c4341ff1234b66ba9db2a16
- 0x11599798ddb9a83ddcfb61eb7d97a038028ef0762fd00ccc05e0c2f11cda52de
- 0x7876be62260b5d29cb2de1b7b2c68dff320752eb63a27774c913dad401c8d1e0
- 0xb7452fcd12912fad2169d3af33804337b377a57c268e1364e059c90ca8aab91d
- 0xd2739f4ca7b371d1584f99f79bccfb5bcfce0a7e52f2fe446bfa0d1092ad7624
- 0x115c4d17a5524611b0b77f19c05be010a2d562945b0c5d5b07cb4431b5bd54c6
- 0x28022a4aa884533f0c3eb9977e6a35df7fad4781bbe8655d9141297c38254826
- 0x4f4033e6838ac39f2b5b002d55b48236f4b2e5cce60cd6d6db991af9064574aa
- 0x8a656adb97b5c221e978024a90ab5a8c48723831c4afd91f0af3cb5d7b91ff1e
- 0x05b3d42cfeebe257d8d456af82d1a90957f371989ded6d869ae723454504d258
- 0x8db2587099a4011758c742fc2aad940742aa47abddf6007f131e0d5ab4a9e92b
- 0xe6054de1f67b1e6f15bcf16d2b6536cf35dd9705fdf6ce59853e79784693ab5f
- 0xa99a40fe210d675bb6ab72d4bb72ab40eb44ac345773c457fbe58e67a47b03df
- 0x7a743a0a09057bae687051274e1d45bf973bd36a1a4ba16a191b5d29e3bdfa2a
- 0xe027395fafb7fc41921c42ca0542524ea22204cbd5908b70b27f3d5fb26f5d0f
- Day root
- 0x2c19037464cc4c493624565f01775d6446fc78eaa118fc6865bfe2bfca9ff78e
- Chained
- 0xd1d7dee8322ceff8f4c8d83aa1fe4a4466825c2af1c97dbde3d35db61234f7be
- Published
- On Arc Testnet, block 69584042: 0x8bae2b1d097834c8b458513862d70d29ee807e98dc2e863b27250131c15b35ae