Guard a local MCP server
A local MCP gateway that evaluates each tool call against your policy before forwarding it upstream.
unveilr proxy --server <id> -- <command> [args...]
The command after -- is the stdio MCP server being shielded. Unveilr Guard
speaks MCP to the agent, evaluates the call, and either forwards it to that
process or returns a controlled error.
Why this position matters
The gateway is the one place the tool sits authoritatively in the call path: the agent's request physically passes through it, so a denial is a denial rather than an alert. That is why enforcement claims are scoped to it.
It also defines the bypass: any agent action that does not route through this proxy is not evaluated. An agent that shells out, or talks to an MCP server you have not put behind the proxy, is outside the control. See Limitations.
Testing a policy without running anything
unveilr policy test --server <id> --tool <name> [--args JSON] [--auth aal1|aal2]
Evaluates a hypothetical call and prints the decision. This is the fastest way to answer "would my policy have stopped that?" — and the right way to develop policy, because it is deterministic and needs no agent.
Decisions are deterministic
No model is consulted. The same call against the same policy produces the same decision, which is what makes a denial explainable after the fact and a policy reviewable before it ships.
Unknown effects fail closed: an effect the binary does not recognise is treated as the most restrictive one it knows, rather than skipped. A typo in a policy therefore blocks rather than silently widening access. See Policies.