HTTP transport
For remote agents or multi-agent shared memory, run the MCP Streamable HTTP server:
causal-memory http --port 9938
Observability endpoints
Served on the same port:
GET /metrics Prometheus text (RED + recall metrics)
GET /healthz / /readyz liveness / readiness (readiness probes the store)
GET /debug/recall?query=... run a recall now, return the full JSON trace
(seeds, hop summary, per-result provenance)
GET /debug/recalls newest-first recall audit rows (persisted,
schema v13 recall_audit table; survives restarts)
Authentication
/metrics and /debug/* expose the recall corpus, so they accept opt-in bearer auth: set CAUSAL_MEMORY_HTTP_AUTH_TOKEN (env or causal-memory setconfig) and they require Authorization: Bearer <token> (unset = open, the previous behavior).
/healthz / /readyz stay open on purpose — kubelet probes cannot send bearer headers and leak nothing. /mcp auth is not covered by the token (rmcp restricts it to loopback Host headers by default).
Warning: without the token set, do not expose the port to the public internet.
Logging
Structured JSON logs on stderr:
CAUSAL_MEMORY_LOG_FORMAT=json