Skip to main content
POST
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.

Body

application/json

MCP client configuration for creating a new client (tool_pricing not available at creation). The schema varies based on connection_type:

  • HTTP/SSE: connection_string is required
  • STDIO: stdio_config is required
  • InProcess: server instance must be provided programmatically (Go package only)
name
string
required

Display name for the MCP client

connection_type
enum<string>
required

Connection type for MCP client

Available options:
http
connection_string
string
required

HTTP URL (required for HTTP connection type)

client_id
string

Unique identifier for the MCP client (optional, auto-generated if not provided)

is_code_mode_client
boolean
is_ping_available
boolean
default:true

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
default:false

HTTP-only. Only meaningful for auth_type "oauth", "headers", or "none" (a server-level connection) — 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 or omitted (the default), 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 (or omitted) 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 (or omitted) falls back to the global mcp_tool_execution_timeout client config.

Required range: x >= 0
allowed_extra_headers
string[]

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

auth_type
enum<string>

Authentication type for the MCP connection

Available options:
none,
headers,
oauth,
per_user_oauth,
per_user_headers,
token_exchange
oauth_config_id
string

OAuth config ID for OAuth authentication. Set after OAuth flow is completed. References the oauth_configs table. Only relevant when auth_type is "oauth".

headers
object

Custom headers to include in requests. Only used when auth_type is "headers".

oauth_config
object

OAuth configuration for initiating OAuth flow. Required when creating a client with auth_type "oauth" or "per_user_oauth". This will trigger the OAuth flow and return an authorization URL (see the pending_oauth response variant).

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

allow_on_all_virtual_keys
boolean
default:false

When true, this MCP client's tools are available to all virtual keys by default, without requiring an explicit virtual key assignment. An explicit virtual key config always overrides this setting for that key.

tls_config
object

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

per_user_header_keys
string[]

Required when auth_type is per_user_headers. List of header names each end-user must supply the first time they hit this MCP server. Values are submitted per user via the inline-401 flow — never persisted on the MCP client config.

token_exchange
object

Required when creating a client with auth_type "token_exchange". Verification runs automatically as the signed-in admin (see POST /api/mcp/client/{id}/verify-exchange) — there is no sample-token field on this request.

user_headers
object

Used only at create time when auth_type is per_user_headers. A sample set of header values the admin supplies so Bifrost can run a one-time upstream verify and discover the tool list. Not persisted by the create call; each end-user submits their own values at runtime. To have Bifrost retain an admin discovery credential for periodic tool-list refresh, use POST /api/mcp/client/{id}/verify-headers, which stores the sample values as that credential.

Response

MCP client added successfully. For auth_type "oauth" and "per_user_oauth" the client is not created yet — the response is the pending_oauth variant carrying authorize_url plus status_url / complete_url / next_steps hints; the client is created when the flow is completed via complete_url.

Generic success response

status
string
Example:

"success"

message
string
Example:

"Operation completed successfully"