fact-check
Extract factual claims from documents or explicit statements, search the live web for supporting evidence, and retrieve source URLs with a keyword-overlap score. Optionally generate a cited PDF verification report.
Instructions
Fact-check a document (or explicit claims) against the LIVE WEB. CROSS-MCP tool: doc-processor extracts the claims, then CALLS the web-search MCP (get-web-search-summaries) to gather sources per claim, and optionally writes a cited PDF report. Provide claims (an array of statements) OR a filePath/content to auto-extract factual claims from. Because this reaches the web-search MCP you MUST pass webSearchBearer (your web-search demo key) and serperKey (your Serper key); webSearchUrl defaults to the hosted web-search endpoint. Returns, per claim, the retrieved evidence + source URLs + a ROUGH keyword-overlap support score — NOT a verdict; read the evidence and decide support/refute yourself. Set generateReport: true for a downloadable cited PDF.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| claims | No | Explicit statements to verify. If omitted, claims are auto-extracted from filePath/content. | |
| content | No | Raw text to extract claims from. Use this OR claims OR filePath. | |
| filePath | No | A document (PDF/DOCX/Excel/PPTX) to read and extract claims from. Use this OR claims OR content. | |
| maxClaims | No | Max claims to check (default 8, max 20). | |
| serperKey | No | REQUIRED. Your Serper key — the web-search MCP is keyless and needs it to search. | |
| uploadUrl | No | OPTIONAL. HTTPS URL of a receiver that will accept a JSON envelope `{data:base64, filename, mimeType, size}` POSTed with this Bearer auth. If you have NOT been given an uploadUrl in your context, OMIT this field and the tool just writes the file locally. Single-use semantics — do not retry on 4xx. Works with any compliant receiver (CogniRunner attachment-upload web trigger is the reference implementation, but the contract is generic). | |
| clientHint | No | How the response should be shaped. 'interactive' = polished one-line message for end-users (no chatty registry/lineage notes). 'agent' = verbose response with all metadata for AI consumption. 'auto' (default) = detect from input shape or MCP_CLIENT_TYPE env var, falling back to 'agent'. | |
| reportTitle | No | Optional title for the generated report. | |
| webSearchUrl | No | Optional. The web-search MCP /mcp URL. Defaults to the hosted endpoint (or the WEB_SEARCH_MCP_URL env var). | |
| generateReport | No | If true, also write a cited PDF verification report (returned as a download link). | |
| uploadFilename | No | OPTIONAL. Filename to put in the upload envelope. Defaults to the local file's basename. Useful when the local file got auto-suffixed (e.g. duplicate prevention) and you want a clean name on the receiver side. | |
| webSearchBearer | No | REQUIRED. A web-search MCP tenant bearer (your web-search demo key) — this tool calls that MCP. | |
| uploadAuthHeader | No | OPTIONAL. Authorization header value for uploadUrl (e.g. 'Bearer abc123'). REQUIRED when uploadUrl is set; ignored otherwise. Never logged. |