Skip to main content
Version: 3.4.0-rc.1

cmind/agents/v1/external_mcp_server_service.proto

Package: cmind.agents.v1

Enums​

ExternalMcpAuthType​

ValueNumberDescription
EXTERNAL_MCP_AUTH_TYPE_UNSPECIFIED0
EXTERNAL_MCP_AUTH_TYPE_NONE1
EXTERNAL_MCP_AUTH_TYPE_BEARER2
EXTERNAL_MCP_AUTH_TYPE_OAUTH_AUTHORIZATION_CODE3

Messages​

ExternalMcpServer​

FieldTypeNumberDescription
namestring1Resource name used as the model-visible tool prefix; the gateway joins it with each tool as {name}{tool}, so "" is disallowed
serverUrlstring2
sharingcmind.modelmanager.v1.Sharing3Mutated by UpdateExternalMcpServer; this service has no separate sharing RPC
displayNamestring4
authExternalMcpServerAuth5Omitted on update means no auth config change. UNSPECIFIED is invalid when present
staticHeaderNamesrepeated string6Names of Secret-backed static request headers; values are never returned

DiscoverExternalMcpServerRequest​

FieldTypeNumberDescription
serverUrlstring1
tenantIdstring2

DiscoverPlatformExternalMcpServerRequest​

FieldTypeNumberDescription
serverUrlstring1

DiscoverExternalMcpServerResponse​

FieldTypeNumberDescription
discoveryExternalMcpServerDiscovery1

DiscoverPlatformExternalMcpServerResponse​

FieldTypeNumberDescription
discoveryExternalMcpServerDiscovery1

ExternalMcpServerDiscovery​

What probing an MCP endpoint tells the caller that it cannot work out on its own. Deliberately narrow: endpoints, scopes and the resource are rediscovered on every connect (see resolveOAuthProfile), so echoing them back into a create/update would pin stale values instead.

FieldTypeNumberDescription
authTypeExternalMcpAuthType1Which auth type to store for this server.
serverNamestring2The server's own name for itself, for confirmation copy only.
dynamicClientRegistrationSupportedbool3True when the existing public-client registration path can obtain a client_id. False means the caller must supply a pre-registered client.

ExternalMcpStaticHeaderValue​

Write-only static request header stored in the credentials Secret

FieldTypeNumberDescription
namestring1RFC 9110 token
valuestring2No control characters other than tab

ExternalMcpOAuthConfig​

Non-user-specific OAuth config; access/refresh tokens are client-owned and never stored here

FieldTypeNumberDescription
authorizationUrlstring1Manual endpoint; omitted when automatic discovery is enabled
tokenUrlstring2Manual endpoint; omitted when automatic discovery is enabled
issuerUrlstring3Discovery override or fallback
clientIdstring4
scopesrepeated string5
resourcestring6
authorizationParametersmap<string, string>8Additional provider-specific authorization request parameters. OAuth protocol-owned parameters are rejected by the manager.
tokenEndpointAuthMethodstring9Confidential-client token-endpoint authentication; empty defaults to client_secret_post when a client secret is configured
clientSecretSetbool10Output only: a backend-persisted client secret is configured for this server

ExternalMcpServerAuth​

FieldTypeNumberDescription
typeExternalMcpAuthType1
oauthExternalMcpOAuthConfig2Required when type is EXTERNAL_MCP_AUTH_TYPE_OAUTH_AUTHORIZATION_CODE
apiKeySetbool3Output only: a backend-persisted API key (bearer token) is configured for this server

CreateExternalMcpServerRequest​

FieldTypeNumberDescription
externalMcpServerExternalMcpServer1
tenantIdstring2Tenant that owns the server
apiKeystring3Outbound bearer token stored as credentials
staticHeadersrepeated ExternalMcpStaticHeaderValue4Secret-backed values, never returned
oauthClientSecretstring5Confidential OAuth client secret; write-only and never returned

