
Security News
Happy Birthday, Shai-Hulud
It has been one year since Shai-Hulud made its first appearance on npm.
The Utuh watcher as an MCP server: sweep bonded completeness claims on Creditcoin CC3 Testnet against Ethereum, and refute an incomplete one for half its bond. Five tools, no account, no server — an AI agent can hold the watcher role.
The Utuh watcher as a Model Context Protocol server, so an AI agent can hold the role. Utuh bonds the claim that a set of source-chain events is complete; anyone who proves one omitted event takes half the bond. This server is the "anyone".
No clone, no key, no build: every client below runs npx -y utuh-mcp and gets the same server.
Add "env": { "PRIVATE_KEY": "0x…" } to the entry only if you want refute_claim to be able to
send; the other four tools read the chain and spend nothing.
Claude Desktop — claude_desktop_config.json (Settings → Developer → Edit Config), or install
utuh-mcp.mcpb from the releases with one click:
{ "mcpServers": { "utuh": { "command": "npx", "args": ["-y", "utuh-mcp"] } } }
Claude Code:
claude mcp add utuh -- npx -y utuh-mcp
Cursor — .cursor/mcp.json in the project, or ~/.cursor/mcp.json for every project:
{ "mcpServers": { "utuh": { "command": "npx", "args": ["-y", "utuh-mcp"] } } }
VS Code — .vscode/mcp.json in the workspace (Copilot agent mode):
{ "servers": { "utuh": { "type": "stdio", "command": "npx", "args": ["-y", "utuh-mcp"] } } }
Any other client — it is a stdio server: run npx -y utuh-mcp and speak JSON-RPC on its
stdin and stdout. It is listed in the official MCP Registry as io.github.PugarHuda/utuh-mcp.
Five tools, each the same function the daemon and the live console run:
nextCursor for the next pageconfirm: true and a
funded PRIVATE_KEY — everything else needs no key and spends nothing)Every tool answers in prose and as structuredContent validated against its outputSchema, so
a client can hand the verdict to code. Every tool carries its annotations, so a client knows which
four only read and which one sends a transaction that slashes a real bond. A sweep, an audit and a
refutation report each step as a logging notification and, when the call carried a progress token,
as progress. A failure the caller can act on — no such claim, no usable endpoint — comes back as an
isError result with an explanation rather than a JSON-RPC error.
Claims are addressable as resources too, so an agent can hold one as context instead of re-reading
a paragraph: utuh://tally, utuh://claims/{deployment}, utuh://claim/{deployment}/{id} —
live JSON, read from the same contracts. The templates list their deployments and complete their
variables, so a picker offers sepolia, mainnet, and then the claim ids that exist.
The watcher's job is written down as two prompts: hold_the_watcher_role sweeps every claim still
inside its window and reports the gaps without spending anything, and weigh_a_refutation takes
one claim from finding to decision — confirm the gap, lay out the bond and the reward, and send only
on an explicit yes. The server's instructions at initialize say the same in five sentences,
for a client that never reads a prompt.
utuh-mcp runs on your machine and keeps nothing. It collects no telemetry and stores no data between
runs. Every tool reads public chain state over JSON-RPC from Creditcoin CC3 Testnet and public
Ethereum endpoints; those endpoints see your IP address and the requests, as any RPC provider does,
and sweep_claim and audit_attestors name the endpoints they used in their results. The only
secret it can hold is PRIVATE_KEY, which you supply, which is read from the environment, never
written anywhere, and used only by refute_claim after confirm: true. Nothing is shared with the
authors or any third party. Questions: open an issue at https://github.com/PugarHuda/utuh or use
the contact in that repository's SECURITY.md.
The first MCP client ever connected to this server found the gap in a standing claim and refuted it — a real slashed bond, during its own smoke test.
FAQs
The Utuh watcher as an MCP server: sweep bonded completeness claims on Creditcoin CC3 Testnet against Ethereum, and refute an incomplete one for half its bond. Five tools, no account, no server — an AI agent can hold the watcher role.
The npm package utuh-mcp receives a total of 49 weekly downloads. As such, utuh-mcp popularity was classified as not popular.
We found that utuh-mcp demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
It has been one year since Shai-Hulud made its first appearance on npm.

Research
/Security News
Operators behind PolinRider used a compromised GitHub account to plant malware in four development versions of a Packagist package with 700,000+ downloads.

Security News
GitHub Actions now supports cache-mode, a least-privilege control on the Actions cache aimed at the cache poisoning technique behind recent compromises.