verify_answer and verify_against_document for Claude Code, Claude Desktop, Cursor and any MCP client: every claim in an AI answer marked supported, unsupported or contradicted, with the passage that d
翻译准备中
开发工具JavaScript · PythonGitHub @augustbrookz在线运营者未确认
试用过了吗? 点一下就好,无需登录。
尚未检测到更新。GitHub 发布版本后会显示在这里。
Verify an AI answer against its sources before the agent states it or acts on it: install snippets, example configs and a tiny client for the Xyntherium Verify MCP server (https://xyntherium.com/mcp).
翻译准备中
正在加载完整 README。
查看完整 README ↗Let any AI agent verify an answer against its sources before it states a fact or takes an action.
Two tools, hosted at https://www.xyntherium.com/mcp (Streamable HTTP, bearer auth; use the www. address, the bare domain currently redirects and a redirect drops the key):
| Tool | Input | What comes back |
|---|---|---|
verify_answer | answer, sources[] ({ text, id?, title? }), question?, mode? | Every claim in the answer marked supported, unsupported or contradicted, with the source passage that decides it, and one verdict: send, cite_sources, revise or ask_a_person |
verify_against_document | answer, document_text, title?, question?, mode? | The same, against one document |
It catches a dropped condition ("within 30 days for unopened items"), a changed number or date, a flipped negation, a wrong entity, and any statement the sources never make. It checks only against the text you pass: it never fetches URLs and does not check facts about the world.
This repository is the integration layer: install snippets, example configs, a system-prompt snippet and a tiny client wrapper. The hosted service is closed source; the deterministic engine behind it is open at augustbrookz/verify-gate.
Get an API key at https://xyntherium.com/account/api-keys (free: 1,000 checks a month, 50 a day over MCP, no card).
claude mcp add --transport http xyntherium-verify https://www.xyntherium.com/mcp \
--header "Authorization: Bearer $XYN_API_KEY"
Add --scope user to make it available in every project. claude mcp list shows it connected.
Settings → Developer → Edit config (claude_desktop_config.json), through the mcp-remote bridge (examples/claude_desktop_config.json):
{
"mcpServers": {
"xyntherium-verify": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://www.xyntherium.com/mcp", "--header", "Authorization: Bearer ${XYN_API_KEY}"],
"env": { "XYN_API_KEY": "xyn_live_…" }
}
}
}
Or Settings → Connectors → Add custom connector with https://www.xyntherium.com/mcp and no key: Claude sends you to Xyntherium to sign in and approve access (OAuth, 90 days).
~/.cursor/mcp.json or .cursor/mcp.json (examples/cursor-mcp.json):
{
"mcpServers": {
"xyntherium-verify": {
"url": "https://www.xyntherium.com/mcp",
"headers": { "Authorization": "Bearer xyn_live_…" }
}
}
}
.vscode/mcp.json (examples/vscode-mcp.json); VS Code asks for the key once and stores it securely.
URL https://www.xyntherium.com/mcp, header Authorization: Bearer <key>, Streamable HTTP, stateless, protocol 2026-07-28 and 2025-11-25 (and 2025-06-18 / 2025-03-26 through initialize). Discovery and tools/list need no key; every tool call does.
Install with the Claude Code command above.
Ask Claude:
Our return policy says: "Refunds are available within 30 days for unopened items with proof of purchase."
A customer asks if they can get a refund. Draft a one-sentence reply, then verify it with
xyntherium-verify before you show it to me, and fix anything the check flags.
Claude drafts "Yes, refunds are available within 30 days", calls verify_against_document, and gets:
REVISE: dropped “for unopened items with proof of purchase”.
- Dropped: “Refunds are available within 30 days.” leaves out “for unopened items with proof of purchase”; the source says “within 30 days for unopened items with proof of purchase” (source document).
Claims:
1. [unsupported] “Refunds are available within 30 days.”; drops “for unopened items with proof of purchase”; source document: “Refunds are available within 30 days for unopened items with proof of purchase.”.
0 of 1 statements supported · mode fast · rules 2.1.0 · request …
Claude rewrites the reply with the conditions, checks again, and gets SEND.
From a shell, without any client:
curl -s -X POST https://www.xyntherium.com/mcp \
-H "Authorization: Bearer $XYN_API_KEY" \
-H 'content-type: application/json' -H 'accept: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"verify_against_document","arguments":{
"answer":"Refunds are available within 30 days.",
"document_text":"Refunds are available within 30 days for unopened items with proof of purchase."}}}'
The server sends every client these instructions; examples/agent-system-prompt.md has a longer version for your own system prompt:
Before you state facts drawn from documents in the conversation, or act on them (send a reply, file a change, book, refund, approve), verify the drafted answer: call
verify_answerwith the answer and the passages it relies on, orverify_against_documentwith the answer and the one document it rests on. On REVISE, fix what it names and check again before proceeding. On ASK A PERSON, tell the user what the sources do not settle instead of guessing. Do not call it for chit-chat, for answers with no source text, or to fact-check the world.
Text (the verdict first, then each problem, then every claim) and the same as structuredContent:
以上为 README 的开头部分。其余内容请阅读原文。 查看完整 README ↗