CreateExternalMcpServerResponse​

FieldTypeNumberDescription
externalMcpServerExternalMcpServer1

CreatePlatformExternalMcpServerRequest​

FieldTypeNumberDescription
externalMcpServerExternalMcpServer1
apiKeystring2Outbound bearer token stored as credentials
staticHeadersrepeated ExternalMcpStaticHeaderValue3Secret-backed values, never returned
oauthClientSecretstring4Confidential OAuth client secret; write-only and never returned

CreatePlatformExternalMcpServerResponse​

FieldTypeNumberDescription
externalMcpServerExternalMcpServer1

GetExternalMcpServerRequest​

FieldTypeNumberDescription
namestring1

GetExternalMcpServerResponse​

FieldTypeNumberDescription
externalMcpServerExternalMcpServer1

UpdateExternalMcpServerRequest​

name identifies the server and is immutable; ownership scope is fixed at create (set by which Create RPC was used) and cannot change here

FieldTypeNumberDescription
externalMcpServerExternalMcpServer1
apiKeystring2Outbound bearer token stored as credentials. Empty leaves the stored credential unchanged, non-empty rotates it
staticHeadersrepeated ExternalMcpStaticHeaderValue3Replaces configured static headers; values are never returned
oauthClientSecretoptional string4Confidential OAuth client secret. Omitted keeps the current value; an empty value clears it. The value is never returned.
clearStaticHeadersbool5Clears static headers when set

UpdateExternalMcpServerResponse​

FieldTypeNumberDescription
externalMcpServerExternalMcpServer1

DeleteExternalMcpServerRequest​

FieldTypeNumberDescription
namestring1

DeleteExternalMcpServerResponse​

ListExternalMcpServersRequest​

ExternalMcpServerSummary​

List view for MCP servers

FieldTypeNumberDescription
namestring1
displayNamestring2
shareToAllbool3
tenantIdstring4Owning tenant; empty means platform-owned (cluster-wide)
authTypeExternalMcpAuthType5
userAuthRequiredbool6True for oauth_authorization_code servers; the chat client must obtain a per-user token before invoking tools on this server

ListExternalMcpServersResponse​

FieldTypeNumberDescription
externalMcpServersrepeated ExternalMcpServerSummary1

GetExternalMcpServerOAuthMetadataRequest​

FieldTypeNumberDescription
namestring1

GetExternalMcpServerOAuthMetadataResponse​

FieldTypeNumberDescription
oauthExternalMcpOAuthConfig1
redirectUristring2
metadataVersionstring3
serverDisplayNamestring4Human-readable name of the service the caller is connecting to.

ExchangeExternalMcpOAuthTokenRequest​

Exactly one grant: authorization code (code, code_verifier, redirect_uri) or refresh_token. The token endpoint is resolved server-side from the registered config or discovery, never from the request

FieldTypeNumberDescription
namestring1
codestring2
codeVerifierstring3
redirectUristring4
refreshTokenstring5
metadataVersionstring6

ExchangeExternalMcpOAuthTokenResponse​

FieldTypeNumberDescription
accessTokenstring1
tokenTypestring2
expiresInint643
refreshTokenstring4
scopestring5

ListExternalMcpServerPermissionsRequest​

FieldTypeNumberDescription
namestring1
subjectTypeoptional cmind.permissions.v1.SubjectType2
roleoptional cmind.permissions.v1.DeploymentRole3

ListExternalMcpServerPermissionsResponse​

FieldTypeNumberDescription
permissionsrepeated cmind.permissions.v1.DeploymentPermission1

AddExternalMcpServerPermissionRequest​

FieldTypeNumberDescription
namestring1
subjectcmind.permissions.v1.Subject2
rolecmind.permissions.v1.DeploymentRole3

AddExternalMcpServerPermissionResponse​

RemoveExternalMcpServerPermissionRequest​

