What version of Codex CLI is running?
codex-cli 0.146.0-alpha.3.1
What subscription do you have?
ChatGPT subscription via Codex Desktop
Which model were you using?
N/A — failure occurs in codex mcp login before a model session
What platform is your computer?
Darwin 25.5.0 arm64 arm
What terminal emulator and version are you using (if applicable)?
Codex Desktop embedded terminal / zsh
Codex doctor report
Not attached because the current report contains local filesystem paths and unrelated diagnostics from a network-restricted agent environment. Relevant sanitized fields: Codex 0.146.0-alpha.3.1, runtime macos-aarch64, and a configured Streamable HTTP MCP server. No Atlassian credential was stored because the callback never occurred.
What issue are you seeing?
codex mcp login against Atlassian's official Streamable HTTP endpoint completes OAuth discovery and dynamic client registration, and Atlassian renders a consent page for the selected site. After clicking Accept, Atlassian replaces the consent page with:
invalid_request
Incorrect request parameters
The browser never reaches Codex's generated http://127.0.0.1:<port>/callback/<id> URI, so the CLI listener receives no code and keeps waiting. No credential is stored; codex mcp list still reports the server's authentication as Unsupported.
This reproduced in an isolated Chromium context and a fresh Safari window after closing stale OAuth tabs, using only the three read-only scopes currently advertised by Atlassian's protected-resource metadata. I redacted the Atlassian account and site, client ID, state, PKCE values, callback ID, and full authorization URLs.
Because the provider renders consent and then rejects the request, I cannot determine from the client side whether the incompatible parameter originates in Codex's dynamic-client metadata, the authorization request, or Atlassian's backend.
What steps can reproduce the bug?
-
Configure the official endpoint:
[mcp_servers.atlassian]
url = "https://mcp.atlassian.com/v1/mcp/authv2"
-
Confirm the endpoint's protected-resource metadata advertises read:account, read:me, and read:jira-work.
-
Run:
codex mcp login atlassian --scopes read:account,read:me,read:jira-work
-
In the Atlassian consent page, select a valid Jira site. The page displays the requested Read/Search permissions.
-
Click Accept.
-
Observe invalid_request / Incorrect request parameters. The loopback callback is never loaded and the CLI continues waiting.
What is the expected behavior?
After Accept, Atlassian should redirect to Codex's generated loopback callback, Codex should exchange the authorization code and persist the credential, and the server should report OAuth authentication instead of Unsupported.
Additional information
Controls and related context:
Could maintainers inspect whether the generated DCR registration and authorization request are compatible with Atlassian's consent backend, or identify which parameter the provider is rejecting after consent? A sanitized diagnostic showing the DCR response and final authorization parameter names would help isolate the interoperability failure.
What version of Codex CLI is running?
codex-cli 0.146.0-alpha.3.1
What subscription do you have?
ChatGPT subscription via Codex Desktop
Which model were you using?
N/A — failure occurs in codex mcp login before a model session
What platform is your computer?
Darwin 25.5.0 arm64 arm
What terminal emulator and version are you using (if applicable)?
Codex Desktop embedded terminal / zsh
Codex doctor report
Not attached because the current report contains local filesystem paths and unrelated diagnostics from a network-restricted agent environment. Relevant sanitized fields: Codex 0.146.0-alpha.3.1, runtime macos-aarch64, and a configured Streamable HTTP MCP server. No Atlassian credential was stored because the callback never occurred.What issue are you seeing?
codex mcp loginagainst Atlassian's official Streamable HTTP endpoint completes OAuth discovery and dynamic client registration, and Atlassian renders a consent page for the selected site. After clicking Accept, Atlassian replaces the consent page with:The browser never reaches Codex's generated
http://127.0.0.1:<port>/callback/<id>URI, so the CLI listener receives no code and keeps waiting. No credential is stored;codex mcp liststill reports the server's authentication asUnsupported.This reproduced in an isolated Chromium context and a fresh Safari window after closing stale OAuth tabs, using only the three read-only scopes currently advertised by Atlassian's protected-resource metadata. I redacted the Atlassian account and site, client ID, state, PKCE values, callback ID, and full authorization URLs.
Because the provider renders consent and then rejects the request, I cannot determine from the client side whether the incompatible parameter originates in Codex's dynamic-client metadata, the authorization request, or Atlassian's backend.
What steps can reproduce the bug?
Configure the official endpoint:
Confirm the endpoint's protected-resource metadata advertises
read:account,read:me, andread:jira-work.Run:
codex mcp login atlassian --scopes read:account,read:me,read:jira-workIn the Atlassian consent page, select a valid Jira site. The page displays the requested Read/Search permissions.
Click Accept.
Observe
invalid_request / Incorrect request parameters. The loopback callback is never loaded and the CLI continues waiting.What is the expected behavior?
After Accept, Atlassian should redirect to Codex's generated loopback callback, Codex should exchange the authorization code and persist the credential, and the server should report OAuth authentication instead of Unsupported.
Additional information
Controls and related context:
oauth_resourceormcp_oauth_callback_urloverride is configured; Codex generated an ephemeral127.0.0.1callback.127.0.0.1andlocalhostfor OAuth clients.search:jira-workbecause the live protected-resource metadata does not advertise it.https://mcp.atlassian.com/v1/mcp/authv2for custom clients.resourceparameter twice whenoauth_resourceis set, breaking strict providers (e.g. Amplitude MCP) #34467 (duplicateresourceonly whenoauth_resourceis set),codex mcp loginfails with "No authorization support detected" on macOS against a spec-compliant OAuth server (same version works on Linux) #34684 (failure before browser authorization support is detected), and MCP OAuth callback URL override is not used as an exact redirect URI #30460 (explicit callback override not used exactly).Could maintainers inspect whether the generated DCR registration and authorization request are compatible with Atlassian's consent backend, or identify which parameter the provider is rejecting after consent? A sanitized diagnostic showing the DCR response and final authorization parameter names would help isolate the interoperability failure.