FactStamp

Paid verification for agents: cited, dated answers with a signed receipt that verifies offline.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
90%
Naming quality
95%
Poisoning risk
80%
Permission match
100%
Protocol compliance
100%

Findings (2)

  • HIGHTool description contains system tag or markerin verify_package
  • HIGHTool poisoning patterns detected

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,247Tokens (tool definitions)
~1.4 KBTypical response size
Moderate attention impact (1.76% of 128k context)

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": {
    "factstamp": {
      "url": "https://factstamp.agentrails.workers.dev/mcp"
    }
  }
}

Remote endpoints

https://factstamp.agentrails.workers.dev/mcpstreamable-http

What it can do

Tool inventory

Tools (8)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢list_series

Free. What this engine covers, the publisher and as-of date behind each series, and the no-guess rule.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢route_claim(claim)

Free. Shows which series a claim would be routed to, the value and date extracted, and the signals behind the score. Returns NO verdict — pay for check_figure when you want one.

Input Schema

{
  "type": "object",
  "properties": {
    "claim": {
      "type": "string",
      "minLength": 4,
      "maxLength": 4000,
      "description": "The assertion to route."
    }
  },
  "required": [
    "claim"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢check_figure(claim, series_id)

Submit the dated figure you are about to act on. Returns verified, stale, contradicted or unknown, cited to the publisher's own series with its as-of date. Use before committing a number to a page, deck or decision. Not advice. Comes with an Ed25519-signed receipt covering the question, the verdict, the sources and the time, checkable offline against the published key at /.well-known/factstamp-issuer.json — so the check itself can be audited later by someone who was not here.

Input Schema

{
  "type": "object",
  "properties": {
    "claim": {
      "type": "string",
      "minLength": 8,
      "maxLength": 4000,
      "description": "The assertion to check, e.g. 'The RBA cash rate is 4.35% as at August 2026'."
    },
    "series_id": {
      "type": "string",
      "description": "Optional. Name the series to bypass the rule-based router (see list_series). Use when you already know which series owns the number, or when routing was ambiguous."
    }
  },
  "required": [
    "claim"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢check_entity(query, jurisdiction)

Verify a legal entity: does this company exist, under which identifier and jurisdiction, and is its registration current? Cited to open primary registers (the GLEIF LEI index and US SEC EDGAR). Returns found, ambiguous, not_found or unknown; a near name match is never reported as a match. Not advice, not a credit check, not a sanction screen. Comes with an Ed25519-signed receipt covering the question, the verdict, the sources and the time, checkable offline against the published key at /.well-known/factstamp-issuer.json — so the check itself can be audited later by someone who was not here.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "minLength": 2,
      "maxLength": 200,
      "description": "The entity to verify: a legal name such as 'Shopify Inc.', an LEI, or a CIK. An identifier resolves exactly."
    },
    "jurisdiction": {
      "type": "string",
      "maxLength": 12,
      "description": "Optional jurisdiction code to break ties, e.g. 'CA-ON', 'US-DE', 'AU'."
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢verify_citation(query, claimed_title, claimed_authors, claimed_year, claimed_journal)

Check a citation before you repeat it. Submit a DOI, an arXiv ID or a paper title: returns whether it exists, what it is (title, authors, year, container) and whether it has been retracted, cited to Crossref and arXiv. Optionally send what your document claims (title, authors, year, journal) and every field is compared one by one — a disagreement is reported as mismatch, never as verified. A near title match is never reported as verified; a title that is absent from both returns not_found. Not advice. Comes with an Ed25519-signed receipt covering the question, the verdict, the sources and the time, checkable offline against the published key at /.well-known/factstamp-issuer.json — so the check itself can be audited later by someone who was not here.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "minLength": 4,
      "maxLength": 300,
      "description": "A DOI such as '10.1038/nature12373', an arXiv ID such as '1706.03762', or a paper title."
    },
    "claimed_title": {
      "type": "string",
      "maxLength": 300,
      "description": "The title exactly as your document quotes it, to have it compared against the record."
    },
    "claimed_authors": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 120
      },
      "maxItems": 20,
      "description": "The authors as your document lists them. Surnames are compared."
    },
    "claimed_year": {
      "type": "integer",
      "minimum": 1500,
      "maximum": 2100,
      "description": "The year as your document states it. A difference of one year is tolerated."
    },
    "claimed_journal": {
      "type": "string",
      "maxLength": 200,
      "description": "The journal or container as your document names it."
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢verify_package(package, ecosystem)

Check a dependency before you install it. Submit a package and version plus its ecosystem: returns whether that exact version exists, whether it is yanked or deprecated, and every advisory OSV lists against it. An invented version returns not_found with the real versions nearest to it, and an invented name returns the published names that look like it — which is the point, because that is how slopsquatting gets installed. Not a security audit. Comes with an Ed25519-signed receipt covering the question, the verdict, the sources and the time, checkable offline against the published key at /.well-known/factstamp-issuer.json — so the check itself can be audited later by someone who was not here.

Input Schema

{
  "type": "object",
  "properties": {
    "package": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "The package to check, e.g. 'express', '[email protected]' or '@scope/name'."
    },
    "ecosystem": {
      "type": "string",
      "enum": [
        "npm",
        "pypi",
        "crates"
      ],
      "description": "Which registry to ask. Defaults to npm."
    }
  },
  "required": [
    "package"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡watch_add(kind, subject, webhook)

Watch a citation or a package version instead of checking it once. Send kind ('citation' or 'package') and the subject (a DOI, an arXiv ID or a title; or npm:[email protected]). The first check is answered immediately and signed, then re-checked daily for 30 days; every real change (a retraction, a new advisory, a yanked version) is recorded with its own signed receipt. Returns a read URL and a token shown once; optionally send an https webhook and each change is POSTed to it. Comes with an Ed25519-signed receipt covering the question, the verdict, the sources and the time, checkable offline against the published key at /.well-known/factstamp-issuer.json — so the check itself can be audited later by someone who was not here.

Input Schema

{
  "type": "object",
  "properties": {
    "kind": {
      "type": "string",
      "enum": [
        "citation",
        "package"
      ],
      "description": "What kind of subject this is."
    },
    "subject": {
      "type": "string",
      "minLength": 2,
      "maxLength": 300,
      "description": "The DOI, arXiv ID or title to watch; for a package, '[email protected]' or 'npm:[email protected]'."
    },
    "webhook": {
      "type": "string",
      "maxLength": 300,
      "description": "Optional https URL: each recorded change is POSTed there as JSON."
    }
  },
  "required": [
    "kind",
    "subject"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢verify_bulk(items, citations, packages)

Check a whole list in one call: a bibliography or a dependency manifest. Send items[] of {tool, input} or the citations[]/packages[] shorthand. Up to 12 items at a flat US$0.12 on this door; longer lists pay 0.016667 an item on the pack-funded HTTP door (POST /bulk, up to 25 items). Every item is answered by the same door that answers a single call, so the verdicts cannot disagree. Comes with an Ed25519-signed receipt covering the question, the verdict, the sources and the time, checkable offline against the published key at /.well-known/factstamp-issuer.json — so the check itself can be audited later by someone who was not here.

Input Schema

{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "tool": {
            "type": "string",
            "enum": [
              "verify_citation",
              "verify_package"
            ]
          },
          "input": {
            "type": "object",
            "additionalProperties": {}
          }
        },
        "required": [
          "tool",
          "input"
        ],
        "additionalProperties": false
      },
      "maxItems": 12,
      "description": "Explicit form: each item names its door and its input."
    },
    "citations": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 300
      },
      "maxItems": 12,
      "description": "Shorthand: DOIs, arXiv IDs or titles, each checked as a citation."
    },
    "packages": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 200
      },
      "maxItems": 12,
      "description": "Shorthand: package versions such as '[email protected]'."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded8 tools