Source-traced evidence research for AI agents. We organise the evidence; you decide.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Tru8 API key (tru8_sk_...). Create at dashboard > Settings > Developer.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Evidence research for a factual claim or article URL. Submit a claim as text or paste an article URL. URLs are auto-detected and trigger article mode: the pipeline extracts claims from the page and auto-selects up to 5 for evidence research. Tiers (in fallback order): - lookup (~£0.02, instant) — cached prior analysis - consensus (~£0.03, instant) — cross-user aggregate landscape (k≥3 checks) - quick (~£0.07, ~15s) — web search + heuristic classification - full (~£0.15, ~60-90s) — web + specialist APIs, LLM classification, coverage recovery Charges based on tier actually executed, not tier requested. Identical calls within ten minutes return the same check, so a transport retry never runs — or charges — twice. Set max_tier to control maximum spend per call. Output structure: - claims[].claimMap.elements[] — verifiable sub-claims with state (supported/disputed/unresolved) - claims[].claimMap.elements[].evidenceRefs[] — evidence mapped to elements with relationship (supports/challenges/context) and reasoning - claims[].evidence[] — sources classified by tier (primary/reporting/ commentary) and type (data/official/news/analysis/opinion/academic) - claims[].claimMap.orientation — mechanical summary from element states - _meta — execution metadata: executedTier, chargedPence, limitations A run that has not finished after several minutes returns {checkId, status, chargedPence, message} instead of the result: fetch it later with tru8_get_result (free). A run that FAILS raises an error and is not charged. Per-argument guidance lives on the parameters themselves (see the Annotated/Field declarations above), which is where a client can actually read it — a docstring "Args:" block never reaches the tool's inputSchema.
A factual claim ("The Earth's average temperature rose 1.1°C since 1880") or an article URL (https://example.com/article). URLs are auto-detected and the pipeline extracts claims from the page content.
If true, strip the full evidence arrays and computed analytics from the response, leaving claims and claim maps. Smaller payload for agents that only need orientation.
Maximum tier to attempt — "lookup", "consensus", "quick" or "full" (default). A CEILING, not a floor: cached and consensus hits still return instantly at their own lower price, so the default costs ~£0.15 only for claims never researched before. Set "quick" to cap spend at ~£0.07, accepting web-search-only sourcing and heuristic classification (see _meta.limitations).
Skip cache hits older than this many hours. Stale lookup hits are discarded and the pipeline re-runs at the next tier up to max_tier. 0 means never serve a cached result.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Evidence research for a factual claim or article URL. Submit a claim as text or paste an article URL. URLs are auto-detected and trigger article mode: the pipeline extracts claims from the page and auto-selects up to 5 for evidence research. Tiers (in fallback order): - lookup (~£0.02, instant) — cached prior analysis - consensus (~£0.03, instant) — cross-user aggregate landscape (k≥3 checks) - quick (~£0.07, ~15s) — web search + heuristic classification - full (~£0.15, ~60-90s) — web + specialist APIs, LLM classification, coverage recovery Charges based on tier actually executed, not tier requested. Identical calls within ten minutes return the same check, so a transport retry never runs — or charges — twice. Set max_tier to control maximum spend per call. Output structure: - claims[].claimMap.elements[] — verifiable sub-claims with state (supported/disputed/unresolved) - claims[].claimMap.elements[].evidenceRefs[] — evidence mapped to elements with relationship (supports/challenges/context) and reasoning - claims[].evidence[] — sources classified by tier (primary/reporting/ commentary) and type (data/official/news/analysis/opinion/academic) - claims[].claimMap.orientation — mechanical summary from element states - _meta — execution metadata: executedTier, chargedPence, limitations A run that has not finished after several minutes returns {checkId, status, chargedPence, message} instead of the result: fetch it later with tru8_get_result (free). A run that FAILS raises an error and is not charged. Per-argument guidance lives on the parameters themselves (see the Annotated/Field declarations above), which is where a client can actually read it — a docstring "Args:" block never reaches the tool's inputSchema.
| Argument | Type | Description |
|---|---|---|
| claim* | string | A factual claim ("The Earth's average temperature rose 1.1°C since 1880") or an article URL (https://example.com/article). URLs are auto-detected and the pipeline extracts claims from the page content. |
| compact | boolean | If true, strip the full evidence arrays and computed analytics from the response, leaving claims and claim maps. Smaller payload for agents that only need orientation. |
| max_tier | string | Maximum tier to attempt — "lookup", "consensus", "quick" or "full" (default). A CEILING, not a floor: cached and consensus hits still return instantly at their own lower price, so the default costs ~£0.15 only for claims never researched before. Set "quick" to cap spend at ~£0.07, accepting web-search-only sourcing and heuristic classification (see _meta.limitations). |
| max_age_hours | any | Skip cache hits older than this many hours. Stale lookup hits are discarded and the pipeline re-runs at the next tier up to max_tier. 0 means never serve a cached result. |
{
"type": "object",
"title": "tru8_checkArguments",
"required": [
"claim"
],
"properties": {
"claim": {
"type": "string",
"title": "Claim",
"description": "A factual claim (\"The Earth's average temperature rose 1.1°C since 1880\") or an article URL (https://example.com/article). URLs are auto-detected and the pipeline extracts claims from the page content."
},
"compact": {
"type": "boolean",
"title": "Compact",
"default": false,
"description": "If true, strip the full evidence arrays and computed analytics from the response, leaving claims and claim maps. Smaller payload for agents that only need orientation."
},
"max_tier": {
"type": "string",
"title": "Max Tier",
"default": "full",
"description": "Maximum tier to attempt — \"lookup\", \"consensus\", \"quick\" or \"full\" (default). A CEILING, not a floor: cached and consensus hits still return instantly at their own lower price, so the default costs ~£0.15 only for claims never researched before. Set \"quick\" to cap spend at ~£0.07, accepting web-search-only sourcing and heuristic classification (see _meta.limitations)."
},
"max_age_hours": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Max Age Hours",
"default": null,
"description": "Skip cache hits older than this many hours. Stale lookup hits are discarded and the pipeline re-runs at the next tier up to max_tier. 0 means never serve a cached result."
}
}
}Retrieve a previously submitted check with pre-computed analytics. Returns the full result including a _computed block with tier/type distributions, corroboration groups, diagnostic values, timeline analysis, element state summaries, and per-claim dispositions. Use this over tru8_get_result_raw when you want structured analytics ready for summarisation or comparison without post-processing.
| Argument | Type | Description |
|---|---|---|
| check_id* | string | The check UUID returned by tru8_check. Retrieval is free and limited to your own checks; a check still running returns its status rather than a result, so this is also the poll call. |
{
"type": "object",
"title": "tru8_get_resultArguments",
"required": [
"check_id"
],
"properties": {
"check_id": {
"type": "string",
"title": "Check Id",
"description": "The check UUID returned by tru8_check. Retrieval is free and limited to your own checks; a check still running returns its status rather than a result, so this is also the poll call."
}
}
}Retrieve a previously submitted check without computed analytics. Returns claims, elements, evidence, and claim maps only. No _computed block. Smaller response payload. Use this when you will compute your own aggregations or only need specific fields from the raw data.
| Argument | Type | Description |
|---|---|---|
| check_id* | string | The check UUID returned by tru8_check. Same retrieval as tru8_get_result, without the computed analytics block. |
{
"type": "object",
"title": "tru8_get_result_rawArguments",
"required": [
"check_id"
],
"properties": {
"check_id": {
"type": "string",
"title": "Check Id",
"description": "The check UUID returned by tru8_check. Same retrieval as tru8_get_result, without the computed analytics block."
}
}
}