Capability Sources

Register a new External MCP Connection for the org

Changed on

Owners and admins can register any server. Other members can add one for themselves: an OAuth server where each person signs in (credentialMode per_member) or a server with no sign-in, shared with specific members or teams but never org-wide; the caller is always kept in its access. Registers a third-party MCP server by name + URL and grants access (org-wide, teams, or members). Use GET /v1/mcp-connections/presets for known server URLs (Notion, Linear, Stripe, Sentry, Slack, Context7). For credentialMode per_member, each member connects their own account afterwards — give the user links.signIn (a one-click browser sign-in page for this connection) when you cannot show a sign-in card, and share links.yourConnections so teammates know where to sign in. For servers with pre-registered OAuth apps, whitelist links.oauthCallback. API-key and OAuth-client credentials cannot be created through the agent surface; use the dashboard.

post/v1/mcp-connections

Request

  • Base URL: https://api.openworklabs.com
  • URL: https://api.openworklabs.com/v1/mcp-connections
  • Auth: one of:
    • API key in header x-api-key
    • HTTP bearer

Request body

OR

Response

Connection created.

idstring required
namestring required
externalKeystring nullable required
urlstring required
authType'oauth' | 'apikey' | 'none' required
credentialMode'shared' | 'per_member' required
apiKeyAuthScheme'bearer' | 'token' required
exposeDirectlyboolean required
connectedboolean required
connectedAtstring date-time nullable required
createdByNamestring nullable
createdByYouboolean
createdAtstring date-time
updatedAtstring date-time
connectedForMeboolean required
needsReconnectboolean
credentialHealth'unknown' | 'ready' | 'reconnect_required'
credentialHealthReason'authorization_rejected' | 'credential_expired' | 'post_authorization_validation_failed' nullable
credentialHealthCheckedAtstring date-time nullable
issuerReviewRequiredboolean
reconnectActionOwner'member' | 'organization_admin' nullable
missingFeaturesstring[]
externalAccountIdstring nullable
grantedScopesstring[]
tenantIdstring nullable
requiredAuthType'oauth' | 'apikey' | 'none' nullable
authPolicyConfirmedboolean
authTypeMismatchboolean
oauthClientConfiguredboolean
oauthClientRequiredboolean
setupRequiredboolean
oauthClientIdstring nullable
oauthClientHasSecretboolean

Whether a client secret is configured. Only returned with explicit connection-settings view permission; never the secret itself.

oauthCallbackUrlstring nullable
oauthSharedCallbackUrlstring nullable
oauthClientMetadataUrlstring nullable
oauthCallbackMode'shared-v1' | 'isolated-v1' | 'legacy-v1' nullable
oauthRegistrationSource'pre-registered' | 'client-metadata' | 'dynamic' nullable
authorizationServerIssuerstring nullable
requestedScopesstring[]

Changes

    • info

      added the new optional request property /

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status