MCP Tool Guard
Why it is in the ecosystem. Where we cannot instrument the venue (the Binance Agent OS class), we instrument the agent. Tool definitions are pinned by hash at approval; every call gets a verdict and a receipt, no venue permission needed.
What it is
On a closed platform we cannot stand in front of the venue, so we stand in front of the agent. Every tool the agent sees is proxied through one MCP server. The definition is canonicalised and hashed when the owner approves it, and re-hashed on every call. A tool that changed after approval is not the tool that was approved, and check 07 says so before the call runs.
Try it
pin and compare REALverdict and receipt REALtool DEMO{"name": "pay_invoice","description": "Pay a supplier invoice from the treasury wallet. Amount in USDC.","inputSchema": {"type": "object","properties": {"invoice_id": {"type": "string","description": "The invoice number, e.g. 2214."},"amount": {"type": "string","description": "Amount in USDC."},"payee": {"type": "string","description": "The supplier address on the mandate."}},"required": ["invoice_id","amount","payee"]}}
pay_invoice({
invoice_id: "2214",
amount: "120",
payee: "0x7a1F…C4b3"
})Wire it into a framework agent
One MCP server in front of the agent's tools. Every tool the agent sees is proxied, pinned and metered. Published on npm as detent-mcp, built on detent-sdk.
// claude_desktop_config.json · cursor · any mcp host
{
"mcpServers": {
"detent": {
"command": "npx",
"args": ["-y", "detent-mcp"],
"env": { "DETENT_API_KEY": "dt_test_…" }
}
}
}
// nine tools: detent_check, detent_run_workflow, detent_list_workflows,
// detent_receipt, detent_verify_receipt, detent_stats, detent_health,
// detent_pin_tool, detent_check_tool
$ npm install detent-sdk // the client and the offline verifier- pinDefinitions pinned by hashname, description and input schema, canonicalised and hashed at approval. the hash is in the receipt.
- callA verdict per callevery invocation that can move value or change state goes through the seven checks in-process.
- driftChange after approval escalatesa mutated definition is check 07's failure. STEP-UP by default; DENY where the change adds a value-moving parameter.
- venueRuns where the venue will not let uson a closed platform the guard runs on the agent itself: receipts, caps and the kill switch without the venue's permission.