Claim Grounding
Fact-check AI answers with cited sources. Pay per call in USDC on Base via x402.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"claim-grounding": {
"url": "https://claim-grounding.prospectintel.workers.dev/mcp"
}
}
}Remote endpoints
https://claim-grounding.prospectintel.workers.dev/mcpstreamable-httpWhat it can do
Tool inventory
Tools (4)
🟢extract_claims(text)
Split a text (for example an AI-generated answer) into atomic factual claims, each with its character span and a grounding_required flag that says whether it is a checkable fact (questions, greetings and opinions are flagged false). Use it before verify_claim to decide what to check. Price: $0.05 USDC on Base per call via x402; this MCP call returns payment instructions and the paid HTTP route POST /v1/extract_claims returns the claims. Read-only, no side effects.
Input Schema
{
"type": "object",
"properties": {
"text": {
"type": "string",
"description": "The text to split into claims, for example a chatbot answer. Up to a few thousand characters.",
"minLength": 1,
"examples": [
"The Eiffel Tower is in Paris and was completed in 1889."
]
}
},
"required": [
"text"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"payment_required",
"ok"
],
"description": "payment_required: pay the HTTP route with x402 to get the result. ok: result is included."
},
"tool": {
"type": "string",
"description": "Tool name."
},
"payment": {
"type": "object",
"description": "Payment instructions. MCP tools/call does not charge or run the paid work; call the HTTP route with x402.",
"properties": {
"protocol": {
"type": "string",
"description": "Payment protocol, always x402 (v2)."
},
"method": {
"type": "string",
"description": "HTTP method for the paid route."
},
"url": {
"type": "string",
"description": "Paid HTTP route to call."
},
"price": {
"type": "string",
"description": "Price in USD, paid as USDC."
},
"amount": {
"type": "string",
"description": "Price in USDC base units (6 decimals)."
},
"network": {
"type": "string",
"description": "CAIP-2 network id (eip155:8453 = Base mainnet)."
},
"asset": {
"type": "string",
"description": "USDC contract address on Base."
},
"pay_to": {
"type": "string",
"description": "Receiving wallet address."
},
"body": {
"type": "object",
"description": "JSON body to POST (the tool arguments you sent).",
"additionalProperties": true
},
"how": {
"type": "string",
"description": "Step-by-step payment flow."
}
},
"required": [
"protocol",
"method",
"url",
"price",
"network"
]
},
"result": {
"type": "object",
"description": "Paid result: { claims: [{ claim_id, text, span: { start, end }, grounding_required }], priced_usd }.",
"properties": {
"claims": {
"type": "array",
"items": {
"type": "object"
}
},
"priced_usd": {
"type": "number"
}
},
"additionalProperties": true
},
"message": {
"type": "string",
"description": "Human-readable summary."
}
},
"required": [
"status",
"tool",
"message"
],
"additionalProperties": true
}🟢verify_claim(claim)
Check one factual claim against public Wikipedia sources and return a verdict (supported, contradicted, outdated, mixed or insufficient_evidence), a confidence score, a short reason, the supporting quote and the source URL. Says insufficient_evidence instead of guessing. Price: $1.00 USDC on Base per call via x402; this MCP call returns payment instructions and the paid HTTP route POST /v1/verify_claim returns the verdict. For a multi-source check use deep_verify. Read-only.
Input Schema
{
"type": "object",
"properties": {
"claim": {
"type": "string",
"description": "One factual sentence to check.",
"minLength": 1,
"examples": [
"The Eiffel Tower is in Paris."
]
}
},
"required": [
"claim"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"payment_required",
"ok"
],
"description": "payment_required: pay the HTTP route with x402 to get the result. ok: result is included."
},
"tool": {
"type": "string",
"description": "Tool name."
},
"payment": {
"type": "object",
"description": "Payment instructions. MCP tools/call does not charge or run the paid work; call the HTTP route with x402.",
"properties": {
"protocol": {
"type": "string",
"description": "Payment protocol, always x402 (v2)."
},
"method": {
"type": "string",
"description": "HTTP method for the paid route."
},
"url": {
"type": "string",
"description": "Paid HTTP route to call."
},
"price": {
"type": "string",
"description": "Price in USD, paid as USDC."
},
"amount": {
"type": "string",
"description": "Price in USDC base units (6 decimals)."
},
"network": {
"type": "string",
"description": "CAIP-2 network id (eip155:8453 = Base mainnet)."
},
"asset": {
"type": "string",
"description": "USDC contract address on Base."
},
"pay_to": {
"type": "string",
"description": "Receiving wallet address."
},
"body": {
"type": "object",
"description": "JSON body to POST (the tool arguments you sent).",
"additionalProperties": true
},
"how": {
"type": "string",
"description": "Step-by-step payment flow."
}
},
"required": [
"protocol",
"method",
"url",
"price",
"network"
]
},
"result": {
"type": "object",
"description": "Paid result: { mode, claim: { text, verdict, confidence, rationale_short, citations[] }, why, source, receipt }.",
"properties": {
"claim": {
"type": "object",
"properties": {
"claim_id": {
"type": "string"
},
"text": {
"type": "string"
},
"verdict": {
"type": "string"
},
"confidence": {
"type": "number"
},
"citations": {
"type": "array",
"items": {
"type": "object"
}
}
}
},
"why": {
"type": "string"
},
"source": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": true
},
"message": {
"type": "string",
"description": "Human-readable summary."
}
},
"required": [
"status",
"tool",
"message"
],
"additionalProperties": true
}🟢check_answer(answer)
Fact-check a whole answer: extracts every checkable claim and verifies each one against public Wikipedia sources, returning a verdict, confidence, quote and source URL per claim plus suggested next actions. Use it to audit chatbot or RAG output before showing it to a user. Price: $1.00 USDC on Base per call via x402; this MCP call returns payment instructions and the paid HTTP route POST /v1/check_answer returns the per-claim results. Read-only.
Input Schema
{
"type": "object",
"properties": {
"answer": {
"type": "string",
"description": "The full answer text to fact-check. Each factual sentence is checked separately.",
"minLength": 1,
"examples": [
"Marie Curie won two Nobel Prizes. She was born in Warsaw."
]
}
},
"required": [
"answer"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"payment_required",
"ok"
],
"description": "payment_required: pay the HTTP route with x402 to get the result. ok: result is included."
},
"tool": {
"type": "string",
"description": "Tool name."
},
"payment": {
"type": "object",
"description": "Payment instructions. MCP tools/call does not charge or run the paid work; call the HTTP route with x402.",
"properties": {
"protocol": {
"type": "string",
"description": "Payment protocol, always x402 (v2)."
},
"method": {
"type": "string",
"description": "HTTP method for the paid route."
},
"url": {
"type": "string",
"description": "Paid HTTP route to call."
},
"price": {
"type": "string",
"description": "Price in USD, paid as USDC."
},
"amount": {
"type": "string",
"description": "Price in USDC base units (6 decimals)."
},
"network": {
"type": "string",
"description": "CAIP-2 network id (eip155:8453 = Base mainnet)."
},
"asset": {
"type": "string",
"description": "USDC contract address on Base."
},
"pay_to": {
"type": "string",
"description": "Receiving wallet address."
},
"body": {
"type": "object",
"description": "JSON body to POST (the tool arguments you sent).",
"additionalProperties": true
},
"how": {
"type": "string",
"description": "Step-by-step payment flow."
}
},
"required": [
"protocol",
"method",
"url",
"price",
"network"
]
},
"result": {
"type": "object",
"description": "Paid result: { result_id, mode, claims: [{ text, verdict, confidence, citations[] }], next_actions, receipt }.",
"properties": {
"claims": {
"type": "array",
"items": {
"type": "object",
"properties": {
"claim_id": {
"type": "string"
},
"text": {
"type": "string"
},
"verdict": {
"type": "string"
},
"confidence": {
"type": "number"
},
"citations": {
"type": "array",
"items": {
"type": "object"
}
}
}
}
},
"next_actions": {
"type": "array",
"items": {
"type": "object"
}
}
},
"additionalProperties": true
},
"message": {
"type": "string",
"description": "Human-readable summary."
}
},
"required": [
"status",
"tool",
"message"
],
"additionalProperties": true
}🟢deep_verify(answer)
Multi-source verification of up to three claims in a text against Wikipedia, Wikidata, Google News, Europe PMC (PubMed studies), FRED (US economic data) and SEC EDGAR (US company filings). Returns verdict, confidence, evidence for and against with quotes and URLs, and flags contradiction when sources disagree. Async: the paid call returns a job_id; poll GET /v1/jobs/{job_id} for free until status is succeeded. Price: $0.75 USDC on Base per call via x402; this MCP call returns payment instructions for POST /v1/deep_verify. Read-only. Not legal, medical or compliance advice.
Input Schema
{
"type": "object",
"properties": {
"answer": {
"type": "string",
"description": "The claim or short text to verify (up to three claims are checked).",
"minLength": 1,
"examples": [
"US unemployment was 3.7% in December 2023."
]
}
},
"required": [
"answer"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"payment_required",
"ok"
],
"description": "payment_required: pay the HTTP route with x402 to get the result. ok: result is included."
},
"tool": {
"type": "string",
"description": "Tool name."
},
"payment": {
"type": "object",
"description": "Payment instructions. MCP tools/call does not charge or run the paid work; call the HTTP route with x402.",
"properties": {
"protocol": {
"type": "string",
"description": "Payment protocol, always x402 (v2)."
},
"method": {
"type": "string",
"description": "HTTP method for the paid route."
},
"url": {
"type": "string",
"description": "Paid HTTP route to call."
},
"price": {
"type": "string",
"description": "Price in USD, paid as USDC."
},
"amount": {
"type": "string",
"description": "Price in USDC base units (6 decimals)."
},
"network": {
"type": "string",
"description": "CAIP-2 network id (eip155:8453 = Base mainnet)."
},
"asset": {
"type": "string",
"description": "USDC contract address on Base."
},
"pay_to": {
"type": "string",
"description": "Receiving wallet address."
},
"body": {
"type": "object",
"description": "JSON body to POST (the tool arguments you sent).",
"additionalProperties": true
},
"how": {
"type": "string",
"description": "Step-by-step payment flow."
}
},
"required": [
"protocol",
"method",
"url",
"price",
"network"
]
},
"result": {
"type": "object",
"description": "Paid result: { mode: 'deep', status: 'queued', job_id, receipt }. Poll GET /v1/jobs/{job_id} for { verdict, confidence, contradiction, evidence_for[], evidence_against[], citations[] }.",
"properties": {
"job_id": {
"type": "string"
},
"status": {
"type": "string"
}
},
"additionalProperties": true
},
"message": {
"type": "string",
"description": "Human-readable summary."
}
},
"required": [
"status",
"tool",
"message"
],
"additionalProperties": true
}Community
Evidence