Skip to main content

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

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

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_invoke 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