@OpenAI_Support
ChatGPTās actual DCR call omits openid
When I click Connect in ChatGPTās Developer Mode against the same MCP URL, the resulting OAuth application in the authorization serverās dashboard has:
- name: ChatGPT
- scopes: email offline_access profile ā openid is missing
- client_id: dcr-generated-id
The subsequent /authorize step then fails with the authorization serverās internal state-validation error (which translates to an invalid_scope-class condition, since
ChatGPTās /authorize request does include scope=openid ⦠but the just-registered client wasnāt permitted it).
Diagnosis
ChatGPTās DCR scope-list builder and /authorize scope-list builder disagree about openid:
- /authorize: correctly includes openid (consistent with OIDC Core §3.1.2.1, since it needs an ID token for user identity).
- DCR registration POST: omits openid from the scope field, despite our .well-known/oauth-protected-resource scopes_supported advertising it.
Result: every fresh Developer-Mode connection creates an OAuth client that cannot fulfill the /authorize request that follows. The only workaround currently is to PATCH openid into each freshly-created client by hand (or via a script targeting the providerās admin API).
Please confirm whether ChatGPTās MCP connector is intended to:
- (a) read scopes_supported from the protected-resource metadata and include those scopes in the DCR scope field, or
- (b) include only a hardcoded scope set in DCR.
If (a), thereās a bug in the DCR scope-list builder ā it isnāt reading our metadata. If (b), then openid should be part of that hardcoded set (since /authorize requires it for OIDC anyway, which ChatGPT clearly relies on for user identity).