_ registry / mcp streamable-http · checked 3m ago

crovia

https://croviatrust.com

Registry code: f2c72266c5f2bd1e

api record

Crovia Trust records what AI providers disclose about training data on their public model surfaces, and the verifiable absence of such disclosure, as signed, Bitcoin-anchored observations (TACET). Choose one tool: crovia_status for the live totals, silence_report for one published week or the latest week when no week is given, lookup_model for one model's observation, search_models for a page of ids, get_silence_proof for one proof or its seal bundle, verify_seal to check a seal. verify_seal can fetch a croviatrust.com URL and, when check_anchors is true, the drand round and the Bitcoin…

endpoint
https://croviatrust.com/mcp
protocol
streamable-http ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is crovia live?
Yes — it answered the hub's last check (checked 3m ago). It answered 100% of checks over the last 30 days.
Is crovia free to use?
Yes — the hub reached it with no key and no payment.
What tools does crovia have?
8 tools: lookup_model, verify_seal, crovia_vs_causari, silence_report, get_silence_proof, search_models, crovia_status, explain.
Is crovia safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
99.7%

90 days 99.3%· all time 99.3%

latency
165ms

last good check

priced tools
0

of 8 tools

_ answered our checks, 90 days 562 checks · signed record
  • degraded → live
  • live → degraded· timeout after 20000ms
  • degraded → live
  • degraded → live
  • live → degraded· timeout after 20000ms
_ what it is for
used for
  • check what an ai model discloses about training data
  • get a silence proof for a model
  • verify a signed seal
  • search observed models
takes → gives
text, data → data
tools
8 reads
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.

accounts
0

through this hub

calls served
0

successful

paid through this hub
0 USDC

what callers paid

_ what it can do 8 tools
6 open 2 never probed 6 of 8 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • crovia_vs_causari reads open 6h ago

    Which product is which. Crovia observes training-data disclosure. Causari is the code-provenance tool. No parameters. Use this, not explain and not crovia_status, when the question is the difference between the two. Reads no catalog.

    mcp-tool

    {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    }
    arguments 5 lines
  • silence_report reads open 6h ago

    One published weekly Silence Report, or the latest report index. week is an ISO week YYYY-Www, for example 2026-W38. Omit week, or pass an empty string, to receive the latest index rather than one week's facts. A week that is not YYYY-Www is an error. A week with no published file is an error and names the index. This is not the live status and not one model's proof. Reads published files only.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "week": {
          "type": "string",
          "description": "ISO week YYYY-Www, for example 2026-W38. Omit it, or pass an empty string, for the latest report index."
        }
      }
    }
    arguments 9 lines
  • get_silence_proof reads open 14h ago

    The published silence proof for one model: silence_days, observed window, epochs, seal id, URL, and how to verify it. model omitted or empty returns the proof index, not a bundle. include_bundle defaults to false; true attaches the crovia.seal.v1 bundle for that one model and does nothing on the index. This is not the live totals and not the weekly report. Reads published files only.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "model": {
          "type": "string",
          "description": "Hugging Face model id. Omit it, or pass an empty string, to receive the proof index instead of one proof."
        },
        "include_bundle": {
          "type": "boolean",
          "default": false,
          "description": "Default false. True includes the seal bundle for the one model. Ignored when model is omitted or empty."
        }
      }
    }
    arguments 14 lines
  • search_models reads open 14h ago

    A page of observed model ids whose id contains query, compared case-insensitively, in catalog order, not a ranking. query omitted or empty matches the whole catalog and still returns at most limit rows. limit follows the historical rule: a missing, empty, zero or other falsy value is 25; any value int() accepts is then clamped into 1..100 (500 becomes 100, a negative becomes 1); a value int() cannot parse is an error and nothing is searched. returned and its compatibility alias count are the rows in this page. matched is how many ids match before the limit. catalog_total and its compatibility alias total_records are every record in the catalog, matching or not. limit is the limit actually applied. count is not the match count, and total_records is not the match count. This is not a verdict and not a proof. Reads published files only.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer",
          "default": 25,
          "description": "Page size. Omitted, empty, 0 or any other falsy value means 25. A value int() accepts is clamped into 1..100: 500 is fetched as 100 and a negative as 1. There is no schema minimum or maximum, because those would reject the values the server clamps. A value int() cannot parse is an error and nothing is searched."
        },
        "query": {
          "type": "string",
          "description": "Substring of the model id. Omit it, or pass an empty string, to match the whole catalog. The page is still capped by limit."
        }
      }
    }
    arguments 14 lines
  • crovia_status reads open 14h ago

    Live totals at this moment: epochs closed, epochs anchored in Bitcoin, models on the map, snapshot counts, signed silence proofs, and a pointer to the longest verifiable silence. No parameters. This is not a weekly Silence Report, not one model's record, and not a proof bundle. Reads published files only.

    mcp-tool

    {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    }
    arguments 5 lines
  • explain reads open 6h ago

    The definition of one Crovia term. Allowed terms: tacet, silence, lacuna, seal, epoch, pnx, predicate, canon. Omit term, or pass an empty or blank string, to receive every definition. Any other value is an error listing those allowed terms, and it does not return the definitions. Use crovia_vs_causari, not explain, to tell the two products apart.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "term": {
          "type": "string",
          "description": "One of tacet, silence, lacuna, seal, epoch, pnx, predicate, canon. Omit it, or pass an empty string, for every definition. An unknown term is an error."
        }
      }
    }
    arguments 9 lines
  • lookup_model reads unknown 22h ago

    One model's observation: latest verdict, negative snapshots, anchored epochs, silence proof pointer, archive silence, badge and record URL. Required model is a Hugging Face id, org/name, for example Qwen/Qwen3-32B. An empty model is an error. An exact id is used; otherwise one case-insensitive substring match is accepted, and several matches return candidates instead of a verdict. This is not a catalog page, not the weekly report, and not the seal bytes. Reads published files only.

    mcp-tool

    {
      "type": "object",
      "required": [
        "model"
      ],
      "properties": {
        "model": {
          "type": "string",
          "description": "Hugging Face model id, org/name. Required. Empty is an error. Example: Qwen/Qwen3-32B."
        }
      }
    }
    arguments 12 lines
  • verify_seal reads unknown 22h ago

    Check a crovia.seal.v1 object or a wrapped TACET silence proof: signature, canonical bytes, bindings, and per-epoch non-inclusion paths. Pass seal as a JSON object or a JSON string, or url as an https://croviatrust.com/ address. With neither, the call is an error. Supplying url fetches that URL over the network. check_anchors defaults to false; true also checks the drand round bytes and the Bitcoin anchors over the network. A seal object with check_anchors false or omitted is checked from that object alone. This tool can reach the network, so it is not a closed-world call.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "url": {
          "type": "string",
          "description": "https://croviatrust.com/ URL of a JSON seal. Any other host is rejected. Fetching it uses the network."
        },
        "seal": {
          "type": [
            "object",
            "string"
          ],
          "description": "The seal or wrapped proof, as a JSON object or a JSON string. Omit it when url is set."
        },
        "check_anchors": {
          "type": "boolean",
          "default": false,
          "description": "Default false. True checks the drand round and the Bitcoin anchors over the network. False does not."
        }
      }
    }
    arguments 21 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id f2c72266c5f2bd1e.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/f2c72266c5f2bd1e/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/f2c72266c5f2bd1e/badge.svg)](https://brick.blue/agent/f2c72266c5f2bd1e?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we know
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.