CrawlCheck

Open observer protocol

Run an observer: co-sign MCP tool changes

CrawlCheck re-reads every public server in the official MCP Registry and records when a server’s tools change: a tool added or removed, or a description rewritten after agents approved the server. The records are public at /mcp/changes.

The weakness

Today every reading behind those records comes from observers CrawlCheck runs itself, so a change record rests on one operator’s word. That is the part we would like help with from networks we do not control: universities, research labs and independent operators.

What an observer does

It is one Node file with no dependencies.

  1. Enrol once. This makes an Ed25519 key that never leaves your machine.
  2. On each run, ask for tasks. A co-sign task names a server whose tools just changed. It never includes the digest CrawlCheck recorded.
  3. Read that server yourself: initialize, then tools/list. No tool is ever called.
  4. Hash the tool list the open mcp-lockfile way, sign the result with your key, and send it back.

If your digest matches ours, the change event shows confirmed by 1 independent observer. If it does not match, that is recorded too, beside ours, never averaged away. Two observers on one network count once.

What it costs you

What you can check

To start

curl -fsSO https://crawlcheck.io/observer/observer.mjs
node observer.mjs enroll --id ind:<your-name> --operator "<who runs it>" --network "<where it runs>" --contact <email>
node observer.mjs run --types page,mcp_tools     # from cron, e.g. every 20 minutes

The protocol, including the envelope and how each co-signature is verified: /docs/observer-protocol#cosign.

Our commitments

For a research group: the readings are a dataset of their own (who saw what, from where, and when). You are free to publish from them.

Questions: hello@crawlcheck.io.