Skip to content

Consent Request

One-call consent flow: create a consent request, deliver to all available surfaces, and optionally poll + auto-resolve. The modal shows Allow always / Allow for N min / Allow once / Deny options. Without timeout_seconds: non-blocking (returns request_id for later polling via request_poll + consent_request_resolve). With timeout_seconds: blocks until user responds, then auto-resolves (writes the grant on approval, returns denial on deny). Max recommended timeout: 110s to stay within MCP limits.

MCP name: consent_request

Category: consent

Mutates state (retry policy: manual)

Parameters

Name Type Required Description
callback dict No Dispatch on approval: {capability, params}
callback_session_id str No Resume this session on approval
context dict No Optional metadata shown in the modal
default_ttl int No Default TTL in minutes for temporary grants
interval_seconds int No Seconds between polls (default: 3)
operation str Yes Operation identifier (same as @requires_consent keys)
reason str Yes Human-readable explanation
requester str No Who is requesting (e.g., sidecar:cron_cleanup)
risk str No low, moderate, or high
surfaces list[str] No Target surface names (e.g., ['dashboard']). Default: all available
timeout_seconds int No Poll timeout. Omit for non-blocking. Max recommended: 110s