FieldTypeNumberDescription
namestring1
subjectcmind.permissions.v1.Subject2
rolecmind.permissions.v1.DeploymentRole3

RemoveExternalMcpServerPermissionResponse​

Services​

ExternalMcpServerService​

DiscoverExternalMcpServer​

POST /cmind.agents.v1.ExternalMcpServerService/DiscoverExternalMcpServer

Probes an MCP endpoint and returns the authentication settings it advertises.

Request: DiscoverExternalMcpServerRequest

Response: DiscoverExternalMcpServerResponse

DiscoverPlatformExternalMcpServer​

POST /cmind.agents.v1.ExternalMcpServerService/DiscoverPlatformExternalMcpServer

Platform-scoped variant of DiscoverExternalMcpServer.

Request: DiscoverPlatformExternalMcpServerRequest

Response: DiscoverPlatformExternalMcpServerResponse

CreateExternalMcpServer​

POST /cmind.agents.v1.ExternalMcpServerService/CreateExternalMcpServer

Creates an MCP server owned by a tenant

Request: CreateExternalMcpServerRequest

Response: CreateExternalMcpServerResponse

CreatePlatformExternalMcpServer​

POST /cmind.agents.v1.ExternalMcpServerService/CreatePlatformExternalMcpServer

Creates an MCP server owned by the platform

Request: CreatePlatformExternalMcpServerRequest

Response: CreatePlatformExternalMcpServerResponse

GetExternalMcpServer​

GET /cmind.agents.v1.ExternalMcpServerService/GetExternalMcpServer

Request: GetExternalMcpServerRequest

Response: GetExternalMcpServerResponse

GetExternalMcpServerOAuthMetadata​

POST /cmind.agents.v1.ExternalMcpServerService/GetExternalMcpServerOAuthMetadata

Returns non-secret OAuth bootstrap metadata for invokers; unlike GetExternalMcpServer this is can_read gated so the chat client can use it without admin rights

Request: GetExternalMcpServerOAuthMetadataRequest

Response: GetExternalMcpServerOAuthMetadataResponse

ExchangeExternalMcpOAuthToken​

POST /cmind.agents.v1.ExternalMcpServerService/ExchangeExternalMcpOAuthToken

Server-side token exchange and refresh; confidential client secrets are read from backend storage and never leave the backend

Request: ExchangeExternalMcpOAuthTokenRequest

Response: ExchangeExternalMcpOAuthTokenResponse

UpdateExternalMcpServer​

POST /cmind.agents.v1.ExternalMcpServerService/UpdateExternalMcpServer

Request: UpdateExternalMcpServerRequest

Response: UpdateExternalMcpServerResponse

DeleteExternalMcpServer​

POST /cmind.agents.v1.ExternalMcpServerService/DeleteExternalMcpServer

Request: DeleteExternalMcpServerRequest

Response: DeleteExternalMcpServerResponse

ListExternalMcpServers​

GET /cmind.agents.v1.ExternalMcpServerService/ListExternalMcpServers

The handler returns every server the caller can invoke, tenant-owned and platform-owned

Request: ListExternalMcpServersRequest

Response: ListExternalMcpServersResponse

ListExternalMcpServerPermissions​

GET /cmind.agents.v1.ExternalMcpServerService/ListExternalMcpServerPermissions

Request: ListExternalMcpServerPermissionsRequest

Response: ListExternalMcpServerPermissionsResponse

AddExternalMcpServerPermission​

POST /cmind.agents.v1.ExternalMcpServerService/AddExternalMcpServerPermission

Request: AddExternalMcpServerPermissionRequest

Response: AddExternalMcpServerPermissionResponse

RemoveExternalMcpServerPermission​

POST /cmind.agents.v1.ExternalMcpServerService/RemoveExternalMcpServerPermission

Request: RemoveExternalMcpServerPermissionRequest

Response: RemoveExternalMcpServerPermissionResponse