Skip to content
GitHub ↗

Security

Page output is untrusted data — never instructions, never prompt material. Tool descriptions, schemas, and return values arrive attacker-controlled. The engine marks every execute envelope untrusted: true so the bit travels with the data, not just the docs.

Untrusted page data

Deliberate writes

register, unregister, and close need --yes on the CLI. There is no silent-writes mode — the flag is the confirmation. Consequential authored tools go one further: consequential: true in the spec needs host confirmation at call time, and readOnlyHint never bypasses it. Consequential tools also skip fixture auto-proof: hand-prove those, never auto-run.

Process and file guards