← Agent-native (WebMCP)

Isolated demo · WebMCP runtime gate

Watch a gate catch what a description can't tell you.

A static scan reads what a tool declares. This gate wraps a WebMCP tool surface and judges tools by what they do: it intercepts registration, witnesses side effects at call time, blocks a hidden data-exfiltration attempt, and catches a tool that rewrites itself mid-session.

Isolated training-ground demo. These tools are NOT registered on this page's real WebMCP surface and are NOT agent-callable - they live on a private in-memory shim, so a real agent visiting this page can neither see nor call them (several are deliberately malicious). This is not a scanner: same-origin isolation makes scanning a real third-party site from the browser impossible. Nothing here ever leaves your tab.

loading the gate...

Everything on this page runs in your browser against a private in-memory shim - no Sentinel API call, no network except the demo's own mock egress to exfil.example.invalid, which the gate blocks before it is sent. Deterministic; no model calls. The gate module is loaded via a dynamic import() so its schema-validation dependency stays off the main bundle.