Skip to main content
Ultra’s audit interceptor records security-relevant events for every MCP operation. The audit log provides a compliance-ready trail of who did what, when, and whether it was allowed.

Audit Event Structure

FieldTypeDescription
idstringUnique event identifier
trace_idstringLinked trace ID (if applicable)
event_typestringEvent classification (see below)
severitystringinfo, warning, error, critical
upstreamstringUpstream server involved
actionstringThe tool/resource/prompt name or action
principalstringClient/user identifier
outcomestringallow, deny, error, success, failure, canceled
reasonstringWhy (for deny/error outcomes)
detailsmapFlexible key-value context
timestampdatetimeWhen the event occurred

Multi-Tenant Fields

FieldDescription
workspace_idWorkspace context
gateway_idGateway that recorded the event
organization_idOrganization context
user_idUser who performed the action
user_emailUser’s email address
user_nameUser’s display name

Event Types

Event TypeWhen It’s Recorded
tool_callAn MCP tool was called
resource_readAn MCP resource was read
prompt_getAn MCP prompt was retrieved
policy_denyA policy denied a request
policy_allowA policy explicitly allowed a request
auth_failureAuthentication failed
auth_successAuthentication succeeded
config_changeConfiguration was modified
server_startUltra server started
server_stopUltra server stopped
upstream_connectConnected to an upstream server
upstream_disconnectDisconnected from an upstream server
errorAn error occurred

Severity Levels

LevelDescriptionExamples
infoNormal operationsTool calls, resource reads
warningPotential issuesAuth token expiring, slow responses
errorFailuresUpstream connection errors, tool failures
criticalSecurity eventsAuth failures, policy denials

Outcomes

OutcomeDescription
allowOperation was permitted
denyOperation was blocked
errorOperation failed with an error
successOperation completed successfully
failureOperation did not complete
canceledOperation was canceled

Fail-Closed Behavior

The audit interceptor is the only built-in interceptor that fails closed on response processing. If the audit event can’t be recorded after a successful upstream operation, the entire call fails. This ensures audit trail completeness — there’s no way for an operation to succeed without being recorded.
BeforeRequest:  Fail open  (doesn't block requests)
AfterResponse:  Fail closed (blocks if audit write fails)
This is a deliberate security design choice. For compliance-sensitive deployments, it guarantees that every successful operation has a corresponding audit record.

Querying Audit Events

Dashboard

The web dashboard provides an audit log viewer with filtering:
ultra dashboard

Query Options

Audit events can be filtered by:
  • Event type, severity, outcome
  • Upstream server
  • Principal (client identity)
  • User ID, organization ID
  • Time range
  • Workspace and gateway (for Hub deployments)