Skip to main content
PUT
Error

Authorizations

Authorization
string
header
required

Management API authentication for /api/* endpoints. Use the Authorization header with Bearer <API key>. Virtual keys, dashboard/user/session tokens, and x-api-key headers are not supported on management APIs.

Path Parameters

id
string
required

MCP client ID

Body

application/json

MCP client configuration for updating an existing client (includes tool_pricing). All fields are optional; omitting a field retains its existing value (PATCH semantics). Immutable fields (connection_type, auth_type, connection_string, stdio_config, oauth_config_id) are not accepted here; they cannot be changed after creation.

name
string

Display name for the MCP client

is_code_mode_client
boolean

Whether this client is available in code mode

is_ping_available
boolean

Whether the MCP server supports ping for health checks. If true, uses lightweight ping method for health checks. If false, uses listTools method for health checks instead.

needs_session_stickiness
boolean

HTTP-only. Only meaningful for auth_type "oauth", "headers", or "none" — per-user auth types are always per-call regardless of this field. When true, Bifrost holds one persistent upstream connection, reused for every tool call. When false, a fresh connection is dialed per tool call. Cannot be set to false for connection_type "sse" or "stdio" — both are always sticky.

tool_sync_interval
integer

Per-client tool-list sync interval in minutes. 0 falls back to the global mcp_tool_sync_interval client config; a negative value disables periodic tool sync for this client.

tool_execution_timeout
integer

Per-client tool execution timeout in seconds. 0 falls back to the global mcp_tool_execution_timeout client config.

Required range: x >= 0
headers
object

Custom headers to include in requests. Only used when auth_type is "headers". Supports env./vault. references. Values echoed back redacted from a GET response are recognized and preserve the stored value, so a fetch-modify-put round trip is safe.

allowed_extra_headers
string[]

Allowlist of request-level headers callers may forward to this MCP server at execution time. ["*"] => any header may be forwarded [] => no extra headers are forwarded ["header1", "header2"] => only the specified headers

oauth_config
object

Rotates the stored OAuth configuration in place. Only accepted for auth_type "oauth" or "per_user_oauth" (400 otherwise). Any provided field replaces the stored value; no new config row is created and no re-discovery or re-registration runs. Unset fields preserve stored values: client_id/client_secret follow the SecretVar masked-placeholder convention (send back the redacted placeholder from a GET response to keep the stored secret), while empty strings / empty arrays on the remaining fields mean "not provided".

When any field actually changes, every token bound to the OAuth config is flipped to needs_reauth regardless of auth mode, shared and per-user sessions alike must re-authenticate. A round trip that resolves to the stored values is a no-op and does not cascade. Rotation cannot run while the client is (or is being) disabled (400); send those as two separate requests.

tools_to_execute
string[]

Include-only list for tools. ["*"] => all tools are included [] => no tools are included ["tool1", "tool2"] => include only the specified tools

tools_to_auto_execute
string[]

List of tools that can be auto-executed without user approval. Must be a subset of tools_to_execute. ["*"] => all executable tools can be auto-executed [] => no tools are auto-executed ["tool1", "tool2"] => only specified tools can be auto-executed

tool_pricing
object

Per-tool cost in USD for execution. Key is the tool name, value is the cost per execution. Example: {"read_file": 0.001, "write_file": 0.002} Note: Only available when updating an existing client after tools have been fetched.

allow_on_all_virtual_keys
boolean
default:false

When true, this MCP client's tools are accessible to all virtual keys without requiring explicit per-key assignment. All tools are allowed by default. If a virtual key has an explicit MCP config for this client, that config takes precedence and overrides this behaviour.

per_user_header_keys
string[]

For per_user_headers clients only. Cannot be set to an empty list. Updating this list flips every existing active per-user credential row to needs_update; callers will be sent back to the submission form on their next tool call to satisfy the new schema. The retained admin discovery credential is flipped the same way; repair it by calling POST /api/mcp/client/{id}/verify-headers with fresh sample values.

token_exchange
object

For token_exchange clients only. Omitted preserves the stored configuration. A redacted client_id / client_secret round-tripped from a prior GET is resolved back to the stored value rather than overwriting it; any other change re-scopes future exchanges and invalidates cached exchanged tokens for this client.

disabled
boolean
default:false

When true, the client's connection, health monitor, and tool syncer are shut down. The client entry is preserved so it can be re-enabled later by sending disabled: false. Disabled clients do not expose tools to inference requests.

tls_config
object

TLS configuration for HTTP and SSE connections. Not applicable to stdio or inprocess connection types.

vk_configs
object[]

When provided, replaces all virtual key assignments for this MCP client. Each entry specifies a virtual key and the tools it is allowed to call. To remove all VK access, provide an empty array []. Omit this field to leave existing VK assignments unchanged.

Response

MCP client updated successfully

Generic success response

status
string
Example:

"success"

message
string
Example:

"Operation completed successfully"