Skip to main content
POST
Register

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Authorization
string
header
required

This API uses OAuth2 with the Client Credential flow. Client Credentials must be sent in the BODY, not the headers. For an example of how to implement this, refer to the c1TokenSource.Token() function.

Path Parameters

app_id
string
required

App to register the MCP server under. When empty and app_managed_state_binding_ref is not set, a new managed app is created automatically.

Body

application/json

MCPServerServiceRegisterRequest creates a new MCP server (Connector + config).

acknowledgedFindingIds
string[] | null

finding_ids from the diagnostic the admin acknowledged. Each must cover a blocking-relaxable finding on oauth_diagnostic_id.

appManagedStateBindingRef
App Managed State Binding Ref · object | null

The AppManagedStateBindingRef message.

dataSensitivity
enum<string>

Data sensitivity classification.

Available options:
MCP_SERVER_DATA_SENSITIVITY_UNSPECIFIED,
MCP_SERVER_DATA_SENSITIVITY_PUBLIC,
MCP_SERVER_DATA_SENSITIVITY_INTERNAL,
MCP_SERVER_DATA_SENSITIVITY_CONFIDENTIAL,
MCP_SERVER_DATA_SENSITIVITY_RESTRICTED
description
string

Admin-provided description.

displayName
string

Admin-provided display name.

externalConfig
Mcp Server External Config · object | null

MCPServerExternalConfig configures an external MCP server accessed via HTTP transport. The server is routed through the MCP gateway for credential decryption.

This message contains a oneof named auth_config. Only a single field of the following list may be set at a time:

  • none
  • bearerToken
  • oauth2
  • customHeader
  • basicAuth
hostedConfig
Mcp Server Hosted Config · object | null

MCPServerHostedConfig configures a hosted MCP server backed by the MCP gateway.

This message contains a oneof named auth_config. Only a single field of the following list may be set at a time:

  • none
  • bearerToken
  • oauth2
  • customHeader
  • googleServiceAccount
  • awsSigv4
  • basicAuth
oauthDiagnosticId
string

When registering a DCR (client_id_mode=DCR) hosted server, the id of the diagnostic returned by DiscoverMCPOAuthConfig that the admin reviewed. When set, the server uses that diagnostic as the canonical discovery result and relaxes only the acknowledged findings. Empty preserves the strict path.

serverType
enum<string>

The type of MCP server being registered.

Available options:
MCP_SERVER_TYPE_UNSPECIFIED,
MCP_SERVER_TYPE_HOSTED,
MCP_SERVER_TYPE_EXTERNAL
toolPrefix
string

Optional prefix for tool names in the C1 MCP server. Tools are exposed as "<tool_prefix>_<tool_name>". When empty, the system uses an auto-derived prefix (service name or hostname).

tunnelApplianceId
string

ID of the bridge (TunnelBridge.id, a KSUID) that proxies this server. Only set when tunneled == true; must match a bridge enrolled for this tenant. The server resolves this at register time to an active credential and persists that on the connector config; runtime routing through the wormhole requester is keyed on the resolved credential.

Cross-field invariant: proto validation uses ignore_empty:true so an empty value passes the regex check. The service layer enforces that this field is non-empty whenever tunneled==true (see applyTunneledRegisterResolution).

tunnelPath
string

Endpoint path on the appliance-side MCP server (e.g. "/sse", "/mcp"). Only used for EXTERNAL servers when tunneled == true: the service synthesizes external_config.url as http://<tunnel_service_name><tunnel_path>, since the tunnel host is the announced service name and only the admin knows the path. Empty defaults to "/". Ignored for HOSTED and non-tunneled.

tunnelServiceName
string

Service name as declared by the appliance via AnnounceServices. Required when tunneled == true (for both EXTERNAL and HOSTED). The frontend populates this from a dropdown of services the picked appliance has announced. At runtime, mcp-gateway uses this name as the wormhole port-name argument to DialByName.

tunneled
boolean

Whether the MCP server is reached over a tunnel to a private appliance instead of a public URL.

userIds
string[] | null

Integration owners for the MCP server connector.

Response

200 - application/json

MCPServerServiceRegisterResponse returns the newly created MCP server.

MCPServerServiceRegisterResponse returns the newly created MCP server.

mcpServer
Mcp Server View · object | null

MCPServerView is the API representation of an MCP server (backed by a Connector).