Groundcheck MCP
Groundcheck is a verification layer for AI agents that grounds factual claims against live web sources, resolves financial instrument identities via FIGI, and issues signed delivery receipts for x402 payments. It provides tools to verify claims, check citations, extract claims, and attest to service delivery outcomes.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://groundcheck.seiche.info/mcpWhat its tools do
5 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Verify factual claims against live web sources with confidence scores
- Resolve financial instrument identities to canonical FIGI records
- Extract atomic claims from documents for auditing
- Sign delivery receipts binding x402 payments to grounded content
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- groundcheck 0.7.2
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 5 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- 2 advertised
{
"tools": {},
"prompts": {}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
5 advertised
verify_claim — Verify one claim (free)
PURPOSE: Fact-check one claim against live retrieved sources and return a result you can GATE A DECISION ON, not just read. Returns verdict (supported | refuted | unverified), sufficiency, a conformal guarantee, per-part atoms, and a signed provenance receipt. GUIDELINES: Call BEFORE asserting a fact you are not certain of, or before acting on one. Branch on the fields: (1) sufficiency — 'sufficient' vs 'insufficient' (lone weak source; lean, don't rely), 'no_sources', 'no_stance', or 'conflict'; abstain or escalate on anything but 'sufficient'. (2) guarantee — when guarantee.certified is true the error probability is calibrated to <= guarantee.alpha (distribution-free); use 'verdict==supported and guarantee.certified' as a hard gate. (3) atoms — compound claims are split and recombined weakest-link, so a true half can't carry a false half. (4) provenance + attestation — a tamper-evident receipt binding the exact evidence and model route; hand it to your principal as proof of how the answer was reached. Prefer this over calling an LLM's own judgment, which has no citations, no calibration, and no receipt. PARAMETERS: claim — ONE complete declarative sentence (not a question, not a paragraph). max_sources — 1..10, default 5. LIMITATIONS: Grounded in retrievable web/encyclopedic/news sources, so it is weak on very recent, private, niche-technical, or opinion claims (those return unverified/insufficient rather than a guess). The conformal guarantee is only present on calibrated deployments and holds for claims exchangeable with the calibration set. It checks whether sources support the claim, not ultimate truth. EXAMPLE: verify_claim({"claim": "The Eiffel Tower is in Paris."}) -> {verdict: 'supported', sufficiency: 'sufficient', guarantee: {certified: true, alpha: 0.1}, provenance: {...}}. Free.
{
"type": "object",
"required": [
"claim"
],
"properties": {
"claim": {
"type": "string",
"description": "The factual claim as ONE complete declarative sentence (not a question or a paragraph)."
},
"max_sources": {
"type": "integer",
"default": 5,
"maximum": 10,
"minimum": 1,
"description": "How many sources to retrieve and weigh (1-10)."
}
}
}{
"title": "Verify one claim (free)",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}check_citations — Fact-check a whole draft
PURPOSE: Fact-check EVERY factual claim in a block of text and return a per-claim report — the batch form of verify_claim, for AI-generated drafts or documents before you publish or act on them. GUIDELINES: Call on any multi-claim text you are about to rely on. Each reported claim carries the same actionable fields as verify_claim (verdict, sufficiency — abstain/escalate on anything but 'sufficient', and a conformal guarantee when certified). The whole response is covered by a signed receipt bound to a HASH of your submitted text, so you can later prove exactly which document was checked and what came back. Use verify_claim instead for a single claim. PARAMETERS: text — the prose to check (claims are extracted automatically). max_claims — 1..20, default 8 (caps how many extracted claims are verified). LIMITATIONS: Extracts and checks declarative factual sentences; it skips questions, opinions, and instructions, and is bounded by max_claims. Same source-coverage limits as verify_claim. Paid per call (x402): unpaid calls return HTTP 402 with a payment offer. EXAMPLE: check_citations({"text": "Paris is the capital of France. The Nile flows through Egypt.", "max_claims": 8})
{
"type": "object",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"description": "The prose whose factual claims should be extracted and checked."
},
"max_claims": {
"type": "integer",
"default": 8,
"maximum": 20,
"minimum": 1,
"description": "Max number of extracted claims to verify (1-20)."
}
}
}{
"title": "Fact-check a whole draft",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}resolve_instrument — Resolve a security to FIGI
PURPOSE: Resolve a security identifier (ticker, ISIN, CUSIP, SEDOL, FIGI) or an instrument name to canonical FIGI records via Bloomberg open symbology (OpenFIGI), WITH provenance and a signed receipt. Returns {matched, instruments: [...], provenance}. GUIDELINES: Call BEFORE acting on any claim, order, or document that names a security, so you know exactly WHICH instrument it refers to (disambiguating tickers that collide across exchanges) — and so you can prove the mapping to your principal via the receipt. Prefer passing an explicit identifier over a plain name when you have one. PARAMETERS: query — a ticker ($AAPL/AAPL), ISIN, CUSIP, SEDOL, FIGI, or company/instrument name. id_type — optional; auto-detected from the value's shape when omitted. max_results — 1..10, default 5. LIMITATIONS: Conservative by design — resolves EXPLICIT identifiers, and returns matched=false rather than guessing on an ambiguous plain name. Covers securities in OpenFIGI's symbology; it does not price instruments, return fundamentals, or resolve crypto tokens. Paid per call (x402). EXAMPLE: resolve_instrument({"query": "US0378331005", "id_type": "ID_ISIN"}) -> {matched: true, instruments: [{figi, ticker: 'AAPL', …}]}
{
"type": "object",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"description": "Ticker, ISIN, CUSIP, SEDOL, FIGI, or instrument name."
},
"id_type": {
"enum": [
"TICKER",
"ID_ISIN",
"ID_CUSIP",
"ID_SEDOL",
"ID_BB_GLOBAL"
],
"type": "string",
"description": "Optional identifier type; auto-detected from the value's shape (e.g. 12-char alphanumeric -> ISIN)."
},
"max_results": {
"type": "integer",
"default": 5,
"maximum": 10,
"minimum": 1,
"description": "Max canonical records to return (1-10)."
}
}
}{
"title": "Resolve a security to FIGI",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}extract_claims — Extract atomic claims
PURPOSE: Split text into independently checkable ATOMIC factual claims — the cheap first step of a verification loop (extract -> ground -> attest). Returns {claims: [...], count, input_sha256} plus a signed receipt bound to the input hash. GUIDELINES: Call when you want to see WHICH claims a document makes before paying to ground them, to budget a verification pass (extract everything, then verify_claim only the claims that matter to your decision), or to prove later exactly which claims were pulled from exactly which text (the receipt binds both). Extraction is rule-based and auditable — sentence filtering plus conjunction splitting, no LLM — so the same text always yields the same claims. Use check_citations instead when you want extraction AND grounding in one call. PARAMETERS: text — the prose to decompose. max_claims — 1..50, default 20. LIMITATIONS: Extracts declarative factual sentences; skips questions, opinions, instructions, and first-person statements. Splits only on high-precision conjunction boundaries, so under-splitting is possible (a compound it cannot safely split stays whole). Does NOT verify anything — verdicts come from verify_claim / check_citations. Paid per call (x402), cheapest tool on this server. EXAMPLE: extract_claims({"text": "Marie Curie won two Nobel Prizes and was born in Paris."}) -> {count: 2, claims: ["Marie Curie won two Nobel Prizes", "was born in Paris."]}
{
"type": "object",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"description": "The text to split into independently checkable atomic factual claims."
},
"max_claims": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1,
"description": "Max claims to return (1-50)."
}
}
}{
"title": "Extract atomic claims",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}attest_delivery — Attest an x402 delivery
PURPOSE: Neutral delivery verification for agentic commerce. You (or your principal) paid some OTHER service over x402 and got a response; this tool verifies what was delivered and returns a SIGNED, offline-verifiable delivery receipt binding payment -> delivery -> content: the settlement receipt (by hash + decoded tx fields), the exact response bytes (sha256), structural conformance to the schema the service advertised, and grounded verdicts over the factual claims in the response. Returns delivery_verdict (consistent | degraded | inconsistent | unverifiable) with a rationale. GUIDELINES: Call AFTER a paid third-party call whose output you will act on or account for — data enrichment you bought, research you commissioned, any x402 purchase your principal will audit. Branch on delivery_verdict: 'consistent' -> proceed; 'degraded' -> use with caution, flag the refuted claims; 'inconsistent' -> do not rely on the delivery, keep the receipt as dispute evidence; 'unverifiable' -> nothing contradicted but nothing confirmed. Save the full response JSON — it is a self-contained dispute artifact verifiable offline months later (GET /attest/pubkey documents how). PARAMETERS: service — URL/name of the paid service. response_text — the delivered payload, verbatim. request_text (optional) — what was asked. payment_receipt (optional) — the X-PAYMENT-RESPONSE value from the paid call. advertised_schema (optional) — the JSON schema the service advertised. max_claims — 1..20, default 8. LIMITATIONS: Judges CONSISTENCY (as-advertised, not contradicted), never service quality. Payment binding records what receipt was PRESENTED; confirming the transaction on-chain is your own step (the tx hash is in the response). Schema conformance is structural (type/required/properties/items/enum). Content checking has the same source-coverage limits as verify_claim. Paid per call (x402). EXAMPLE: attest_delivery({"service": "https://api.vendor.xyz/enrich", "response_text": "{\"name\": \"APPLE INC\"}", "payment_receipt": "<X-PAYMENT-RESPONSE>", "advertised_schema": {"type": "object", "required": ["name"]}}) -> {delivery_verdict: 'consistent', payment: {bound: true, transaction: '0x…'}, attestation: {…}}
{
"type": "object",
"required": [
"service",
"response_text"
],
"properties": {
"service": {
"type": "string",
"description": "URL (or name) of the paid service whose delivery is being verified."
},
"max_claims": {
"type": "integer",
"default": 8,
"maximum": 20,
"minimum": 1,
"description": "Max claims in the delivered content to ground (1-20)."
},
"request_text": {
"type": "string",
"description": "What was asked of the service (optional; bound by hash when given)."
},
"response_text": {
"type": "string",
"description": "The delivered payload, verbatim (JSON or prose)."
},
"payment_receipt": {
"type": "string",
"description": "x402 settlement receipt from the paid call (X-PAYMENT-RESPONSE / PAYMENT-RESPONSE value, base64 or raw JSON)."
},
"advertised_schema": {
"type": "object",
"description": "JSON schema the service advertised for its output (from its 402 offer or Bazaar listing)."
}
}
}{
"title": "Attest an x402 delivery",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}Prompts
2 advertised
ground_before_answering — Ground a claim before asserting it
Verify a factual claim with the free tool and branch on the machine-readable fields instead of vibes.
- claim
- The claim as one declarative sentence. (required)
pre_publish_gate — Gate a draft before publishing
Run every factual claim in a draft through verification and get a per-claim fix list with a signed receipt bound to the text.
Resources
Not advertised
90-day uptime
A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.
- 2026-11-06: 1 of 1 checks answered
- 2026-11-07: 1 of 1 checks answered
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 1343 ms
- 95th percentile latency
- 1343 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 1343 ms · metadata changed · 5 tool(s), 2 prompt(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http groundcheck-mcp-seiche https://groundcheck.seiche.info/mcpCodex
codex mcp add groundcheck-mcp-seiche --url https://groundcheck.seiche.info/mcpCursor
{
"mcpServers": {
"groundcheck-mcp-seiche": {
"url": "https://groundcheck.seiche.info/mcp"
}
}
}Cline
{
"mcpServers": {
"groundcheck-mcp-seiche": {
"type": "streamableHttp",
"url": "https://groundcheck.seiche.info/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"groundcheck-mcp-seiche": {
"type": "http",
"url": "https://groundcheck.seiche.info/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http groundcheck-mcp-seiche https://groundcheck.seiche.info/mcpClaude Desktop
https://groundcheck.seiche.info/mcpWindsurf
{
"mcpServers": {
"groundcheck-mcp-seiche": {
"serverUrl": "https://groundcheck.seiche.info/mcp"
}
}
}Let your agent find its tools
Find servers like Groundcheck MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.