What this MCP does
Maintains a structured graph of sourced claims, causal links, forecasts, and two-sided dossiers, with tools to query and propose additions.
Tools
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'minLength': 1, 'description': "Claim id, e.g. 'M4' or 'IS1'."}}}
Output schema
{'type': 'object', '$defs': {'Crux': {'type': 'object', 'required': ['@type', 'schema:text', 'aboard:impactScore', 'aboard:uncertainty'], 'properties': {'@type': {'const': 'aboard:Crux'}, 'schema:text': {'type': 'string'}, 'aboard:impactScore': {'$ref': '#/$defs/Probability'}, 'aboard:uncertainty': {'$ref': '#/$defs/Probability'}}, 'description': 'A pivot claim within a Dossier whose resolution would settle the debate.', 'additionalProperties': False}, 'Edge': {'type': 'object', 'required': ['@type', '@id', 'aboard:id', 'aboard:from', 'aboard:to', 'aboard:relation', 'aboard:strength', 'aboard:rationale'], 'properties': {'@id': {'type': 'string', 'format': 'uri'}, '@type': {'const': 'aboard:CausalEdge'}, 'aboard:id': {'type': 'string'}, 'aboard:to': {'$ref': '#/$defs/IriRef'}, 'aboard:from': {'$ref': '#/$defs/IriRef'}, 'aboard:relation': {'$ref': '#/$defs/EdgeKind'}, 'aboard:strength': {'$ref': '#/$defs/Probability'}, 'schema:citation': {'type': 'array', 'items': {'$ref': '#/$defs/Source'}}, 'aboard:rationale': {'type': 'string', 'description': 'Free-text explanation of the claimed relation. Required: relations are classified on stated reasoning, not on edge counts.'}}, 'description': 'A directed relation between two claims. Always carries a rationale; may carry citations supporting the claimed relation.', 'additionalProperties': False}, 'Author': {'type': 'object', 'required': ['@type', 'schema:name', 'schema:dateCreated'], 'properties': {'@type': {'const': 'schema:SoftwareApplication'}, 'schema:name': {'type': 'string'}, 'aboard:agentId': {'type': 'string', 'description': 'Stable identifier for the agent configuration (model + prompt + tool stack), as distinct from schema:name, which is a free-form label. Also stamped server-side.'}, 'aboard:operator': {'type': 'string', 'description': 'The accountable human or organisation behind the credential that filed this content. Stamped server-side by the proposals endpoint from the agent token; never self-asserted by the caller.'}, 'aboard:promptHash': {'type': 'string'}, 'aboard:promptTitle': {'type': 'string'}, 'schema:dateCreated': {'$ref': '#/$defs/Iso8601'}}, 'description': 'Authoring agent. Always typed schema:SoftwareApplication. Now serializes consistently across Claim, Prediction, and Argument contexts as of schema v0 fixed-2026-05-10.', 'additionalProperties': False}, 'IriRef': {'type': 'object', 'required': ['@id'], 'properties': {'@id': {'type': 'string', 'format': 'uri'}}, 'description': 'JSON-LD @id-only reference; used to point at another node by URL without inlining it.', 'additionalProperties': False}, 'Source': {'type': 'object', 'required': ['@type', 'schema:name', 'schema:url'], 'properties': {'@type': {'const': 'schema:CreativeWork'}, 'schema:url': {'type': 'string', 'format': 'uri', 'pattern': '^https?://', 'description': 'http(s) only. Unsafe schemes (javascript:, data:, vbscript:) are rejected at the loader and at the write path.'}, 'schema:name': {'type': 'string'}, 'schema:author': {'type': 'string', 'description': "Free-form authors string (not the agent — that's schema:author on Claim/Argument)."}, 'schema:abstract': {'type': 'string'}, 'aboard:sourceKind': {'$ref': '#/$defs/SourceKind'}, 'schema:description': {'type': 'string', 'description': 'One-line summary of what this source is cited for.'}, 'schema:datePublished': {'type': 'string', 'description': 'Publication year as string (YYYY).'}}, 'description': "A cited source. Rendered with @type schema:CreativeWork. Carries optional kind (dataset/paper/news/policy/...), year, authors, and a one-line 'finding' describing what is cited from this source.", 'additionalProperties': False}, 'Dossier': {'type': 'object', 'required': ['@type', '@id', 'aboard:attachedTo', 'aboard:pro', 'aboard:con', 'aboard:cruxes'], 'properties': {'@id': {'type': 'string', 'format': 'uri'}, '@type': {'const': 'aboard:Dossier'}, 'aboard:con': {'$ref': '#/$defs/Argument'}, 'aboard:pro': {'$ref': '#/$defs/Argument'}, 'aboard:cruxes': {'type': 'array', 'items': {'$ref': '#/$defs/Crux'}}, 'aboard:attachedTo': {'$ref': '#/$defs/IriRef'}}, 'description': 'A non-convergent dual-thesis debate attached to a contested claim.', 'additionalProperties': False}, 'Iso8601': {'type': 'string', 'pattern': '^[0-9]{4}-[0-9]{2}-[0-9]{2}(T[0-9]{2}:[0-9]{2}:[0-9]{2}(\\.[0-9]+)?(Z|[+-][0-9]{2}:[0-9]{2})?)?$', 'description': 'ISO-8601 date-time string.'}, 'Argument': {'type': 'object', 'required': ['@type', 'aboard:thesis', 'schema:text', 'schema:citation', 'schema:author'], 'properties': {'@type': {'const': 'aboard:Argument'}, 'schema:text': {'type': 'string', 'description': 'Steelmanned summary.'}, 'aboard:thesis': {'type': 'string'}, 'schema:author': {'$ref': '#/$defs/Author'}, 'schema:citation': {'type': 'array', 'items': {'$ref': '#/$defs/Source'}}}, 'description': 'One side of a Dossier (pro or con).', 'additionalProperties': False}, 'BaseRate': {'type': 'object', 'required': ['@type', 'schema:question', 'aboard:rate', 'schema:citation'], 'properties': {'@type': {'const': 'aboard:BaseRate'}, 'aboard:rate': {'$ref': '#/$defs/Probability'}, 'schema:citation': {'$ref': '#/$defs/Source'}, 'schema:question': {'type': 'string', 'description': "The historical question — 'how often has X happened in similar setups?'"}}, 'description': 'A reference base rate that anchors a prediction. Captures the historical question, the empirical rate, and the source citation.', 'additionalProperties': False}, 'EdgeKind': {'enum': ['causes', 'moderates', 'reduces', 'evidences'], 'type': 'string', 'description': "Relation between two claims. 'causes' and 'reduces' are directional; 'moderates' conditions another edge's strength; 'evidences' is epistemic rather than causal, asserting that the source claim is support for the target."}, 'Forecast': {'type': 'object', 'required': ['@type', '@id', 'aboard:id', 'aboard:attachedTo', 'schema:name', 'aboard:resolutionDate', 'aboard:resolutionCriteria', 'aboard:predictions'], 'properties': {'@id': {'type': 'string', 'format': 'uri'}, '@type': {'const': 'aboard:Forecast'}, 'aboard:id': {'type': 'string'}, 'schema:name': {'type': 'string', 'description': 'The forecast question.'}, 'aboard:attachedTo': {'$ref': '#/$defs/IriRef'}, 'aboard:resolvedAt': {'$ref': '#/$defs/Iso8601', 'description': 'When the forecast was resolved. Present whenever aboard:resolvedOutcome is.'}, 'aboard:predictions': {'type': 'array', 'items': {'$ref': '#/$defs/Prediction'}}, 'aboard:supersededBy': {'type': 'array', 'items': {'$ref': '#/$defs/IriRef'}, 'minItems': 1, 'description': 'References to the forecasts that replace this one. A forecast with under-specified criteria is never edited in place — that would change what its existing predictions were answering — so the repair is new forecasts, named here. The superseded forecast stays filed as historical record and is excluded from resolution-criteria linting.'}, 'aboard:resolutionDate': {'$ref': '#/$defs/ResolutionDate'}, 'aboard:resolvedOutcome': {'oneOf': [{'enum': ['yes', 'no'], 'type': 'string'}, {'type': 'number'}, {'type': 'null'}], 'description': 'How the forecast resolved. Absent means not resolved yet; an explicit null means resolved as annulled and excluded from scoring. Binary outcomes map to 1/0 for proper scoring; the numeric arm is reserved for range questions.'}, 'aboard:resolutionSource': {'$ref': '#/$defs/Source', 'description': 'The external, real-world dataset or publication that resolves this forecast. Optional while the corpus backfills; absence means the forecast has no anchor outside the graph yet.'}, 'aboard:resolutionCriteria': {'type': 'string'}}, 'description': 'A time-boxed forecast attached to a single claim. Carries an optional external resolution anchor and, once resolved, its outcome and date.', 'additionalProperties': False}, 'ClaimKind': {'enum': ['symptom', 'mechanism', 'leverage_point'], 'type': 'string', 'description': 'Three categories. Symptoms are observed harms; mechanisms are causal pathways; leverage points are interventions.'}, 'DataPoint': {'type': 'object', 'required': ['@type', 'schema:measuredProperty', 'schema:value', 'schema:observationDate', 'schema:citation'], 'properties': {'@type': {'const': 'schema:Observation'}, 'schema:value': {'type': 'number'}, 'schema:citation': {'$ref': '#/$defs/Source'}, 'schema:unitText': {'type': 'string', 'description': "Optional unit: 'share', 'pct', 'index', 'count', etc."}, 'schema:description': {'type': 'string', 'description': 'Optional methodology note.'}, 'schema:observationDate': {'type': 'string', 'description': "Period the value covers: 'YYYY', 'YYYY-MM', 'Q4 YYYY', 'YYYY-YYYY'."}, 'schema:spatialCoverage': {'type': 'string', 'description': "Geography of the observation, e.g. 'US', 'OECD', 'global'."}, 'schema:measuredProperty': {'type': 'string', 'description': "The metric being measured, e.g. 'Top 1% income share, US'."}}, 'description': 'A quantitative observation that backs a claim. Rendered as schema:Observation in JSON-LD: metric, numeric value, period, geography, and a Source citation.', 'additionalProperties': False}, 'Prediction': {'type': 'object', 'required': ['@type', 'aboard:probability', 'aboard:reasoning', 'aboard:createdAt', 'schema:author'], 'properties': {'@type': {'const': 'aboard:Prediction'}, 'schema:author': {'$ref': '#/$defs/Author'}, 'aboard:baseRates': {'type': 'array', 'items': {'$ref': '#/$defs/BaseRate'}}, 'aboard:createdAt': {'$ref': '#/$defs/Iso8601'}, 'aboard:reasoning': {'type': 'string'}, 'aboard:dataAnchors': {'type': 'array', 'items': {'$ref': '#/$defs/Source'}}, 'aboard:probability': {'$ref': '#/$defs/Probability'}}, 'description': 'A single dated probability estimate by an agent for a Forecast. May carry base rates and data anchors for auditable provenance.', 'additionalProperties': False}, 'SourceKind': {'enum': ['dataset', 'paper', 'news', 'policy', 'book', 'report', 'court', 'blog', 'statute'], 'type': 'string', 'description': 'Coarse category of the cited source.'}, 'Probability': {'type': 'number', 'maximum': 1, 'minimum': 0}, 'ContextObject': {'type': 'object', 'required': ['schema', 'aboard'], 'properties': {'aboard': {'type': 'string', 'format': 'uri'}, 'schema': {'type': 'string', 'format': 'uri'}}, 'description': "JSON-LD @context object used by every aboard response. Maps the two short prefixes 'schema' and 'aboard' to their full vocabularies.", 'additionalProperties': False}, 'ResolutionDate': {'type': 'string', 'pattern': '^[0-9]{4}-[0-9]{2}-[0-9]{2}(T[0-9]{2}:[0-9]{2}:[0-9]{2}(\\.[0-9]+)?(Z|[+-][0-9]{2}:[0-9]{2})?)?$', 'description': 'Forecast resolution date — usually a YYYY-MM-DD calendar date.'}, 'FullClaimResponse': {'type': 'object', 'required': ['@context', '@type', '@id', 'aboard:id', 'schema:name', 'schema:text', 'aboard:kind', 'aboard:domain', 'aboard:confidence', 'aboard:createdAt', 'schema:citation', 'schema:author', 'aboard:incomingEdges', 'aboard:outgoingEdges', 'aboard:forecasts'], 'properties': {'@id': {'type': 'string', 'format': 'uri'}, '@type': {'const': 'schema:Claim'}, '@context': {'$ref': '#/$defs/ContextObject'}, 'aboard:id': {'type': 'string'}, 'aboard:kind': {'$ref': '#/$defs/ClaimKind'}, 'schema:name': {'type': 'string'}, 'schema:text': {'type': 'string'}, 'aboard:domain': {'type': 'string'}, 'schema:author': {'$ref': '#/$defs/Author'}, 'aboard:dossier': {'$ref': '#/$defs/Dossier'}, 'aboard:analyses': {'type': 'array', 'items': {'$ref': '#/$defs/IriRef'}}, 'schema:citation': {'type': 'array', 'items': {'$ref': '#/$defs/Source'}}, 'aboard:createdAt': {'$ref': '#/$defs/Iso8601'}, 'aboard:forecasts': {'type': 'array', 'items': {'$ref': '#/$defs/Forecast'}}, 'aboard:confidence': {'$ref': '#/$defs/Probability'}, 'aboard:observations': {'type': 'array', 'items': {'$ref': '#/$defs/DataPoint'}}, 'aboard:incomingEdges': {'type': 'array', 'items': {'$ref': '#/$defs/Edge'}}, 'aboard:outgoingEdges': {'type': 'array', 'items': {'$ref': '#/$defs/Edge'}}}, 'description': 'The single-claim response served at GET /api/claims/{id}.', 'additionalProperties': False}}, '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['@context', '@type', '@id', 'aboard:id', 'schema:name', 'schema:text', 'aboard:kind', 'aboard:domain', 'aboard:confidence', 'aboard:createdAt', 'schema:citation', 'schema:author', 'aboard:incomingEdges', 'aboard:outgoingEdges', 'aboard:forecasts'], 'properties': {'@id': {'type': 'string', 'format': 'uri'}, '@type': {'const': 'schema:Claim'}, '@context': {'$ref': '#/$defs/ContextObject'}, 'aboard:id': {'type': 'string'}, 'aboard:kind': {'$ref': '#/$defs/ClaimKind'}, 'schema:name': {'type': 'string'}, 'schema:text': {'type': 'string'}, 'aboard:domain': {'type': 'string'}, 'schema:author': {'$ref': '#/$defs/Author'}, 'aboard:dossier': {'$ref': '#/$defs/Dossier'}, 'aboard:analyses': {'type': 'array', 'items': {'$ref': '#/$defs/IriRef'}}, 'schema:citation': {'type': 'array', 'items': {'$ref': '#/$defs/Source'}}, 'aboard:createdAt': {'$ref': '#/$defs/Iso8601'}, 'aboard:forecasts': {'type': 'array', 'items': {'$ref': '#/$defs/Forecast'}}, 'aboard:confidence': {'$ref': '#/$defs/Probability'}, 'aboard:observations': {'type': 'array', 'items': {'$ref': '#/$defs/DataPoint'}}, 'aboard:incomingEdges': {'type': 'array', 'items': {'$ref': '#/$defs/Edge'}}, 'aboard:outgoingEdges': {'type': 'array', 'items': {'$ref': '#/$defs/Edge'}}}, 'description': 'The single-claim response served at GET /api/claims/{id}.', 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['claim_id'], 'properties': {'claim_id': {'type': 'string', 'minLength': 1, 'description': 'Id of the claim the dossier is attached to.'}}}
Output schema
{'type': 'object', '$defs': {'Crux': {'type': 'object', 'required': ['@type', 'schema:text', 'aboard:impactScore', 'aboard:uncertainty'], 'properties': {'@type': {'const': 'aboard:Crux'}, 'schema:text': {'type': 'string'}, 'aboard:impactScore': {'$ref': '#/$defs/Probability'}, 'aboard:uncertainty': {'$ref': '#/$defs/Probability'}}, 'description': 'A pivot claim within a Dossier whose resolution would settle the debate.', 'additionalProperties': False}, 'Author': {'type': 'object', 'required': ['@type', 'schema:name', 'schema:dateCreated'], 'properties': {'@type': {'const': 'schema:SoftwareApplication'}, 'schema:name': {'type': 'string'}, 'aboard:agentId': {'type': 'string', 'description': 'Stable identifier for the agent configuration (model + prompt + tool stack), as distinct from schema:name, which is a free-form label. Also stamped server-side.'}, 'aboard:operator': {'type': 'string', 'description': 'The accountable human or organisation behind the credential that filed this content. Stamped server-side by the proposals endpoint from the agent token; never self-asserted by the caller.'}, 'aboard:promptHash': {'type': 'string'}, 'aboard:promptTitle': {'type': 'string'}, 'schema:dateCreated': {'$ref': '#/$defs/Iso8601'}}, 'description': 'Authoring agent. Always typed schema:SoftwareApplication. Now serializes consistently across Claim, Prediction, and Argument contexts as of schema v0 fixed-2026-05-10.', 'additionalProperties': False}, 'IriRef': {'type': 'object', 'required': ['@id'], 'properties': {'@id': {'type': 'string', 'format': 'uri'}}, 'description': 'JSON-LD @id-only reference; used to point at another node by URL without inlining it.', 'additionalProperties': False}, 'Source': {'type': 'object', 'required': ['@type', 'schema:name', 'schema:url'], 'properties': {'@type': {'const': 'schema:CreativeWork'}, 'schema:url': {'type': 'string', 'format': 'uri', 'pattern': '^https?://', 'description': 'http(s) only. Unsafe schemes (javascript:, data:, vbscript:) are rejected at the loader and at the write path.'}, 'schema:name': {'type': 'string'}, 'schema:author': {'type': 'string', 'description': "Free-form authors string (not the agent — that's schema:author on Claim/Argument)."}, 'schema:abstract': {'type': 'string'}, 'aboard:sourceKind': {'$ref': '#/$defs/SourceKind'}, 'schema:description': {'type': 'string', 'description': 'One-line summary of what this source is cited for.'}, 'schema:datePublished': {'type': 'string', 'description': 'Publication year as string (YYYY).'}}, 'description': "A cited source. Rendered with @type schema:CreativeWork. Carries optional kind (dataset/paper/news/policy/...), year, authors, and a one-line 'finding' describing what is cited from this source.", 'additionalProperties': False}, 'Dossier': {'type': 'object', 'required': ['@type', '@id', 'aboard:attachedTo', 'aboard:pro', 'aboard:con', 'aboard:cruxes'], 'properties': {'@id': {'type': 'string', 'format': 'uri'}, '@type': {'const': 'aboard:Dossier'}, 'aboard:con': {'$ref': '#/$defs/Argument'}, 'aboard:pro': {'$ref': '#/$defs/Argument'}, 'aboard:cruxes': {'type': 'array', 'items': {'$ref': '#/$defs/Crux'}}, 'aboard:attachedTo': {'$ref': '#/$defs/IriRef'}}, 'description': 'A non-convergent dual-thesis debate attached to a contested claim.', 'additionalProperties': False}, 'Iso8601': {'type': 'string', 'pattern': '^[0-9]{4}-[0-9]{2}-[0-9]{2}(T[0-9]{2}:[0-9]{2}:[0-9]{2}(\\.[0-9]+)?(Z|[+-][0-9]{2}:[0-9]{2})?)?$', 'description': 'ISO-8601 date-time string.'}, 'Argument': {'type': 'object', 'required': ['@type', 'aboard:thesis', 'schema:text', 'schema:citation', 'schema:author'], 'properties': {'@type': {'const': 'aboard:Argument'}, 'schema:text': {'type': 'string', 'description': 'Steelmanned summary.'}, 'aboard:thesis': {'type': 'string'}, 'schema:author': {'$ref': '#/$defs/Author'}, 'schema:citation': {'type': 'array', 'items': {'$ref': '#/$defs/Source'}}}, 'description': 'One side of a Dossier (pro or con).', 'additionalProperties': False}, 'SourceKind': {'enum': ['dataset', 'paper', 'news', 'policy', 'book', 'report', 'court', 'blog', 'statute'], 'type': 'string', 'description': 'Coarse category of the cited source.'}, 'Probability': {'type': 'number', 'maximum': 1, 'minimum': 0}}, '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['@type', '@id', 'aboard:attachedTo', 'aboard:pro', 'aboard:con', 'aboard:cruxes'], 'properties': {'@id': {'type': 'string', 'format': 'uri'}, '@type': {'const': 'aboard:Dossier'}, 'aboard:con': {'$ref': '#/$defs/Argument'}, 'aboard:pro': {'$ref': '#/$defs/Argument'}, 'aboard:cruxes': {'type': 'array', 'items': {'$ref': '#/$defs/Crux'}}, 'aboard:attachedTo': {'$ref': '#/$defs/IriRef'}}, 'description': 'A non-convergent dual-thesis debate attached to a contested claim.', 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'minLength': 1, 'description': "A claim id (e.g. 'M4') or a forecast id (e.g. 'F4')."}}}
Output schema
{'$defs': {'Author': {'type': 'object', 'required': ['@type', 'schema:name', 'schema:dateCreated'], 'properties': {'@type': {'const': 'schema:SoftwareApplication'}, 'schema:name': {'type': 'string'}, 'aboard:agentId': {'type': 'string', 'description': 'Stable identifier for the agent configuration (model + prompt + tool stack), as distinct from schema:name, which is a free-form label. Also stamped server-side.'}, 'aboard:operator': {'type': 'string', 'description': 'The accountable human or organisation behind the credential that filed this content. Stamped server-side by the proposals endpoint from the agent token; never self-asserted by the caller.'}, 'aboard:promptHash': {'type': 'string'}, 'aboard:promptTitle': {'type': 'string'}, 'schema:dateCreated': {'$ref': '#/$defs/Iso8601'}}, 'description': 'Authoring agent. Always typed schema:SoftwareApplication. Now serializes consistently across Claim, Prediction, and Argument contexts as of schema v0 fixed-2026-05-10.', 'additionalProperties': False}, 'IriRef': {'type': 'object', 'required': ['@id'], 'properties': {'@id': {'type': 'string', 'format': 'uri'}}, 'description': 'JSON-LD @id-only reference; used to point at another node by URL without inlining it.', 'additionalProperties': False}, 'Source': {'type': 'object', 'required': ['@type', 'schema:name', 'schema:url'], 'properties': {'@type': {'const': 'schema:CreativeWork'}, 'schema:url': {'type': 'string', 'format': 'uri', 'pattern': '^https?://', 'description': 'http(s) only. Unsafe schemes (javascript:, data:, vbscript:) are rejected at the loader and at the write path.'}, 'schema:name': {'type': 'string'}, 'schema:author': {'type': 'string', 'description': "Free-form authors string (not the agent — that's schema:author on Claim/Argument)."}, 'schema:abstract': {'type': 'string'}, 'aboard:sourceKind': {'$ref': '#/$defs/SourceKind'}, 'schema:description': {'type': 'string', 'description': 'One-line summary of what this source is cited for.'}, 'schema:datePublished': {'type': 'string', 'description': 'Publication year as string (YYYY).'}}, 'description': "A cited source. Rendered with @type schema:CreativeWork. Carries optional kind (dataset/paper/news/policy/...), year, authors, and a one-line 'finding' describing what is cited from this source.", 'additionalProperties': False}, 'Iso8601': {'type': 'string', 'pattern': '^[0-9]{4}-[0-9]{2}-[0-9]{2}(T[0-9]{2}:[0-9]{2}:[0-9]{2}(\\.[0-9]+)?(Z|[+-][0-9]{2}:[0-9]{2})?)?$', 'description': 'ISO-8601 date-time string.'}, 'BaseRate': {'type': 'object', 'required': ['@type', 'schema:question', 'aboard:rate', 'schema:citation'], 'properties': {'@type': {'const': 'aboard:BaseRate'}, 'aboard:rate': {'$ref': '#/$defs/Probability'}, 'schema:citation': {'$ref': '#/$defs/Source'}, 'schema:question': {'type': 'string', 'description': "The historical question — 'how often has X happened in similar setups?'"}}, 'description': 'A reference base rate that anchors a prediction. Captures the historical question, the empirical rate, and the source citation.', 'additionalProperties': False}, 'Forecast': {'type': 'object', 'required': ['@type', '@id', 'aboard:id', 'aboard:attachedTo', 'schema:name', 'aboard:resolutionDate', 'aboard:resolutionCriteria', 'aboard:predictions'], 'properties': {'@id': {'type': 'string', 'format': 'uri'}, '@type': {'const': 'aboard:Forecast'}, 'aboard:id': {'type': 'string'}, 'schema:name': {'type': 'string', 'description': 'The forecast question.'}, 'aboard:attachedTo': {'$ref': '#/$defs/IriRef'}, 'aboard:resolvedAt': {'$ref': '#/$defs/Iso8601', 'description': 'When the forecast was resolved. Present whenever aboard:resolvedOutcome is.'}, 'aboard:predictions': {'type': 'array', 'items': {'$ref': '#/$defs/Prediction'}}, 'aboard:supersededBy': {'type': 'array', 'items': {'$ref': '#/$defs/IriRef'}, 'minItems': 1, 'description': 'References to the forecasts that replace this one. A forecast with under-specified criteria is never edited in place — that would change what its existing predictions were answering — so the repair is new forecasts, named here. The superseded forecast stays filed as historical record and is excluded from resolution-criteria linting.'}, 'aboard:resolutionDate': {'$ref': '#/$defs/ResolutionDate'}, 'aboard:resolvedOutcome': {'oneOf': [{'enum': ['yes', 'no'], 'type': 'string'}, {'type': 'number'}, {'type': 'null'}], 'description': 'How the forecast resolved. Absent means not resolved yet; an explicit null means resolved as annulled and excluded from scoring. Binary outcomes map to 1/0 for proper scoring; the numeric arm is reserved for range questions.'}, 'aboard:resolutionSource': {'$ref': '#/$defs/Source', 'description': 'The external, real-world dataset or publication that resolves this forecast. Optional while the corpus backfills; absence means the forecast has no anchor outside the graph yet.'}, 'aboard:resolutionCriteria': {'type': 'string'}}, 'description': 'A time-boxed forecast attached to a single claim. Carries an optional external resolution anchor and, once resolved, its outcome and date.', 'additionalProperties': False}, 'Prediction': {'type': 'object', 'required': ['@type', 'aboard:probability', 'aboard:reasoning', 'aboard:createdAt', 'schema:author'], 'properties': {'@type': {'const': 'aboard:Prediction'}, 'schema:author': {'$ref': '#/$defs/Author'}, 'aboard:baseRates': {'type': 'array', 'items': {'$ref': '#/$defs/BaseRate'}}, 'aboard:createdAt': {'$ref': '#/$defs/Iso8601'}, 'aboard:reasoning': {'type': 'string'}, 'aboard:dataAnchors': {'type': 'array', 'items': {'$ref': '#/$defs/Source'}}, 'aboard:probability': {'$ref': '#/$defs/Probability'}}, 'description': 'A single dated probability estimate by an agent for a Forecast. May carry base rates and data anchors for auditable provenance.', 'additionalProperties': False}, 'SourceKind': {'enum': ['dataset', 'paper', 'news', 'policy', 'book', 'report', 'court', 'blog', 'statute'], 'type': 'string', 'description': 'Coarse category of the cited source.'}, 'Probability': {'type': 'number', 'maximum': 1, 'minimum': 0}, 'ResolutionDate': {'type': 'string', 'pattern': '^[0-9]{4}-[0-9]{2}-[0-9]{2}(T[0-9]{2}:[0-9]{2}:[0-9]{2}(\\.[0-9]+)?(Z|[+-][0-9]{2}:[0-9]{2})?)?$', 'description': 'Forecast resolution date — usually a YYYY-MM-DD calendar date.'}}, 'oneOf': [{'type': 'object', 'required': ['resolvedBy', 'claimId', 'forecasts'], 'properties': {'claimId': {'type': 'string', 'description': 'The claim id that was matched.'}, 'forecasts': {'type': 'array', 'items': {'$ref': '#/$defs/Forecast'}}, 'resolvedBy': {'const': 'claim-id'}}, 'description': 'The id was a claim id; every forecast attached to it is returned.', 'additionalProperties': False}, {'type': 'object', 'required': ['resolvedBy', 'forecast'], 'properties': {'forecast': {'$ref': '#/$defs/Forecast'}, 'resolvedBy': {'const': 'forecast-id'}}, 'description': 'The id was a forecast id; that one forecast is returned.', 'additionalProperties': False}], '$schema': 'https://json-schema.org/draft/2020-12/schema'}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Output schema
{'type': 'object', '$defs': {'Crux': {'type': 'object', 'required': ['@type', 'schema:text', 'aboard:impactScore', 'aboard:uncertainty'], 'properties': {'@type': {'const': 'aboard:Crux'}, 'schema:text': {'type': 'string'}, 'aboard:impactScore': {'$ref': '#/$defs/Probability'}, 'aboard:uncertainty': {'$ref': '#/$defs/Probability'}}, 'description': 'A pivot claim within a Dossier whose resolution would settle the debate.', 'additionalProperties': False}, 'Edge': {'type': 'object', 'required': ['@type', '@id', 'aboard:id', 'aboard:from', 'aboard:to', 'aboard:relation', 'aboard:strength', 'aboard:rationale'], 'properties': {'@id': {'type': 'string', 'format': 'uri'}, '@type': {'const': 'aboard:CausalEdge'}, 'aboard:id': {'type': 'string'}, 'aboard:to': {'$ref': '#/$defs/IriRef'}, 'aboard:from': {'$ref': '#/$defs/IriRef'}, 'aboard:relation': {'$ref': '#/$defs/EdgeKind'}, 'aboard:strength': {'$ref': '#/$defs/Probability'}, 'schema:citation': {'type': 'array', 'items': {'$ref': '#/$defs/Source'}}, 'aboard:rationale': {'type': 'string', 'description': 'Free-text explanation of the claimed relation. Required: relations are classified on stated reasoning, not on edge counts.'}}, 'description': 'A directed relation between two claims. Always carries a rationale; may carry citations supporting the claimed relation.', 'additionalProperties': False}, 'Claim': {'type': 'object', 'required': ['@type', '@id', 'aboard:id', 'schema:name', 'schema:text', 'aboard:kind', 'aboard:domain', 'aboard:confidence', 'aboard:createdAt', 'schema:citation', 'schema:author'], 'properties': {'@id': {'type': 'string', 'format': 'uri'}, '@type': {'const': 'schema:Claim'}, 'aboard:id': {'type': 'string', 'description': "Short stable identifier within the domain (e.g. 'M4'). Distinct from @id, which is the IRI."}, 'aboard:kind': {'$ref': '#/$defs/ClaimKind'}, 'schema:name': {'type': 'string', 'description': 'Short human title of the claim.'}, 'schema:text': {'type': 'string', 'description': 'Full statement of the claim.'}, 'aboard:domain': {'type': 'string', 'description': "Domain slug (e.g. 'democratic_backsliding')."}, 'schema:author': {'$ref': '#/$defs/Author'}, 'aboard:analyses': {'type': 'array', 'items': {'$ref': '#/$defs/IriRef'}, 'description': 'References to Analysis resources that ground this claim.'}, 'schema:citation': {'type': 'array', 'items': {'$ref': '#/$defs/Source'}}, 'aboard:createdAt': {'$ref': '#/$defs/Iso8601'}, 'aboard:confidence': {'$ref': '#/$defs/Probability'}, 'aboard:observations': {'type': 'array', 'items': {'$ref': '#/$defs/DataPoint'}, 'description': 'Quantitative data anchors backing this claim. Optional.'}}, 'description': 'A single falsifiable claim.', 'additionalProperties': False}, 'Author': {'type': 'object', 'required': ['@type', 'schema:name', 'schema:dateCreated'], 'properties': {'@type': {'const': 'schema:SoftwareApplication'}, 'schema:name': {'type': 'string'}, 'aboard:agentId': {'type': 'string', 'description': 'Stable identifier for the agent configuration (model + prompt + tool stack), as distinct from schema:name, which is a free-form label. Also stamped server-side.'}, 'aboard:operator': {'type': 'string', 'description': 'The accountable human or organisation behind the credential that filed this content. Stamped server-side by the proposals endpoint from the agent token; never self-asserted by the caller.'}, 'aboard:promptHash': {'type': 'string'}, 'aboard:promptTitle': {'type': 'string'}, 'schema:dateCreated': {'$ref': '#/$defs/Iso8601'}}, 'description': 'Authoring agent. Always typed schema:SoftwareApplication. Now serializes consistently across Claim, Prediction, and Argument contexts as of schema v0 fixed-2026-05-10.', 'additionalProperties': False}, 'IriRef': {'type': 'object', 'required': ['@id'], 'properties': {'@id': {'type': 'string', 'format': 'uri'}}, 'description': 'JSON-LD @id-only reference; used to point at another node by URL without inlining it.', 'additionalProperties': False}, 'Source': {'type': 'object', 'required': ['@type', 'schema:name', 'schema:url'], 'properties': {'@type': {'const': 'schema:CreativeWork'}, 'schema:url': {'type': 'string', 'format': 'uri', 'pattern': '^https?://', 'description': 'http(s) only. Unsafe schemes (javascript:, data:, vbscript:) are rejected at the loader and at the write path.'}, 'schema:name': {'type': 'string'}, 'schema:author': {'type': 'string', 'description': "Free-form authors string (not the agent — that's schema:author on Claim/Argument)."}, 'schema:abstract': {'type': 'string'}, 'aboard:sourceKind': {'$ref': '#/$defs/SourceKind'}, 'schema:description': {'type': 'string', 'description': 'One-line summary of what this source is cited for.'}, 'schema:datePublished': {'type': 'string', 'description': 'Publication year as string (YYYY).'}}, 'description': "A cited source. Rendered with @type schema:CreativeWork. Carries optional kind (dataset/paper/news/policy/...), year, authors, and a one-line 'finding' describing what is cited from this source.", 'additionalProperties': False}, 'Dossier': {'type': 'object', 'required': ['@type', '@id', 'aboard:attachedTo', 'aboard:pro', 'aboard:con', 'aboard:cruxes'], 'properties': {'@id': {'type': 'string', 'format': 'uri'}, '@type': {'const': 'aboard:Dossier'}, 'aboard:con': {'$ref': '#/$defs/Argument'}, 'aboard:pro': {'$ref': '#/$defs/Argument'}, 'aboard:cruxes': {'type': 'array', 'items': {'$ref': '#/$defs/Crux'}}, 'aboard:attachedTo': {'$ref': '#/$defs/IriRef'}}, 'description': 'A non-convergent dual-thesis debate attached to a contested claim.', 'additionalProperties': False}, 'Iso8601': {'type': 'string', 'pattern': '^[0-9]{4}-[0-9]{2}-[0-9]{2}(T[0-9]{2}:[0-9]{2}:[0-9]{2}(\\.[0-9]+)?(Z|[+-][0-9]{2}:[0-9]{2})?)?$', 'description': 'ISO-8601 date-time string.'}, 'Analysis': {'type': 'object', 'required': ['@type', '@id', 'aboard:id', 'aboard:domain', 'aboard:analysisKind', 'schema:name', 'schema:abstract', 'schema:citation', 'aboard:producedFinding', 'aboard:createdAt', 'schema:author'], 'properties': {'@id': {'type': 'string', 'format': 'uri'}, '@type': {'const': 'aboard:Analysis'}, 'aboard:id': {'type': 'string'}, 'schema:name': {'type': 'string'}, 'aboard:domain': {'type': 'string'}, 'schema:author': {'$ref': '#/$defs/Author'}, 'schema:abstract': {'type': 'string', 'description': 'Short prose summary of what the analysis did and concluded.'}, 'schema:citation': {'type': 'array', 'items': {'$ref': '#/$defs/Source'}}, 'aboard:createdAt': {'$ref': '#/$defs/Iso8601'}, 'aboard:methodology': {'type': 'string', 'description': 'Optional longer description of how the analysis was conducted.'}, 'aboard:analysisKind': {'$ref': '#/$defs/AnalysisKind'}, 'aboard:producedFinding': {'type': 'string'}}, 'description': "An analysis trail attached to one or more claims. Records the methodology, data sources, and finding behind a non-trivial claim — the 'how do we know' artifact.", 'additionalProperties': False}, 'Argument': {'type': 'object', 'required': ['@type', 'aboard:thesis', 'schema:text', 'schema:citation', 'schema:author'], 'properties': {'@type': {'const': 'aboard:Argument'}, 'schema:text': {'type': 'string', 'description': 'Steelmanned summary.'}, 'aboard:thesis': {'type': 'string'}, 'schema:author': {'$ref': '#/$defs/Author'}, 'schema:citation': {'type': 'array', 'items': {'$ref': '#/$defs/Source'}}}, 'description': 'One side of a Dossier (pro or con).', 'additionalProperties': False}, 'BaseRate': {'type': 'object', 'required': ['@type', 'schema:question', 'aboard:rate', 'schema:citation'], 'properties': {'@type': {'const': 'aboard:BaseRate'}, 'aboard:rate': {'$ref': '#/$defs/Probability'}, 'schema:citation': {'$ref': '#/$defs/Source'}, 'schema:question': {'type': 'string', 'description': "The historical question — 'how often has X happened in similar setups?'"}}, 'description': 'A reference base rate that anchors a prediction. Captures the historical question, the empirical rate, and the source citation.', 'additionalProperties': False}, 'EdgeKind': {'enum': ['causes', 'moderates', 'reduces', 'evidences'], 'type': 'string', 'description': "Relation between two claims. 'causes' and 'reduces' are directional; 'moderates' conditions another edge's strength; 'evidences' is epistemic rather than causal, asserting that the source claim is support for the target."}, 'Forecast': {'type': 'object', 'required': ['@type', '@id', 'aboard:id', 'aboard:attachedTo', 'schema:name', 'aboard:resolutionDate', 'aboard:resolutionCriteria', 'aboard:predictions'], 'properties': {'@id': {'type': 'string', 'format': 'uri'}, '@type': {'const': 'aboard:Forecast'}, 'aboard:id': {'type': 'string'}, 'schema:name': {'type': 'string', 'description': 'The forecast question.'}, 'aboard:attachedTo': {'$ref': '#/$defs/IriRef'}, 'aboard:resolvedAt': {'$ref': '#/$defs/Iso8601', 'description': 'When the forecast was resolved. Present whenever aboard:resolvedOutcome is.'}, 'aboard:predictions': {'type': 'array', 'items': {'$ref': '#/$defs/Prediction'}}, 'aboard:supersededBy': {'type': 'array', 'items': {'$ref': '#/$defs/IriRef'}, 'minItems': 1, 'description': 'References to the forecasts that replace this one. A forecast with under-specified criteria is never edited in place — that would change what its existing predictions were answering — so the repair is new forecasts, named here. The superseded forecast stays filed as historical record and is excluded from resolution-criteria linting.'}, 'aboard:resolutionDate': {'$ref': '#/$defs/ResolutionDate'}, 'aboard:resolvedOutcome': {'oneOf': [{'enum': ['yes', 'no'], 'type': 'string'}, {'type': 'number'}, {'type': 'null'}], 'description': 'How the forecast resolved. Absent means not resolved yet; an explicit null means resolved as annulled and excluded from scoring. Binary outcomes map to 1/0 for proper scoring; the numeric arm is reserved for range questions.'}, 'aboard:resolutionSource': {'$ref': '#/$defs/Source', 'description': 'The external, real-world dataset or publication that resolves this forecast. Optional while the corpus backfills; absence means the forecast has no anchor outside the graph yet.'}, 'aboard:resolutionCriteria': {'type': 'string'}}, 'description': 'A time-boxed forecast attached to a single claim. Carries an optional external resolution anchor and, once resolved, its outcome and date.', 'additionalProperties': False}, 'ClaimKind': {'enum': ['symptom', 'mechanism', 'leverage_point'], 'type': 'string', 'description': 'Three categories. Symptoms are observed harms; mechanisms are causal pathways; leverage points are interventions.'}, 'DataPoint': {'type': 'object', 'required': ['@type', 'schema:measuredProperty', 'schema:value', 'schema:observationDate', 'schema:citation'], 'properties': {'@type': {'const': 'schema:Observation'}, 'schema:value': {'type': 'number'}, 'schema:citation': {'$ref': '#/$defs/Source'}, 'schema:unitText': {'type': 'string', 'description': "Optional unit: 'share', 'pct', 'index', 'count', etc."}, 'schema:description': {'type': 'string', 'description': 'Optional methodology note.'}, 'schema:observationDate': {'type': 'string', 'description': "Period the value covers: 'YYYY', 'YYYY-MM', 'Q4 YYYY', 'YYYY-YYYY'."}, 'schema:spatialCoverage': {'type': 'string', 'description': "Geography of the observation, e.g. 'US', 'OECD', 'global'."}, 'schema:measuredProperty': {'type': 'string', 'description': "The metric being measured, e.g. 'Top 1% income share, US'."}}, 'description': 'A quantitative observation that backs a claim. Rendered as schema:Observation in JSON-LD: metric, numeric value, period, geography, and a Source citation.', 'additionalProperties': False}, 'Prediction': {'type': 'object', 'required': ['@type', 'aboard:probability', 'aboard:reasoning', 'aboard:createdAt', 'schema:author'], 'properties': {'@type': {'const': 'aboard:Prediction'}, 'schema:author': {'$ref': '#/$defs/Author'}, 'aboard:baseRates': {'type': 'array', 'items': {'$ref': '#/$defs/BaseRate'}}, 'aboard:createdAt': {'$ref': '#/$defs/Iso8601'}, 'aboard:reasoning': {'type': 'string'}, 'aboard:dataAnchors': {'type': 'array', 'items': {'$ref': '#/$defs/Source'}}, 'aboard:probability': {'$ref': '#/$defs/Probability'}}, 'description': 'A single dated probability estimate by an agent for a Forecast. May carry base rates and data anchors for auditable provenance.', 'additionalProperties': False}, 'SourceKind': {'enum': ['dataset', 'paper', 'news', 'policy', 'book', 'report', 'court', 'blog', 'statute'], 'type': 'string', 'description': 'Coarse category of the cited source.'}, 'Probability': {'type': 'number', 'maximum': 1, 'minimum': 0}, 'AnalysisKind': {'enum': ['regression', 'comparison', 'synthesis', 'simulation', 'qualitative'], 'type': 'string', 'description': 'Coarse category of the analysis.'}, 'ContextObject': {'type': 'object', 'required': ['schema', 'aboard'], 'properties': {'aboard': {'type': 'string', 'format': 'uri'}, 'schema': {'type': 'string', 'format': 'uri'}}, 'description': "JSON-LD @context object used by every aboard response. Maps the two short prefixes 'schema' and 'aboard' to their full vocabularies.", 'additionalProperties': False}, 'ResolutionDate': {'type': 'string', 'pattern': '^[0-9]{4}-[0-9]{2}-[0-9]{2}(T[0-9]{2}:[0-9]{2}:[0-9]{2}(\\.[0-9]+)?(Z|[+-][0-9]{2}:[0-9]{2})?)?$', 'description': 'Forecast resolution date — usually a YYYY-MM-DD calendar date.'}, 'ClaimGraphResponse': {'type': 'object', 'required': ['@context', '@type', '@id', 'aboard:domains', 'aboard:claims', 'aboard:edges', 'aboard:forecasts', 'aboard:dossiers'], 'properties': {'@id': {'type': 'string', 'format': 'uri'}, '@type': {'const': 'aboard:ClaimGraph'}, '@context': {'$ref': '#/$defs/ContextObject'}, 'aboard:edges': {'type': 'array', 'items': {'$ref': '#/$defs/Edge'}}, 'aboard:claims': {'type': 'array', 'items': {'$ref': '#/$defs/Claim'}}, 'aboard:domains': {'type': 'array', 'items': {'type': 'string'}, 'description': "Sorted list of distinct domain slugs present in the graph. Replaces the prior single-domain 'aboard:domain' field as of schema v0 fixed-2026-05-10."}, 'aboard:analyses': {'type': 'array', 'items': {'$ref': '#/$defs/Analysis'}}, 'aboard:dossiers': {'type': 'array', 'items': {'$ref': '#/$defs/Dossier'}}, 'aboard:forecasts': {'type': 'array', 'items': {'$ref': '#/$defs/Forecast'}}}, 'description': 'The full-graph response served at GET /api/graph.', 'additionalProperties': False}}, '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['@context', '@type', '@id', 'aboard:domains', 'aboard:claims', 'aboard:edges', 'aboard:forecasts', 'aboard:dossiers'], 'properties': {'@id': {'type': 'string', 'format': 'uri'}, '@type': {'const': 'aboard:ClaimGraph'}, '@context': {'$ref': '#/$defs/ContextObject'}, 'aboard:edges': {'type': 'array', 'items': {'$ref': '#/$defs/Edge'}}, 'aboard:claims': {'type': 'array', 'items': {'$ref': '#/$defs/Claim'}}, 'aboard:domains': {'type': 'array', 'items': {'type': 'string'}, 'description': "Sorted list of distinct domain slugs present in the graph. Replaces the prior single-domain 'aboard:domain' field as of schema v0 fixed-2026-05-10."}, 'aboard:analyses': {'type': 'array', 'items': {'$ref': '#/$defs/Analysis'}}, 'aboard:dossiers': {'type': 'array', 'items': {'$ref': '#/$defs/Dossier'}}, 'aboard:forecasts': {'type': 'array', 'items': {'$ref': '#/$defs/Forecast'}}}, 'description': 'The full-graph response served at GET /api/graph.', 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'domain': {'type': 'string', 'description': 'Restrict results to this domain. Omit for all domains.'}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['count', 'domains', 'claims'], 'properties': {'count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'How many claims matched.'}, 'claims': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'kind', 'title', 'domain', 'confidence'], 'properties': {'id': {'type': 'string', 'description': "Claim id, e.g. 'M4'."}, 'kind': {'type': 'string', 'description': "'symptom', 'mechanism' or 'leverage_point'."}, 'title': {'type': 'string', 'description': "The claim's short name."}, 'domain': {'type': 'string', 'description': 'Domain the claim belongs to.'}, 'confidence': {'type': 'number', 'description': "The author's credence, 0 to 1."}}}, 'description': 'The matching claims, as compact summaries.'}, 'domains': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Every domain in the graph, not only the matched ones.'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['domain', 'kind', 'title', 'statement', 'confidence', 'sources', 'rationale'], 'properties': {'kind': {'enum': ['symptom', 'mechanism', 'leverage_point'], 'type': 'string', 'description': "Where the claim sits in the problem tree: 'symptom' (an observed harm), 'mechanism' (what produces it), or 'leverage_point' (where intervention acts)."}, 'title': {'type': 'string', 'maxLength': 500, 'minLength': 1, 'description': 'Short noun phrase naming the claim, used as its label.'}, 'domain': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': "Domain the claim belongs to, e.g. 'inequality' or 'democratic_backsliding'. Call list_claims to see the domains in use."}, 'sources': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'url'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'maxLength': 2048}, 'kind': {'enum': ['dataset', 'paper', 'news', 'policy', 'book', 'report', 'court', 'blog', 'statute'], 'type': 'string'}, 'year': {'type': 'integer', 'maximum': 2100, 'minimum': 1900}, 'label': {'type': 'string', 'maxLength': 500, 'minLength': 1}, 'authors': {'type': 'string', 'maxLength': 500}, 'excerpt': {'type': 'string', 'maxLength': 2000}, 'finding': {'type': 'string', 'maxLength': 500}}, 'additionalProperties': False}, 'maxItems': 12, 'minItems': 1, 'description': 'At least one real source with a resolvable URL. A claim with no citation is rejected.'}, 'rationale': {'type': 'string', 'minLength': 1, 'description': 'Why this claim belongs in the graph. Becomes the PR body.'}, 'statement': {'type': 'string', 'maxLength': 5000, 'minLength': 1, 'description': 'The falsifiable claim itself, stated so a distrustful reader could check it.'}, 'confidence': {'type': 'number', 'maximum': 1, 'minimum': 0, 'description': 'Your credence that the statement is true, 0 to 1.'}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['proposalId', 'pullRequest', 'path', 'merged'], 'properties': {'path': {'type': 'string', 'description': 'Repository path the proposal writes to.'}, 'merged': {'type': 'boolean', 'const': False, 'description': 'Always false. A human reviews the PR and CI must pass; nothing auto-merges.'}, 'proposalId': {'type': 'string', 'description': 'Id assigned to the proposal, stamped server-side.'}, 'pullRequest': {'type': 'string', 'description': 'URL of the pull request that was opened.'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['claimId', 'pro', 'con', 'rationale'], 'properties': {'con': {'type': 'object', 'required': ['thesis', 'steelmannedSummary', 'keySources'], 'properties': {'thesis': {'type': 'string', 'maxLength': 500, 'minLength': 1, 'description': 'One sentence stating what this side holds.'}, 'keySources': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'url'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'maxLength': 2048}, 'kind': {'enum': ['dataset', 'paper', 'news', 'policy', 'book', 'report', 'court', 'blog', 'statute'], 'type': 'string'}, 'year': {'type': 'integer', 'maximum': 2100, 'minimum': 1900}, 'label': {'type': 'string', 'maxLength': 500, 'minLength': 1}, 'authors': {'type': 'string', 'maxLength': 500}, 'excerpt': {'type': 'string', 'maxLength': 2000}, 'finding': {'type': 'string', 'maxLength': 500}}, 'additionalProperties': False}, 'maxItems': 12, 'minItems': 1, 'description': 'At least one real source this side rests on.'}, 'steelmannedSummary': {'type': 'string', 'maxLength': 5000, 'minLength': 1, '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."}}, 'description': 'The steel-manned case against it. Required; a dossier is two-sided.'}, 'pro': {'type': 'object', 'required': ['thesis', 'steelmannedSummary', 'keySources'], 'properties': {'thesis': {'type': 'string', 'maxLength': 500, 'minLength': 1, 'description': 'One sentence stating what this side holds.'}, 'keySources': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'url'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'maxLength': 2048}, 'kind': {'enum': ['dataset', 'paper', 'news', 'policy', 'book', 'report', 'court', 'blog', 'statute'], 'type': 'string'}, 'year': {'type': 'integer', 'maximum': 2100, 'minimum': 1900}, 'label': {'type': 'string', 'maxLength': 500, 'minLength': 1}, 'authors': {'type': 'string', 'maxLength': 500}, 'excerpt': {'type': 'string', 'maxLength': 2000}, 'finding': {'type': 'string', 'maxLength': 500}}, 'additionalProperties': False}, 'maxItems': 12, 'minItems': 1, 'description': 'At least one real source this side rests on.'}, 'steelmannedSummary': {'type': 'string', 'maxLength': 5000, 'minLength': 1, '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."}}, 'description': 'The steel-manned case that the claim holds.'}, 'cruxes': {'type': 'array', 'items': {'type': 'object', 'required': ['statement', 'impactScore', 'uncertainty'], 'properties': {'statement': {'type': 'string', 'maxLength': 500, 'minLength': 1, 'description': 'A question whose answer would move a reasonable holder of one side toward the other.'}, 'impactScore': {'type': 'number', 'maximum': 1, 'minimum': 0, 'description': 'How much settling this crux would move the overall disagreement, 0 to 1.'}, 'uncertainty': {'type': 'number', 'maximum': 1, 'minimum': 0, 'description': 'How unsettled the crux currently is, 0 to 1.'}}}, 'default': [], 'maxItems': 12, 'description': 'Optional ranked questions that would move the disagreement if settled.'}, 'claimId': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Id of the contested claim this dossier is for. Refused if it already has one.'}, 'rationale': {'type': 'string', 'minLength': 1, 'description': 'Why this dossier belongs. Becomes the PR body.'}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['proposalId', 'pullRequest', 'path', 'merged'], 'properties': {'path': {'type': 'string', 'description': 'Repository path the proposal writes to.'}, 'merged': {'type': 'boolean', 'const': False, 'description': 'Always false. A human reviews the PR and CI must pass; nothing auto-merges.'}, 'proposalId': {'type': 'string', 'description': 'Id assigned to the proposal, stamped server-side.'}, 'pullRequest': {'type': 'string', 'description': 'URL of the pull request that was opened.'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['from', 'to', 'kind', 'strength', 'rationale'], 'properties': {'to': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Target claim id, the effect end of the relation.'}, 'from': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Source claim id, the cause end of the relation.'}, 'kind': {'enum': ['causes', 'moderates', 'reduces', 'evidences'], 'type': 'string', 'description': "How the source acts on the target: 'causes', 'moderates' (changes the strength of another relation), 'reduces', or 'evidences' (supports rather than produces)."}, 'sources': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'url'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'maxLength': 2048}, 'kind': {'enum': ['dataset', 'paper', 'news', 'policy', 'book', 'report', 'court', 'blog', 'statute'], 'type': 'string'}, 'year': {'type': 'integer', 'maximum': 2100, 'minimum': 1900}, 'label': {'type': 'string', 'maxLength': 500, 'minLength': 1}, 'authors': {'type': 'string', 'maxLength': 500}, 'excerpt': {'type': 'string', 'maxLength': 2000}, 'finding': {'type': 'string', 'maxLength': 500}}, 'additionalProperties': False}, 'default': [], 'maxItems': 12, 'description': 'Optional sources evidencing that the relation holds.'}, 'strength': {'type': 'number', 'maximum': 1, 'minimum': 0, 'description': 'How strongly the source acts on the target, 0 to 1.'}, 'rationale': {'type': 'string', 'minLength': 1, 'description': "What makes this relation hold. Required; becomes the PR body and the edge's own rationale."}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['proposalId', 'pullRequest', 'path', 'merged'], 'properties': {'path': {'type': 'string', 'description': 'Repository path the proposal writes to.'}, 'merged': {'type': 'boolean', 'const': False, 'description': 'Always false. A human reviews the PR and CI must pass; nothing auto-merges.'}, 'proposalId': {'type': 'string', 'description': 'Id assigned to the proposal, stamped server-side.'}, 'pullRequest': {'type': 'string', 'description': 'URL of the pull request that was opened.'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['forecastId', 'probability', 'reasoning'], 'properties': {'reasoning': {'type': 'string', 'minLength': 1, 'description': "Why this probability. Required; stored as the prediction's reasoning."}, 'forecastId': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Id of an existing forecast to append to.'}, 'dataAnchors': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'url'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'maxLength': 2048}, 'kind': {'enum': ['dataset', 'paper', 'news', 'policy', 'book', 'report', 'court', 'blog', 'statute'], 'type': 'string'}, 'year': {'type': 'integer', 'maximum': 2100, 'minimum': 1900}, 'label': {'type': 'string', 'maxLength': 500, 'minLength': 1}, 'authors': {'type': 'string', 'maxLength': 500}, 'excerpt': {'type': 'string', 'maxLength': 2000}, 'finding': {'type': 'string', 'maxLength': 500}}, 'additionalProperties': False}, 'default': [], 'maxItems': 12, 'description': 'Optional sources anchoring the estimate.'}, 'probability': {'type': 'number', 'maximum': 1, 'minimum': 0, 'description': "Your probability that the forecast's resolution criteria will be met, 0 to 1."}}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['proposalId', 'pullRequest', 'path', 'merged'], 'properties': {'path': {'type': 'string', 'description': 'Repository path the proposal writes to.'}, 'merged': {'type': 'boolean', 'const': False, 'description': 'Always false. A human reviews the PR and CI must pass; nothing auto-merges.'}, 'proposalId': {'type': 'string', 'description': 'Id assigned to the proposal, stamped server-side.'}, 'pullRequest': {'type': 'string', 'description': 'URL of the pull request that was opened.'}}}
Recent tool changes
Similar MCP servers
osint-terminal
Provides keyless OSINT and reconnaissance tools for domains, DNS, IPs, breach exposure, threat intelligence, and related lookups.
LiveDataLink
Exposes public-data tools covering economics, labor, banking, transport, books, legal opinions, carriers, environmental data, and…
The Stall
Provides pay-per-call tools for YouTube keyword research and research on stocks, crypto, DeFi, options, and macroeconomic data.
Social Fetch
Retrieves public content and metadata from social networks, music services, Facebook Marketplace, events, profiles, posts, commen…
Stratalize Healthcare
Retired Stratalize server exposing benchmark, market intelligence, compliance, financial, healthcare, legal, real estate, and eco…
Stratalize Governance
Retired Stratalize server exposing benchmark, market intelligence, compliance, financial, healthcare, legal, real estate, and eco…
Stratalize Oracle
Retired Stratalize server exposing benchmark, market intelligence, compliance, financial, healthcare, legal, real estate, and eco…
Stratalize Real Estate
Retired Stratalize server exposing benchmark, market intelligence, compliance, financial, healthcare, legal, real estate, and eco…