Outbound binding elements
Two canvas elements bind outbound context to upstream requests. Credential Delegation injects cached OAuth or API key tokens from a credential provider into calls on the caller’s behalf. Workload Binding binds the managed-agent identity and selected caller-context claims into the outbound Verifiable Presentation injected on an outbound edge.
Credential Delegation
The Credential Delegation element binds external credential providers (OAuth, API key) to a surface so the gateway attaches cached tokens to outbound calls on the caller’s behalf. When no token is held for a given caller, the gateway signals consent_required back rather than forwarding the request.
Drop it on the Managed Agent → External request edge. One element per surface (singleton).
Credential delegation requires both a Caller Context element and at least one Identity element to be configured on the surface. The gateway binds tokens to an authenticated caller identity and a managed-agent workload. Both are required.
Fields
Each row in the outbound credential binding list configures one credential provider.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| Credential Provider | select | Yes | — | The credential provider supplying the token. Select from providers on the Credential Providers tab of the Credentials page. |
| Scopes | string | No | — | Space- or comma-separated OAuth scopes to request when acquiring a token for the caller. |
| Consent Mode | select | No | On demand | How the gateway handles a missing token. Options: On demand (signals consent_required back to the caller), Pre-authorize (blocks the request until consent is granted), Elicit (sends an MCP elicitation prompt to the caller). A binding set up through the API shows External consent (set through the API) and is read-only. See External consent. |
| Elicit timeout (seconds) | integer | Yes (when Consent Mode = Elicit) | 300 | Seconds to wait for the caller to complete the elicitation prompt. A declined, cancelled, or timed-out prompt refuses the tool call with 503 and JSON-RPC error -32603. |
| Fallback when client doesn’t support elicitation | select | Yes (when Consent Mode = Elicit) | On demand | What the gateway does when the caller does not support elicitation. Options: On demand (signal consent_required), which falls back to the On demand flow, and Fail (return not_applicable), which refuses the tool call with 503 and JSON-RPC error -32603. Under Fail, a prompt that can’t be delivered, for example because the client has no open stream, is refused the same way. |
| Required For | select | No | All outbound requests | Which requests trigger credential injection. Options: All outbound requests, Specific MCP tools only. See Where each binding applies. |
| Tool names | string | Yes (when Required For = Specific MCP tools only) | — | Comma-separated MCP tool names, entered in the field shown below Required For. The gateway injects the credential only on a tools/call that names one of these tools. |
| Inject As | select | No | Bearer header | How the token is attached to the outbound request. Options: Bearer header (Authorization: Bearer <token>), Custom header (a named HTTP header), JSON-RPC _meta (a field in the JSON-RPC _meta object). |
| Header name | string | Yes (when Inject As = Custom header) | — | The HTTP header name to write the token into. |
| Header format | string | No (when Inject As = Custom header) | token {value} | Template for the header value. {value} is replaced with the token at injection time. |
| Meta field name | string | Yes (when Inject As = JSON-RPC _meta) | — | The _meta field name to write the token into. |
Where each binding applies
A binding carries no destination, so where it applies depends on the hop the request takes:
- Requests to the surface’s Target: every binding applies. A Specific MCP tools only binding applies to a
tools/callthat names one of its tools, and to no other MCP method. - Requests this surface receives over Fabric from a connected gateway: the same rule applies, because a receiving surface forwards only to its own Target.
- Requests through a Transit Point: All outbound requests bindings apply, and tool-scoped bindings (Specific MCP tools only) stay with the Target, because a partner upstream names its own tools and a matching name could belong to a different tool. Every Transit Point on the surface receives each All outbound requests binding, so use that setting only when every Transit Point’s upstream should hold the credential.
The surface’s Target uses these bindings alone, and each Transit Point’s own credential stays with that Transit Point. For how a Transit Point uses its own Inject outbound credential setting, see Transit Points.
A Transit Point that receives a binding refuses a request with 403 when it has no agent identity or when the transit token names no caller. See Requirements for a Transit Point with delegated credentials.
External consent
An external consent binding takes its grants from another system that runs the consent flow, so it is created through the API. In the element it shows read-only, with External consent (set through the API) as its Consent Mode. On a surface’s Target it must be the only binding, on a surface without Transit Points. Changing or removing the binding revokes its grants.
Credential that cannot be resolved
When a binding applies but its credential cannot be resolved, the gateway refuses the request with 503 instead of forwarding it without the credential. This happens when the credential provider is deleted or cannot be read, an API key secret cannot be read, a client credentials token request fails, the stored token cannot be read, or consent cannot be asked for. On an MCP surface the refusal is a JSON-RPC error with code -32603 and the message Delegated credentials unavailable. On other surfaces it is a problem JSON body with the same message.
Delegated credentials over Fabric
When the Target or a Transit Point routes to a connected gateway (via Gateway Connection), the delegated access token reaches the remote gateway only when Send delegated credentials over Fabric is on for that route. The switch is off by default and is set per route, on the Managed Agent panel for the Target and on each Transit Point. With it off, the remote gateway receives no delegated credential. The refresh token always stays on this gateway.
Workload Binding
The Workload Binding element binds the managed-agent identity and a chosen set of caller-context claims into the outbound Verifiable Presentation (agent-identity-credential/v1) injected on an outbound edge. A downstream Agent Gateway can then verify which workload is acting and on whose behalf it is acting.
Drop it on a Managed Agent → Transit Point or Managed Agent → External edge. Each Transit Point or target leg can carry its own Workload Binding configuration. For setup steps, see Bind caller identity to your agent’s outbound calls.
Fields
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| Enable workload binding | bool | No | On | Activates the binding for this Transit Point or target leg. When off, no VP is injected. |
| Caller context source | select | No | Transit token | Where caller claims are read from. Options: Transit token (claims from the signed transit token presented to this Transit Point), Authorization bearer JWT (claims from the inbound Authorization: Bearer JWT), DID authentication (the resolved DID from a DID-authenticated session becomes the caller identity; requires the Caller Context element on this surface to use the DID Auth method). On the MA → External leg, Transit token is not offered since there is no transit token on that leg; the choice there is between Authorization bearer JWT and DID authentication. |
| Caller field allowlist | string[] | No | [] | Top-level caller claim names copied into the binding VP. Only listed names cross the boundary. Leave empty to bind no caller claims. Nested paths (a.b) are not supported. |
| Chain caller-supplied credentials | bool | No | Off | When on, a caller-presented VC or VP is chained into the binding VP so the downstream gateway sees the full delegation chain. |
Related
- Caller Context element: required dependency for Credential Delegation, and for Workload Binding when Caller context source is set to DID authentication.
- Identity element: required dependency for Credential Delegation; the Managed Agent → Transit Point placement populates the managed-agent identity used by Workload Binding.
- Transit Points reference: the outbound edge that carries the bound VP.
- Carry caller claims through your managed agent: choosing the Caller field allowlist for a Transit Point that uses the Transit token source.
Glad to hear it. Thanks for letting us know.
Sorry to hear that. Thanks for letting us know.
Still stuck? Ask the community on Discord or contact us.