[MCP] Official Meta Ads endpoint returns Sse(None) on initialized notification in Codex 0.146.0-alpha.3.1
Open 💬 1 comment Opened Jul 26, 2026 by Tom828-china
💡 Likely answer: A maintainer (github-actions[bot], contributor)
responded on this thread — see the highlighted reply below.
Summary
The official Meta Ads MCP endpoint (https://mcp.facebook.com/ads) completes OAuth and appears enabled in codex mcp list, but Codex cannot finish the streamable HTTP handshake. Tools are never exposed.
Environment
- macOS
- ChatGPT desktop app 26.721.41059
- bundled Codex CLI 0.146.0-alpha.3.1
- transport: streamable_http
- auth: OAuth
Steps to reproduce
codex mcp add meta_ads_official --url https://mcp.facebook.com/ads- Complete Meta OAuth authorization.
- Confirm
codex mcp list/codex mcp get meta_ads_officialshow enabled + OAuth. - Run a read-only Codex session and ask the connector to list authorized ad accounts.
Actual behavior
The client retries three times and fails before tools/list:
unexpected server response: expect accepted or json, got Sse(None),
when process initialized notification response
handshaking with MCP server failed:
Transport channel closed, when send initialized notification
Expected behavior
Codex should accept the official Meta endpoint’s initialized-notification response, complete the handshake, and expose its tools.
Cross-checks
- OAuth is present and not the failing stage.
- The same Meta Ads account was previously accessible through Claude.
- A read-only Meta Marketing API fallback on the same machine successfully read the account, campaigns, ad sets, ads, all referenced creative details, daily insights, placement insights, and country insights.
- No ad write was attempted and no credentials/customer data are included here.
This appears closely related to #20982 (same initialized-notification failure stage), but the concrete public repro is Meta’s official hosted Ads MCP endpoint and the response is classified by current Codex as Sse(None). It is also distinct from the earlier Meta OAuth registration issue #24103 because OAuth completes successfully here.
1 Comment
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action