verify_claims
Verify claim+source pairs: fetches each cited URL and returns a per-claim verdict (supported / partially_supported / contradicted / unsupported / uncertain / could_not_fetch) with a quoted evidence span from the source.
claimsrequired
io.github.FranksterinoPublished by GitHub account Franksterinov0.1.2Updated Oct 24, 2026
Verify citations in AI text: fetches each cited source, returns verdicts with evidence quotes.
Fetches each cited source in AI-written text and returns per-claim verdicts with verbatim evidence quotes, plus a document citation integrity score.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/io.github.Franksterino%2Fciteguard/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Add this to your client's mcpServers config.
{
"mcpServers": {
"citeguard": {
"type": "http",
"url": "https://citeguard.boundy.workers.dev/mcp"
}
}
}Per-claim citation verification for AI-generated text. CiteGuard fetches every cited source and tells you whether it actually supports the claim — with a quoted evidence span, so you can verify the verdict yourself in seconds.
Built for the age of vibe citing: AI-drafted reports full of citations that resolve to real URLs but don't say what the text claims they say.
Give CiteGuard a document (markdown or plain text) or explicit claim+URL pairs. For each claim it:
Every verdict ships with a verbatim evidence quote, a confidence score, and full source status. Document audits also return a citation integrity score (0–100).
CiteGuard never overclaims: if it can't fetch a source, it says so instead of judging blind, and borderline cases land in uncertain — the goal is to make human verification 10× faster, not to replace it.
Add to Claude Code / Claude Desktop / any MCP client:
Tools exposed: verify_claims, check_document, check_links (liveness-only, needs no LLM key).
CiteGuard is model-agnostic — anything with an OpenAI-compatible chat endpoint works:
A free hosted endpoint (50 requests/day/IP) runs on Cloudflare Workers:
Remote MCP endpoint: POST /mcp (streamable HTTP, stateless).
supported verdict means the cited source says this, not this is true. Garbage source in, garbage support out.Markdown inline links, reference-style links, footnotes, bare DOIs (resolved via doi.org), bare URLs. APA-style parsing and PDF input documents are on the roadmap.
MIT
Source: README.md at commit e3414fa
Verify claim+source pairs: fetches each cited URL and returns a per-claim verdict (supported / partially_supported / contradicted / unsupported / uncertain / could_not_fetch) with a quoted evidence span from the source.
claimsrequiredAudit every citation in a markdown/plain-text document: extracts claim+source pairs (markdown links, footnotes, DOIs, bare URLs), verifies each against the fetched source, and returns a report with a citation integrity score (0-100).
documentrequiredLiveness-only check (no LLM): extracts all cited URLs and reports dead links, homepage redirects, and archive.org availability.
documentrequired100% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
{ "mcpServers": { "citeguard": { "command": "npx", "args": ["-y", "citeguard-mcp"], "env": { "CITEGUARD_JUDGE_PRESET": "qwen", "CITEGUARD_JUDGE_KEY": "sk-..." } } }}npm install -g citeguard
citeguard extract report.md # show extracted claim/source pairs (no network)citeguard links report.md # dead-link check (no LLM needed)citeguard check report.md # full audit (needs judge configured)# Preset providersexport CITEGUARD_JUDGE_PRESET=qwen # or: openai, anthropicexport CITEGUARD_JUDGE_KEY=sk-...
# Or any OpenAI-compatible endpointexport CITEGUARD_JUDGE_URL=https://your-endpoint/v1export CITEGUARD_JUDGE_MODEL=your-modelexport CITEGUARD_JUDGE_KEY=sk-...curl -X POST https://citeguard.YOUR-SUBDOMAIN.workers.dev/api/verify \ -H "content-type: application/json" \ -d '{"claims":[{"text":"The Eiffel Tower is 330 m tall.","source":"https://en.wikipedia.org/wiki/Eiffel_Tower"}]}'git clone https://github.com/Franksterino/citeguardcd citeguardnpm installnpm run typechecknpx tsx src/cli.ts extract test/fixtures/sample.md