Every tool call leaves a structured trace
Safe, audited connections between AI and your real systems.
Real audit records from the in-process Module 2 guardrail demo (mcp-template-demo). Caller is masked. Outcomes shown: ok, blocked_allowlist, invalid_input, rate_limited. The unauthorized (HTTP 401) call fails at transport auth before the guardrail pipeline, so it leaves no audit record.
Guardrail outcomes
One in-process session drives a good call and every kind of blocked call. Fail-closed order: unknown tool → allowlist → rate limit → validate → execute — a block short-circuits but is still audited.
Audit log
Every call — allowed or blocked — is one record: the tool, the outcome, sub-millisecond latency, and (for a block) the exact error the caller got back. Tap a row for the detail. The unauthorized 401 fails at transport, before the pipeline, so it leaves no record.