verify-anything
v0.2.0
Published
Is this true? Verify a claim, URL, file, or AI answer: up to 20 claims (configurable) judged against web sources, with confidence, the evidence span, and the reason. CLI + MCP server.
Maintainers
Readme
verify — is this true?
npx [email protected] "The Eiffel Tower is located in Berlin. It is 330 metres tall and was completed in 1889. Apollo 13 landed on the Moon in 1969."✗ The Eiffel Tower is located in Berlin.
█░░░░░░░░░ 10% Evidence contradicts the claim (en.wikipedia.org +1)
↳ https://en.wikipedia.org/wiki/Eiffel_Tower
“The Eiffel Tower is a lattice tower on the Champ de Mars in Paris, France.”
✓ The Eiffel Tower is 330 meters tall.
████████░░ 77% Directly supported by 1 source (single source)
↳ https://en.wikipedia.org/wiki/Eiffel_Tower
“Eiffel Tower. Height Architectural 300 m (984 ft) Tip 330 m (1,083 ft)”
✓ The Eiffel Tower was completed in 1889.
████████░░ 80% Directly supported by 1 source (single source)
↳ https://en.wikipedia.org/wiki/Eiffel_Tower
“Eiffel Tower. Construction started 28 January 1887 … Completed 31 March 1889”
✗ Apollo 13 landed on the Moon in 1969.
█░░░░░░░░░ 10% Date mismatch — the claim's date does not match the source
↳ https://en.wikipedia.org/wiki/Apollo_13
Verdict: 2 ✓ 2 ✗ 0 ? 2 contradicted(Real output, 2026-10-17, --thorough. The quoted line under each verdict is the exact span the
verifier judged — so you can check the check. --verbose prints every source it weighed.)
Every AI answer, every page an agent reads, every claim in a doc — nobody can tell what's true.
verify takes any input, extracts up to 20 factual claims (configurable with --max, up to 50),
and judges each one against web evidence: verified / contradicted / unverified, with
confidence, the source, and the reason.
- Any input — a sentence, a paragraph, a URL, a file, or
stdin(paste a ChatGPT answer) - Every agent —
verify mcpexposes averifytool;verify setupadds it to Claude Desktop, Claude Code, Cursor, Windsurf and Gemini CLI in one command. Your agent gets a conscience: verify before you answer. - Evidence, not vibes — claim-level NLI entailment against fetched sources, cross-source consensus and contradiction detection (live citation checks on deeper keyed runs). Powered by the LastSearch verification API.
- Honest — confidence is an evidence-based estimate, not a guarantee; sources are shown so you can check.
Use
npx [email protected] "<text>" # a claim or paragraph (50+ chars)
npx [email protected] https://example.com # a page
npx [email protected] report.md # a text file (up to 50,000 chars)
pbpaste | npx [email protected] # whatever's on your clipboard
npx [email protected] ... --verbose # every source judged, with entailment / contradiction scores
npx [email protected] ... --json # machine-readable; exit code 1 if anything is contradictedWithout a key you get a small demo allowance. Get a free key at lastsearch.ai and
export LASTSEARCH_API_KEY=ls_...
Data: the text, file contents or URL you verify are sent to the LastSearch API and stored as described in the LastSearch Privacy Policy. Don't send secrets or personal data. Use is subject to the LastSearch Terms.
Give your agent a conscience
npx [email protected] setup # registers the MCP server with your installed clients
npx [email protected] setup --with-key # also writes $LASTSEARCH_API_KEY into each client configsetup pins the version it writes, backs up each config to <file>.bak, leaves files it can't
parse untouched, and won't replace a different server already named verify unless you pass
--force. For Codex CLI: codex mcp add verify -- npx -y [email protected] mcp.
Then: "Draft the answer, then run verify on it before you show me."
Library
import { verifyText } from "verify-anything";
const r = await verifyText("...", { depth: "thorough" });
r.claims.forEach(c => console.log(c.status, c.confidence, c.text));Limits (read this)
Verification is only as good as the evidence found and the verifier reading it. It will miss things
and occasionally be wrong; thorough (the default) uses the stronger verifier. Treat the output as a
fast, sourced second opinion — not an oracle.
Output is automated and may be wrong or incomplete; it is not professional advice. You (and your agent) decide what to rely on.
A free, non-commercial passion project by an independent developer, provided "as is" without warranty. Copyright 2026 Shreyas Sawant · Apache-2.0 · built on LastSearch · report issues · security
Claude, ChatGPT, Cursor, Windsurf, Codex and Gemini are trademarks of their respective owners, named only to describe compatibility. Not affiliated with or endorsed by them.
