Skip to main content
PUT
Create or replace an External MCP Connection by stable key

Headers

If-Match
string<date-time>

Existing connection updatedAt timestamp required by the caller for conditional replacement.

Path Parameters

externalKey
string
required

Client-chosen stable identifier, unique per organization. Immutable.

Pattern: ^[a-z0-9][a-z0-9._-]{0,127}$

Body

application/json
name
string
required
Required string length: 1 - 255
url
string<uri>
required
Maximum string length: 2048
authType
enum<string>
required
Available options:
oauth,
apikey,
none
kind
string
Allowed value: "external_mcp"
credentialMode
enum<string>
default:shared
Available options:
shared,
per_member
exposeDirectly
boolean
default:false
apiKey
string
Required string length: 1 - 4096
oauthClient
object
authorizationServerIssuer
string<uri> | null
Maximum string length: 2048
requestedScopes
string[]
Maximum array length: 100
Required string length: 1 - 255
access
object

Response

Connection updated.

id
string
required
name
string
required
externalKey
string | null
required
url
string
required
authType
enum<string>
required
Available options:
oauth,
apikey,
none
credentialMode
enum<string>
required
Available options:
shared,
per_member
exposeDirectly
boolean
required
connected
boolean
required
connectedAt
string | null
required
updatedAt
string<date-time>
required
Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
connectedForMe
boolean
required
requiredBy
object[]
required
identityManagedBy
object[]
required
access
object | null
required
identityChanged
boolean
required
reconnectionRequired
boolean
required
createdByName
string | null
needsReconnect
boolean
credentialHealth
enum<string>
Available options:
unknown,
ready,
reconnect_required
credentialHealthReason
enum<string> | null
Available options:
authorization_rejected,
credential_expired,
post_authorization_validation_failed
credentialHealthCheckedAt
string<date-time> | null
Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
issuerReviewRequired
boolean
reconnectActionOwner
enum<string> | null
Available options:
member,
organization_admin
missingFeatures
string[]
externalAccountId
string | null
grantedScopes
string[]
tenantId
string | null
requiredAuthType
enum<string> | null
Available options:
oauth,
apikey,
none
authPolicyConfirmed
boolean
authTypeMismatch
boolean
oauthClientConfigured
boolean
oauthClientRequired
boolean
setupRequired
boolean
oauthClientId
string | null
oauthCallbackUrl
string | null
oauthSharedCallbackUrl
string | null
oauthClientMetadataUrl
string | null
oauthCallbackMode
enum<string> | null
Available options:
shared-v1,
isolated-v1,
legacy-v1
oauthRegistrationSource
enum<string> | null
Available options:
pre-registered,
client-metadata,
dynamic
authorizationServerIssuer
string | null
requestedScopes
string[]