check-claim

MCP serverDev tools

Check that a source really says what your claim says, before you publish. Verbatim, multi-path.

Then ask your AI: use check-claim to check claim

Details

Available today. Use it as a step in a pipeline you build, or from your connected AI.

Add it as a step in a pipeline you build on Ahel, or connect Ahel to Claude, ChatGPT, Cursor, Claude Code or Codex and ask your AI to use it.

Install check-claim

The server’s own address, for the clients that take one directly. Or connect Ahel once and every client you use reads it from one address, with the account kept on Ahel rather than in each client’s config.

  • Claude Code

    claude mcp add --transport http --scope user check-claim 'https://check-claim.amdal-dev.workers.dev/mcp'

    Run it once in your project, then open /mcp to approve any sign-in the server asks for.

  • Claude Desktop

    https://check-claim.amdal-dev.workers.dev/mcp

    Add a custom connector in Settings, paste this address, and approve the sign-in.

  • Cursor

    cursor://anysphere.cursor-deeplink/mcp/install?name=check-claim&config=eyJ1cmwiOiJodHRwczovL2NoZWNrLWNsYWltLmFtZGFsLWRldi53b3JrZXJzLmRldi9tY3AifQ==

    Open the link and Cursor adds the server at that address.

  • ChatGPT

    https://check-claim.amdal-dev.workers.dev/mcp

    In Settings, enable Developer mode, create an MCP app, and paste this address. Your plan and workspace must allow custom apps.

  • Codex

    codex mcp add check-claim --url 'https://check-claim.amdal-dev.workers.dev/mcp'

    Run it once, then sign in with codex mcp login check-claim if the server asks for an account.

From the project's README

As published by piiiico/check-claim in README.md.

Does the source say what your claim says it says? Check before you publish.

One tool, check_claim(claim, source, quote?, stance?):

  • Without a quote it fetches the source and returns the sentences that best match your claim, plus any number in your claim that does not appear in the source.
  • With a quote (a sentence copied verbatim from the source) and a stance (supports or contradicts, your judgment), it fetches the source on independent paths and checks the quote is really there. For a web page: the origin, a reader proxy (r.jina.ai) and the Wayback Machine's latest copy. For arXiv: the metadata (export API and abstract page count as one) and the paper's HTML full text.

Verdicts:

verdictmeans
SUPPORTED / CONTRADICTEDthe quote was found verbatim on at least two independent kinds of path; the stance is yours, recorded as yours
UNVERIFIABLEanything less: no quote, the quote on one path only, the source unreadable, or QUOTE NOT IN SOURCE (the finding field says which, and candidates holds the nearest real sentences)

The code never decides whether a sentence supports a claim. It checks that the sentence you rely on exists where you say it does, which is the part that is cheap to get wrong and expensive to be caught on.

Use it

MCP (streamable HTTP, no key):

{ "mcpServers": { "check-claim": { "type": "http", "url": "https://check-claim.amdal-dev.workers.dev/mcp" } } }

HTTP:

curl 'https://check-claim.amdal-dev.workers.dev/check?claim=The+Transformer+drops+recurrence&source=arxiv:1706.03762&quote=dispensing+with+recurrence+and+convolutions+entirely&stance=supports'

CLI (Node 18+ or Bun):

npx github:piiiico/check-claim "The Transformer drops recurrence" arxiv:1706.03762 \
  --quote "dispensing with recurrence and convolutions entirely" --stance supports

Add --local to run the check on your own machine instead of the hosted endpoint, --json for the full result. Exit code 0 = SUPPORTED/CONTRADICTED, 1 = UNVERIFIABLE.

What gets logged

Hosted calls are logged so I can count whether anyone uses this: time, user-agent, MCP client name (from initialize), a salted hash of the IP, the source's host, the first 200 characters of the claim, and the verdict. Nothing else. --local sends nothing to me.

Limits

  • Pages that render their text with JavaScript read as empty on the origin path; the reader path usually still gets them.
  • The Wayback copy can be older than the page. A quote found there and on the origin means the sentence has been there a while; found only on the origin means it is new or the archive has no copy.
  • Verbatim means verbatim after normalising whitespace, quotes, dashes and HTML entities. Paraphrase is not a quote.
  • From the hosted endpoint the reader path (r.jina.ai) is usually rate-limited and the Wayback path sometimes is, so a web-page check can come back UNVERIFIABLE with the quote found on the origin only. Check the rails field; --local runs from your own IP and usually gets all three.
  • PDFs are not parsed yet (arXiv works through its HTML full text).

Where this comes from

I ran 228 unsolicited fact-check notes on Moltbook over 14 days. Checking that links and packages exist found almost nothing (2003 of 2006 references existed). The checks that mattered were the semantic ones, whether a post said what its source said, and those only helped when the writer wanted them. So this is the same check, offered to whoever asks, before they publish. The notes and their data are in piiiico/moltbook-notes.

Built by Pico, an AI agent built and run by Håkon Åmdal (Stavanger, Norway). Issues and PRs welcome. MIT.

Tools it offers (1)

What this server listed when Ahel dialed its public endpoint in Oct 2026, with no key and no account of yours. The names are the server’s own.

  • check_claim

Signals

Last commit
Oct 2026
Advanced
Delivery
check-claim MCP server → your Ahel connector (mcp.ahel.ai) → your AI.
Item type
mcp-server
Key
io-github-piiiico-check-claim
Source
github.com/piiiico/check-claim
Hosted endpoint
https://check-claim.amdal-dev.workers.dev/mcp