Execution pattern
Control MCP egress
Decide what leaves before it leaves, at the tool-call boundary.
- Category
- InfrastructureCommon in SaaS & platforms · Healthcare · Fintech & payments · Public sector
- Works through
- aws · claude code · codex · copilot +2 more
- Proof
- Signed Decision DossierVerifiable against our published JWKS.
- Deploy
- Shadow Mode firstMeasure on your own traffic before anything is stopped.
What executes
An agent calls a tool that reaches a network destination, uploads a file, or posts data to a third party.
What normally goes wrong
Egress is invisible until it is a disclosure. The model did not decide to exfiltrate; it composed two allowed capabilities into one that nobody sanctioned.
The decision
The signals available at the moment of the action, and the rule that judges them.
Signals
- Destination host and whether it is on an allowlist
- Classification of the data in the payload
- Whether the tool was approved for this actor
- Prior calls in the same session
The gate
Permit egress only to destinations on the allowlist, and refuse any payload carrying classified data regardless of destination.
The tool call proceeds to an approved destination.
An unrecognised destination waits for someone to sanction it.
The call does not leave; the dossier records what would have been sent.
No policy pack decides this pattern yet
Write the gate above as your own policy: a repository policy file, or a bundle in your workspace.
Prove it, then deploy it
A verdict you cannot check is an opinion, and a gate you cannot measure first is a risk of its own.
View the signed proof
Every verdict on this pattern produces a Decision Dossier: the signals it saw, the policy version that judged them, and an Ed25519 signature anyone can check against our published JWKS — without an account, and without trusting us.
Deploy in Shadow Mode
Run this gate against your own traffic while it stops nothing. You get the verdicts it would have returned and the actions it would have held, so the decision to enforce is made on your numbers rather than ours.
Related patterns
Teams that hit this one usually hit these next.
Related concepts
This pattern is one answer to each of these.
AI Egress Control
How do I stop an AI agent sending data where it should not?
MCP Security
How do I enforce a policy on MCP tool calls?
Agent Permissions
How do I decide what an AI agent is permitted to do?
Permission Fatigue
Why doesn't approving every AI agent action work?
Pre-Execution Authorization
Can an action be authorized before it runs rather than reviewed after?
What to do next
The same five steps for every pattern in the library.
- Simulate this recipe
Run the policy against a realistic action in the browser. Push it past what the rules allow and watch the verdict come back. No account.
- View the signed Decision Dossier
See exactly what was decided and why: the rule that fired, the evidence it read, the policy version in force, and an Ed25519 signature you can verify yourself.
- Deploy in shadow mode
Measure what the policy would have caught on your own traffic without touching the live path. Every recipe defaults to shadow, so the first deployment carries no execution risk.
- Connect a real workflow
Point the same policy at the system where the action actually originates — a checkout, an ERP posting, a Zap, an agent's tool call.
- Share the verified result
Publish the proof: a public verification link, an embeddable badge, a PR comment, or an anonymized shadow-mode finding. This is how the next person discovers Decionis.
