Low-risk calls keep moving.
Proxy inspects, Brain and policy agree, upstream executes, and the ledger stores the allow verdict plus outcome.
Every tool call crosses the same control plane before any upstream side effect. Any layer can veto; every decision is written to a replayable chain.
Proxy inspects, Brain and policy agree, upstream executes, and the ledger stores the allow verdict plus outcome.
The proxy parks the request as Pending; Slack or Teams approval releases it, while expiry fails closed.
Brain, policy, velocity, or HIL veto ends the request before credentials are injected or the side effect fires.
mTLS ingress · Vault credential injection · coordinator
Agents authenticate with client certs. Real credentials never touch the agent — the proxy injects them into upstream calls only after the verdict resolves.
Three‑signal semantic eval
CLAVENAR_BRAIN_MODELS_FILE).The inspector is a different model from your agent's primary LLM. Compromising one doesn't compromise the other.
Pure‑Rust Rego · velocity circuit breaker
Your existing Rego policies, evaluated in‑process. Per‑agent velocity tracker (in‑memory or NATS‑KV for multi‑instance) catches runaway loops and credential‑harvesting bursts.
Human approvals for the dangerous bits
Yellow‑tier tools (wires, prod writes, mass emails) park as Pending. Approvers click Approve in Slack or Teams. Expired requests fail closed. The agent waits.
SHA‑256 hash‑chained forensic store
Every verdict, every approval, every upstream outcome — written in canonical JSON, chained to the prior entry. Tamper a row and /verify tells you which one. Cold‑tier export ships signed Parquet manifests to S3 for seven‑year retention.
| Component fault | Default posture | Operator signal |
|---|---|---|
| Semantic engine unavailable | Do not silently skip inspection; use an explicit fallback or hold the request. | Brain health and per-request evidence show degraded inspection. |
| Policy store unavailable | No policy verdict, no upstream release. | Proxy surfaces a policy-decision fault instead of an allow. |
| HIL channel unavailable | Yellow requests remain pending until approval or expire closed. | Queue and notification health identify the stuck channel. |
| Ledger append unavailable | The decision is not treated as complete proof. | Operator sees a proof-path fault and can replay by correlation ID. |
| NATS-KV unavailable | Single-instance velocity still protects the process; fleet-wide breaker waits for KV health. | Velocity health shows local vs. shared-window state. |
The proxy receives the tool call, parks it, resolves Brain, policy, and HIL, and only then releases the upstream call. The correlation ID ties every row together for later audit.
POST /mcp/tools/call
{
"tool": "refund.issue",
"amount": 8500,
"customer_id": "cus_9d2",
"correlation_id": "demo-sentinel-003"
}
verdict: Pending -> Approved -> UpstreamCalled
proof: /audit/correlation/demo-sentinel-003
Single binary in front of a local MCP server: proxy, policy, and ledger for developer workflows.
Full stackProxy, Brain, policy, HIL, ledger, NATS, Vault, and evidence stores for production agents.
Evidence storageHash-chain rows plus signed exports and manifests for long-retention compliance review.