Codex mcp login fails with OAuth providers that require resource (eg. MarketingCloud MCP)

Resolved 💬 6 comments Opened Feb 23, 2026 by mishapavlov1 Closed Mar 8, 2026
💡 Likely answer: A maintainer (github-actions[bot], contributor) responded on this thread — see the highlighted reply below.

What variant of Codex are you using?

App and CLI

What feature would you like to see?

Bug: codex mcp login fails with OAuth providers that require resource (MarketingCloud MCP)

Summary

codex mcp login marketingcloud-mcp starts an OAuth PKCE flow, but the generated OAuth requests appear to omit the resource parameter required by the provider.

  • Without resource on the authorization request, the provider rejects the request.
  • If I manually add resource to the authorization URL, browser login succeeds, but the CLI then fails on token exchange (which also appears to omit resource).

This looks like a bug/compatibility gap in MCP OAuth handling for providers that require OAuth resource indicators.

Environment

  • codex-cli 0.104.0
  • macOS arm64
  • Date observed: 2026-02-23

MCP Server Config

  • Name: marketingcloud-mcp
  • URL: https://shared.marketingcloudmcp.com/mcp

Steps To Reproduce

  1. Configure/register the MCP server (already configured in my case) with:
  • https://shared.marketingcloudmcp.com/mcp
  1. Run:
  • codex mcp login marketingcloud-mcp
  1. Open the browser authorization URL printed by Codex.

Expected Behavior

The OAuth login completes successfully and codex mcp login marketingcloud-mcp stores credentials.

Actual Behavior

Authorization step fails (CLI-generated URL)

Provider returns:

{"error":"invalid_request","error_description":"Missing or invalid response_type, client_id, redirect_uri, PKCE (code_challenge), or resource required","error_uri":"https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-13#section-3.1.1"}

The CLI-generated authorize URL included PKCE params, client_id, and redirect_uri, but did not include resource.

Manual workaround partially succeeds, then token exchange fails

If I manually add:

  • resource=https://shared.marketingcloudmcp.com/mcp

to the authorization URL, the browser flow proceeds correctly.

After completing login in the browser, the waiting CLI process fails with:

Error: failed to handle OAuth callback

Caused by:
    OAuth token exchange failed: Server returned error response: invalid_request: Missing or invalid grant_type, code, redirect_uri, client_id, PKCE (code_verifier), or resource required (see https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-13#section-3.1.3.1)

This suggests the token request also omits resource.

Workaround

Partial only:

  • Manually patch the browser authorization URL to include resource=https://shared.marketingcloudmcp.com/mcp.

This gets past authorization, but the CLI still fails during token exchange.

Additional Notes

  • codex mcp list showed marketingcloud-mcp auth as Unsupported in my environment, even though codex mcp login attempted OAuth.
  • OAuth authorization server metadata is available at:
  • https://app.marketingcloudmcp.com/.well-known/oauth-authorization-server

Possible Cause / Suggested Fix (Hypothesis)

It looks like codex mcp login may not currently support OAuth providers that require a resource parameter (resource indicator).

One possible fix:

  • Support an MCP OAuth resource value per server config (or infer it when available), and
  • Include the same resource in both:
  • authorization request
  • token request

Additional information

_No response_

View original on GitHub ↗

6 Comments

github-actions[bot] contributor · 4 months ago

Potential duplicates detected. Please review them and close your issue if it is a duplicate.

  • #11292

Powered by Codex Action

mishapavlov1 · 4 months ago

@etraut-openai it looks like a PR was made to address an earlier bug ticket but that didn't actually resolve issue

https://github.com/openai/codex/issues/11292

A user suggested a fix after issue was closed, pasted below

https://github.com/openai/codex/issues/11292#issuecomment-3916891812

Fix is available upstream

"This was fixed in rmcp v0.16.0 (released today) via modelcontextprotocol/rust-sdk#651, which brings the SDK into compliance with the 2025-11-25 MCP auth spec including RFC 8707 resource parameter binding. Codex currently uses rmcp 0.15 (#11539) and just needs to bump to 0.16."

etraut-openai contributor · 4 months ago

This will be addressed in the next release. The PR was based largely on a contribution from @xrmzju. Thanks!

bluedog13 · 4 months ago

I opened a PR for #13891 here: https://github.com/bluedog13/codex/pull/1

Since this looks related, linking it here too for visibility.

jngiam · 3 months ago

@etraut-openai this is still broken for me in the latest release. i noticed it marked as completed, is this to be fixed in a future release?

etraut-openai contributor · 3 months ago

@jngiam, this bug was fixed in a previous version. If you're seeing something similar issue with the latest version, please open a new bug report and supply all of the information requested in the bug report template.