Docs

Security

Security

How Herald protects credentials, blocks unsafe outbound requests, and audits tool invocations.

Encryption at rest

  • Webhook URLs, API tokens, and tool secrets are encrypted with AES-256-GCM
  • Inbound hook signing secrets are also encrypted at rest
  • Plaintext secrets are never shown again after initial creation

MCP key security

  • MCP keys are stored as hashes — only a short prefix is kept for identification
  • The full key is shown once at generation; it cannot be recovered
  • Each key can be limited to selected tools (job packs use this for least privilege)
  • You can turn inbox tools on or off per key in Settings
  • Revoke compromised keys immediately from workspace Settings
  • Keys are sent as Authorization: Bearer to your workspace MCP URL

OAuth 2.1 (MCP clients)

  • Herald supports OAuth 2.1 for MCP clients (with PKCE)
  • Access tokens are short-lived; refresh tokens are hashed at rest
  • Consent lets you pick workspace, tool allowlist, and inbox access
  • HTTPS is required for OAuth redirects

IP allowlists

  • Optional per-workspace allowlist of IPs / CIDRs
  • Enforced on the MCP gateway after authentication
  • Denied requests are recorded in the audit log

Outbound request protection

Before every tool call that hits the internet, Herald blocks requests to private networks, localhost, and link-local addresses. This applies to custom tools and alert channel webhooks.

Inbound webhook verification

  • Custom Herald URLs support signing via the x-herald-secret header
  • Provider sources (Stripe, GitHub, etc.) verify their native signatures when configured
  • Disabled or suspended workspaces reject inbound traffic

Audit logs

Every MCP tool invocation records:

  • Tool name
  • Success or error status
  • Duration
  • Auth method (API key or OAuth) without exposing secrets
  • Client IP
  • Redacted request args
  • Error message (truncated) on failure

View recent logs on the workspace Overview page.

Rate limiting & plan limits

  • Monthly invocation limits enforced per workspace plan
  • Inbound hook count limited per plan
  • Gateway rate limits protect channels from runaway agents
  • Suspended workspaces cannot invoke tools or receive hooks

See plan details on the pricing page or in workspace Settings.

Team access control

Workspace routes enforce role-based access. Owners manage billing and team; admins manage integrations and keys; members can view and test. See Workspaces & team.

Production recommendations

  • Rotate MCP API keys if a key may have been exposed
  • Use a scoped key (job pack) so each agent only sees the tools it needs
  • Prefer OAuth 2.1 for clients that support it instead of long-lived Bearer keys
  • Review audit logs after connecting new tools or team members