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.
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.