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.
- Enrol once. This makes an Ed25519 key that never leaves your machine.
- On each run, ask for tasks. A co-sign task names a server whose tools just changed. It never includes the digest CrawlCheck recorded.
- Read that server yourself:
initialize, thentools/list. No tool is ever called. - 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
- A machine with outbound HTTPS. A small VM or a lab box is plenty.
- A few reads an hour. At most 200 co-signatures a day per observer.
- No account, no API key and no inbound port.
What you can check
- Every co-signature is public with its signed envelope and the network it arrived from:
/api/observe/cosig?event=<id>. - Your key is listed in the observer directory.
- You can retire the observer at any time with your own key (
node observer.mjs retire). Your past readings stay listed under your name.
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 minutesThe protocol, including the envelope and how each co-signature is verified: /docs/observer-protocol#cosign.
Our commitments
- Your observer is listed under the operator name you give.
- We never edit or drop a reading of yours.
- We will tell you if we quarantine it, and why.
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.