Skip to main content
Passport can stream each workspace’s audit and security events to your own SIEM and to an OpenTelemetry collector. Each workspace reads its own targets, so a tenant’s events only ever go to that tenant’s endpoints. Export is available on the Enterprise plan.

Configure the targets

Both targets are set per workspace in Settings. Enter one or both:

SIEM HTTP endpoint

An HTTP intake for a SIEM such as Splunk, Datadog, or Microsoft Sentinel. Passport POSTs a JSON body of the shape { "source": "mcp-passport", "events": [ ... ] }.

OTLP endpoint

An OpenTelemetry collector base URL. Passport POSTs OTLP/JSON logs to <endpoint>/v1/logs, one log record per event, with a resource attribute service.name = mcp-passport.
Both endpoints are validated when you save them and again every time they fire. In production they must be public HTTPS endpoints. Passport resolves the host and refuses private, loopback, link-local, and cloud-metadata addresses, and re-checks across any redirect it follows.

Delivery behavior

Export is durable and causal, tuned so a slow or down endpoint never affects the gateway hot path.
  • The authoritative audit or security event and one delivery row per configured target commit together. Passport never acknowledges the governed request while only half of that state is durable.
  • SIEM, OTLP, and alert-webhook rows are acknowledged independently. A successful SIEM request is not repeated merely because the OTLP collector is unavailable.
  • Each row keeps one stable delivery ID across retries and sends it as the HTTP idempotency-key, closing the provider-accepted/process-restarted window for destinations that honor idempotency keys.
  • A cross-replica workspace claim ensures two Passport replicas do not intentionally deliver the same row concurrently. Delivery is at least once across process loss, restarts, and rolling deploys.
  • Rejections back off from one second to one hour. Each row snapshots a content-free destination generation. A mismatching rolling replica defers the row for a persisted six-hour retirement window so the generation that owns it can drain it. A continuously removed or replaced target then becomes explicit destination-removed or destination-reconfigured terminal evidence; it is never reported as provider-accepted and never replays merely because a target is later re-enabled.
  • After the retry window, Passport replaces the delivery payload with content-free dead-letter evidence. The authoritative audit or security event follows its separate retention policy.
Delivery health is surfaced, not hidden. Aggregate queue depth, oldest age, target outcomes, bounded-batch saturation, warnings, and recovery transitions come from durable storage without recipient, member, or workspace labels.
Separately from the full event stream, a workspace can set an alert webhook URL (Slack-style) that receives a one-line JSON payload when a guardrail fires or an app’s tool set changes. The alert authority and its webhook row share the same request commit, and webhook acknowledgement is independent of SIEM and OTLP. You can send a sample alert from Settings to verify the wiring before a real event. It is validated the same way as the export endpoints.