Your agent
policed locally.
zero cloud routing.

Context Fence sits between your AI agent and its MCP tools on your own machine. Every action a schema check, not an LLM judge, so it stays under 10ms. Nothing leaves your machine. That is the point.

// why this exists

One agent read a .env file.
Keys went out the door.

The July 18 incident — what happened, why the usual fix doesn't fix it, and where the guard actually lives.

On July 18, a coding agent read the .env file it was never asked to open, then sent what it had read across the wire. The keys left the machine inside an API payload. The usual fix a cloud gateway and a vendor's deny-list would have hoped for the best: every call leaves your machine first. Ours doesn't. The guard lives where the agent lives: a gate at the boundary. Nothing leaves.

keep scrolling — the words come in

00:0201the incident

The agent did what agents do.

Everything it was asked — including the parts nobody asked for. Nothing on the machine objected. The keys left inside an API payload.

00:0602the wrong response

Cloud gateway, hope, and a vendor's list.

Route all agent traffic through a cloud gateway and hope the vendor's list of bad things is good enough. Every call leaves your machine first.

00:1003the right response

The guard lives where the agent lives.

On your machine, checking every call before it happens — at the speed of a schema check, not at the speed of a jury.

// capabilities

What the proxy checks
before every call

Each MCP request is checked against local YAML rules before it reaches a tool. No exfil channel, no central server to trust.

local yaml·<10ms·sqlite·zero egress
01

YAML policy engine

Allow- and deny-lists written in YAML, not code. No SDK, no plugin API to learn. Edit the file, the proxy picks it up.

02

Secret stripping

Values that look like keys, env vars, or JWTs are redacted from agent reads before they reach the model. If it walks like a token, it does not pass.

03

Prompt-injection detection

Instructions hiding in tool output get flagged before the agent can act on them. The point is to catch the payload the page already read.

04

Audit log

Every decision, allowed or denied, lands in a local SQLite log with the rule that fired. Findable after the fact, the way incident postmortems need.

05

Local-only execution

The proxy runs on your machine and talks to nobody. Uninstall it and nothing else changes; there is no account to deactivate.

06

Hosted control planeRoadmap

A web console for policies across a fleet and synced audit logs. It is on the roadmap, not in the box. Local-only works today without it.

// case studies

Where it is being tested

No live customers yet. These are the four shapes of shop we built it for, with what internal testing showed so far.

01file · agency-mcpinternal test

agency mcp

Agency running client MCP servers

the problem

One team of agents was the attack surface for a dozen client repos at once. One wrong read, and the client's secrets move with it.

what the fence did

Per-client policy files on a shared machine, so a denial for one repo is not overruled by another repo's rules.

the finding

Every denied call logged with the rule that fired. The agents run exactly as before.

per-client policiesevery denial loggedzero agent changes
02file · solo-claudeinternal test

solo claude

Solo dev shipping with Claude Code agents

the problem

One person, one machine, an agent with broad tool access, and production keys in env vars that have to stay in env vars.

what the fence did

Default-deny on the risky calls: git push to non-allowlisted remotes, writes outside the project, reads of env files.

the finding

Tripped the fence in the first hour. The SQLite log named the rule and the line of output.

tripped in hour onedefault-denysqlite log
03file · mcp-gatewayinternal test

mcp gateway

Gateway fronting every MCP endpoint they expose

the problem

A production gateway with MCP endpoints pointed at internal files. One missing allowlist entry read like an open door.

what the fence did

Each tool got a per-session allowlist. Requests outside it were denied before any tool code ran.

the finding

The denied requests showed up in the log as one repeating line: the same probe, four different paths.

per-session allowlistsdenied before tools runprobes logged
04file · repl-authinternal test

repl auth

A REPL that could reach the vault

the problem

A REPL with a path into the vault. The first command anyone ran was: try to read the auth file.

what the fence did

Commands outside the session scope were refused. The vault path never reached the model.

the finding

The refusal arrived as plain text in the REPL. No retry, no workaround, no special case.

session-scoped commandsvault never reachedplain-text refusal

bench notes · july 2026

// pricing

Free at the edge. Paid when you want a console.

The local core is free and it works today. Paid plans run on the hosted console — policy sync and audit aggregation only, never your traffic — and the prices below are the plan.

Free

ships today
$0
₹0 forever · local core
Full engine as-is — local MCP policy proxy, YAML rules, secret stripping + injection detection
3 enforcement nodes max
7-day audit retention
Slack alerting
CSV export
Public template registry
Start for free

Enterprise

coming soon
$2,500
per month · single clean floor
Everything in Teams
Unlimited nodes · 1-year+ audit retention
SSO / SAML + IdP-driven policy assignment, granular RBAC
Tamper-evident audit log (hash chaining)
Compliance report generation — SOC 2 / ISO 27001 / EU AI Act evidence packs
Incident replay — reconstruct exactly what an agent did
Support SLA
Contact uscoming soon · planned pricing

Prices are planned for the hosted console, which is still in build. The local core is free and ships today. Prices are shown in your local currency, converted from USD. Read how data is handled in the privacy policy. privacy policy.

// faq

Questions a security engineer actually asks

Five answers, no hedging. If we have not shipped it yet, we say so.

No. The proxy runs locally and every policy check happens locally. The only thing that leaves your machine is what your tools send on their own. The hosted control plane, when it ships, is opt-in and syncs the audit log only.
Under 10ms per call. It is a schema match against local YAML rules, not a prompt to an LLM judge. A hundred calls a minute stays imperceptible.
Destructive tool calls, filesystem escape outside the project, connections to non-allowlisted domains, secret leakage — keys, env vars, JWTs — and prompt-injection payloads hiding in tool output.
They route your agent traffic through their cloud to inspect it. We do the inspection on your machine and route nothing anywhere. If your threat model dislikes putting secrets through a third party, that difference is the product.
The local proxy is free and it is the core of the product. The paid piece is the hosted control plane — fleet policy sync, audit aggregation, retention — which is policy sync and audit aggregation only; it never routes your agent traffic. It is not built yet.
// newsletter

Subscribe to the newsletter

One honest issue a month: what the fence blocked, what agents did next, and the occasional early-access invite before the crowd.