About Tru8 Evidence Research
Tru8 is an evidence research platform for AI agents and people assessing claims. It gathers and classifies sources, maps them to claim elements, and presents the evidence landscape rather than a summary.
Key features
- 01Web and specialist-source evidence retrieval
- 02Evidence tier and type classification
- 03Claim decomposition and evidence mapping
- 04Six views of the evidence landscape
- 05Signed manifests for completed checks
Use cases
- 01Review evidence for a submitted claim
- 02Examine coverage across claim elements
- 03Check when evidence appeared
- 04Verify a check's signed manifest
MCP support
Tru8 provides an MCP server for AI agents. Its tools support evidence checks and retrieving results, including raw results and analytics.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://api.trueight.com/mcp/claude mcp add --transport http samyatessmith-tru8 https://api.trueight.com/mcp/{"mcpServers":{"samyatessmith-tru8":{"type":"http","url":"https://api.trueight.com/mcp/"}}}Open in Cursor{"servers":{"samyatessmith-tru8":{"type":"http","url":"https://api.trueight.com/mcp/"}}}Open in VS Code{"mcpServers":{"samyatessmith-tru8":{"type":"http","url":"https://api.trueight.com/mcp/"}}}{"mcpServers":{"samyatessmith-tru8":{"serverUrl":"https://api.trueight.com/mcp/"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
https://api.trueight.com/mcp/Auth requiredTools
3| Parameter | Type | Required | Description |
|---|---|---|---|
| claim | string | Yes | 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 | No | 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 | No | 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 | No | 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. |
Details
From the project READMETru8 — AI-Powered Evidence Research Platform
Tru8 organises evidence so you can decide what matters. Submit a claim or URL, and Tru8 retrieves evidence from the open web and specialist APIs, classifies it by tier (primary / reporting / commentary) and type (data / official / news / analysis / opinion / academic), decomposes claims into elements, maps evidence to those elements, and presents the full landscape — structured, not summarised.
Mission: "We organise; you decide."
Quick Start
Prerequisites
- Docker & Docker Compose
- Python 3.11+
- Node.js 20+
1. Start Infrastructure
docker-compose up -d # PostgreSQL 16, Redis 7, Qdrant
2. Backend
cd backend
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env # Edit with your API keys
alembic upgrade head
uvicorn app.main:app --reload # http://localhost:8000
3. Frontend
cd web
npm install
npm run dev # http://localhost:3000
Project Structure
tru8/
├── backend/ # FastAPI backend + evidence pipeline
│ ├── app/
│ │ ├── api/v1/ # REST endpoints (checks, agent, verify, payments)
│ │ ├── core/ # Config, auth, pricing, manifest signing
│ │ ├── models/ # SQLModel schemas (Check, Claim, Evidence, ClaimConsensus)
│ │ ├── pipeline/ # Two-phase evidence pipeline
│ │ ├── services/ # API adapters, search, payments, consensus
│ │ └── utils/ # Classifiers, deduplication, query planning
│ ├── alembic/ # Database migrations
│ ├── tru8_mcp/ # MCP server package for AI agents
│ └── tests/ # 990 unit + integration tests
├── web/ # Next.js 14 frontend
│ ├── app/ # Pages (dashboard, developers, public reports)
│ ├── components/ # Evidence views, claim map, marketing
│ └── lib/ # API client, tiers, diagnostics
├── shared/ # Shared TypeScript types
├── docker-compose.yml # PostgreSQL, Redis, Qdrant, MinIO (optional)
└── .claude/CLAUDE.md # Full engineering context
Pipeline
Two-phase pipeline with user claim selection gate (article mode):
Phase 1: Ingest → Extract claims → Classify article → Rank claims
[PAUSE — user selects claims]
Phase 2: Fact-check lookup → Decompose into elements → Retrieve evidence →
Score relevance → Classify tier/type → Map evidence to elements →
Derive orientation → Complete
Post: Coverage recovery (Stage 5.1), video recommendations, auto-archiving
Evidence flows through web search plus specialist source adapters:
| Category | Sources |
|---|---|
| Web search | Serper.dev, Brave Search, SerpAPI (fallback chain) |
| Fact-check | Google Fact-Check API |
| Government | GOV.UK, Hansard, GovInfo, Companies House, ONS |
| Legal | UK Legislation (legislation.gov.uk) |
| Economic | FRED, Marketaux, World Bank |
| Academic | Semantic Scholar, OpenAlex, PubMed |
| Climate | NOAA, WeatherAPI, Open-Meteo, GBIF |
| Archives | Wikipedia (+ reference mining), Library of Congress, Internet Archive |
| Health | WHO |
| Sports | Transfermarkt, Football-Data.org |
| Video | YouTube Data API |
Six Evidence Views
| View | Question it answers |
|---|---|
| Cartographer | What's the shape of this conversation? |
| Librarian | Is this the full set, clearly labelled? |
| Interpreter | Does this evidence answer this sub-question? |
| Projectionist | What's been said on camera? |
| Chronologist | When did the evidence appear? |
| Seeker | What don't we know yet? |
API & Agent Access
Tru8 exposes a developer API and MCP server for AI agents.
Agent Commerce Gateway
# Quick check (~15s, heuristic classification)
curl -X POST https://api.trueight.com/api/v1/agent/quick \
-H "X-API-Key: $TRU8_API_KEY" \
-d '{"claim": "UK inflation is 3.2%"}'
# Smart endpoint with tier fallback (lookup → consensus → quick → full)
curl -X POST https://api.trueight.com/api/v1/agent/check \
-H "X-API-Key: $TRU8_API_KEY" \
-d '{"claim": "UK inflation is 3.2%", "max_tier": "full"}'
| Tier | Cost | Time | What you get |
|---|---|---|---|
| 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, element decomposition |
Three payment rails: x402 (USDC/SIWE), Skyfire (JWT), prepaid credits.
MCP Server
{
"mcpServers": {
"tru8": {
"command": "python",
"args": ["-m", "tru8_mcp"],
"env": { "TRU8_API_KEY": "tru8_sk_..." }
}
}
}
Tools: tru8_check (evidence research with tier fallback), tru8_get_result (with analytics), tru8_get_result_raw.
Manifest Verification
Every completed check receives an HMAC-SHA256 signed manifest. Verify the signed fields haven't changed since signing:
curl https://api.trueight.com/verify/{check_id}
Testing
cd backend
pytest tests/ -v # Full suite (990 tests)
pytest tests/unit/pipeline/ -v # Pipeline unit tests
pytest tests/unit/agent/ -v # Agent/commerce tests
pytest tests/integration/ -v # Integration tests
Infrastructure
| Service | Port | Purpose |
|---|---|---|
| PostgreSQL 16 | 5433 | Primary database (SQLModel) |
| Redis 7 | 6379 | Cache + rate limiting |
| Qdrant | 6333 | Vector similarity search |
| MinIO (optional) | 9000 | Local S3 for file uploads |
Auth: Clerk (JWT + JWKS) for dashboard, API keys for developer access. Payments: Stripe (4 subscription tiers) + Agent per-use payments.
API Documentation
- Swagger UI: http://localhost:8000/api/docs
- ReDoc: http://localhost:8000/api/redoc
- Health: http://localhost:8000/api/v1/health/
Environment Variables
Copy backend/.env.example to backend/.env. Key groups:
| Group | Required | Variables |
|---|---|---|
| Database | Yes | DATABASE_URL |
| Redis | Yes | REDIS_URL |
| Auth | Yes | CLERK_SECRET_KEY, CLERK_JWT_ISSUER |
| LLM | Yes | GOOGLE_AI_API_KEY, OPENAI_API_KEY |
| Search | Yes (at least one) | SERPER_API_KEY, BRAVE_API_KEY, SERP_API_KEY |
| Payments | For subscriptions | STRIPE_SECRET_KEY, STRIPE_WEBHOOK_SECRET |
| Government APIs | Optional | FRED_API_KEY, NOAA_API_KEY, etc. |
| Manifest signing | Optional | MANIFEST_SIGNING_ENABLED, MANIFEST_SIGNING_KEY |
Feature flags (all default to sensible values): ENABLE_API_RETRIEVAL, ENABLE_LLM_RELEVANCE_SCORER, ENABLE_QUERY_PLANNING, etc. See backend/.env.example for the full list.
Licence
Private — All rights reserved.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.