support for streamable HTTP MCP servers not working properly
Resolved 💬 37 comments Opened Oct 4, 2025 by realyn Closed Oct 17, 2025
💡 Likely answer: A maintainer (jdsalasca, contributor)
responded on this thread — see the highlighted reply below.
What version of Codex is running?
0.44.0
Which model were you using?
gpt-5-codex
What platform is your computer?
MacOS
What steps can reproduce the bug?
Both notion and amap MCP servers should load correctly and display their available tools, instead of showing Tools: (none).
Configuration (config.toml):
[mcp_servers.notion]
url = "https://mcp.notion.com/mcp"
[mcp_servers.amap]
url = "https://mcp.amap.com/mcp?key=<my_key>"
Steps to Reproduce:
Start Codex.
Run /mcp.
Observe the loaded MCP servers.
Actual Output:
• Server: notion
• URL: https://mcp.notion.com/mcp
• Tools: (none)
• Server: amap
• URL: https://mcp.amap.com/mcp?key=<my_key>
• Tools: (none)
37 Comments
Same here, github MCP also does not work
if I enable
experimental_use_rmcp_client = true, I get errorif I disable
experimental_use_rmcp_client = true, no error but the mcp shows <none> toolsversion 0.44.0
Same here, Rube MCP also does not work
version 0.44.0
same here, nuxt ui MCP does not work
version: 0.44.0
https://ui.nuxt.com/mcp, shows no tools available even with web search
I’m experiencing the same problem — I’m also unable to use the Figma MCP.
Same problem. With the Exa MCP
Same issue with custom-written http MCP, showing "Tools: (none)" despite the MCP working fine with other tools
same issue on Windows 10 using codex 0.44.0 with:
Using the
mcp-remotewrapper as workaround all tools are available, so it is a bug in the codex MCP implementation and not in the streamable MCP servers.MacOS 0.44.0
same issue:
Seeing the exact same issue with GitHub MCP. Tried with
experimental_use_rmcp_client = true.Do any real humans at OpenAI test the code that ships anymore? 😉
My full config.toml:
http://127.0.0.1:3845/mcp works in browser.
Can confirm that mcp-remote works fine, guess we'll just settle for this until the issue is fixed. This is with Codex running inside WSL.
https://github.com/openai/codex/issues/4707#issuecomment-3367779411
just to report v0.45.0 still the same
---
adding error detail
config
After upgrading to 0.45, my problem has been solved
Yes,
when support for Stremeable Http mcp's with custom headers?
Please I need something like this
But is currently not supported, Help!! :sad: :panic-up:
After upgrading to 0.45, problem has been solved
The problem with the custom header is still not solved, the backend is waiting for a header called
x-internal-tokenwhich I cannot sentHey folks, it seems it's due to an error in the way the Authorization header is formed. A fix has been merged and will probably packaged into a release soon: #4846
I can confirm that after building from source, the Github remote MCP server now works. If you want to do so, please note that another PR #4904 changes the Authorization config for remote MCP servers.
Having seen that even OpenAI engineers made the "Bearer Bearer token" mistake and managed to ship the production code is such a relief. We’re all humans, I guess.
With 0.46 I see some remote servers showing tools, while others not. Invthe log I see
^[[2m2025-10-09T04:41:07.928066Z^[[0m ^[[33m WARN^[[0m Failed to list tools for MCP server 'myRemoteServer': Err(
"tools/list failed: Transport closed",
)
^[[2m2025-10-09T04:41:08.045592Z^[[0m ^[[32m INFO^[[0m aggregated 25 tools from 4 servers
Anyone know why (could it be timeout, no sse fallback or something else)?
I got same error.
0.46, I can invoke codex
codex mcp login atlassianand get successful oauth callback.This is my ~/.codex/config.toml
When I start the codex cli will show these error.
it feels like they are vibe coding codex without doing any tests...
then
export GITHUB_TOKEN=...verify:
I confirm 0.46 fixed my github mcp issue mentioned here https://github.com/openai/codex/issues/4707#issuecomment-3375509198
Thanks for the patience here. Most of these issues should be resolved after juggling a few things across Codex and the MCP Rust SDK. I created https://github.com/openai/codex/issues/5180 to track custom http headers.
Feel free to search for or open a new issue with specific new issues.
experience same issues. Version is 0.46.0 and still not fixed!
Could one of you share what, exactly, isn't working for you? There are a variety of different things that could be happening here and I want to make sure we can separate out each issue (if there are any remaining)
Make sure you ran
mcp login <server_name>if your MCP server requires login, 0.47 will do a better job prompting you.@gpeal
my config:
---
edit: turns out
experimental_use_rmcp_client = trueneed to be above all[mcp_servers.*]fields.Hi @gpeal, I upgraded to 0.47 to verify, but could only connect to GH MCP by using custom http_headers. I'm not sure if that's the intended use since there's an actual field for the bearer tk. Without that workaround, the following behavior has been consistent for me since 0.46. Thnx for the support on this issue so far.
Issue: I'm getting a 404 on the page (different than previous 400s recv) and the follwoing transport error.
Note: I abbreviated the auth URL for privacy.
Setup
====
I re-added github mcp via
codex mcp add --url https://api.githubcopilot.com/mcp/ githuband then addedbearer_token_env_var. I've replaced my token with 'GITHUB_TOKEN' for the below excerpts.My abbreviated config.toml with
experimental_use_rmcp_clientat the top.==
For anyone that wants to see how I setup to work around this see below. Frankly, I still get a 404 when I run
codex mcp login github, but while I was writing this I noticed all the tools and resources were loaded and now I only have permissions issues which are likely 100% due to GH's fine grain PAT permissions not being correct :(.``` config.toml
[mcp_servers.github]
url = "https://api.githubcopilot.com/mcp/"
http_headers.Authorization = "Bearer <GITHUB_TOKEN>"
$ codex
🔌 MCP Tools
• Server: github
• Status: enabled
• Auth: Bearer token
• URL: https://api.githubcopilot.com/mcp/
• HTTP headers: Authorization=Bearer <GITHUB_TOKEN>
• Tools: add_comment_to_pending_review, add_issue_comment, add_sub_issue,
assign_copilot_to_issue, create_and_submit_pull_request_review, create_branch, create_issue,
create_or_update_file, create_pending_pull_request_review, create_pull_request, create_repository,
delete_file, delete_pending_pull_request_review, fork_repository, get_commit, get_file_contents,
get_issue, get_issue_comments, get_label, get_latest_release, get_me, get_release_by_tag,
get_tag, get_team_members, get_teams, list_branches, list_commits, list_issue_types, list_issues,
list_label, list_pull_requests, list_releases, list_sub_issues, list_tags, merge_pull_request,
pull_request_read, push_files, remove_sub_issue, reprioritize_sub_issue, request_copilot_review,
search_code, search_issues, search_pull_requests, search_repositories, search_users,
submit_pending_pull_request_review, update_issue, update_pull_request, update_pull_request_branch
• Resources: (none)
• Resource templates: Repository Content (repo://{owner}/{repo}/contents{/path*}), Repository
Content for specific branch (repo://{owner}/{repo}/refs/heads/{branch}/contents{/path*}),
Repository Content for specific commit (repo://{owner}/{repo}/sha/{sha}/contents{/path*}),
Repository Content for specific pull request (repo://{owner}/{repo}/refs/pull/{prNumber}/head/
contents{/path*}), Repository Content for specific tag (repo://{owner}/{repo}/refs/tags/{tag}/
contents{/path*})
$ codex mcp get github
enabled: true
transport: streamable_http
url: https://api.githubcopilot.com/mcp/
bearer_token_env_var: -
http_headers: Authorization=Bearer <GITHUB_TOKEN>
env_http_headers: -
remove: codex mcp remove github
@josh-swerdlow You can't log in to the github MCP server because they don't support oauth for anything other than their 1p clients (https://github.com/github/github-mcp-server/issues/921#issuecomment-3221026448)
I'm using
bearer_token_env_varwithout issue though. Make sure the value ofbearer_token_env_varis the name of the environment variable, not the token itself.Still some error 😢
Version 0.47.0
Steps
Seems it's fixed in 0.47.0. I used the following format:
@Jian-Min-Huang The Atlassian MCP server uses SSE which is a deprecated transport. MCP servers should migrate to streamable http instead.
https://modelcontextprotocol.io/specification/2025-06-18/basic/transports#streamable-http
@gpeal I'm still having issues with GitHub MCP not working even if I put a valid
bearer_token_env_varvalue in the config. Tried with0.47.0and with0.48.0-alpha.3. ``■ MCP client forgithubfailed to start: handshaking``with MCP server failed: Send message error Transport
[rmcp::transport::worker::WorkerTransport<rmcp::transport::streamable_http_c
lient::StreamableHttpClientWorker<reqwest::async_impl::client::Client>>]
error: Auth required, when send initialize request
Debugged it and apparently
resolve_bearer_tokenreturns a validresolved_bearer_token. So the issue is not because of an undefined environment variable.In the current
mainbranch, it becomes even more confusing because it hides the real error and suggests using OAuth, which remote GitHub MCP server doesn't support, it seems.Update: Figured it out, the token was invalid. I had to generate a token which has
copilotscope.I just tried this and it appears to have worked. Yet to validate but its not throwing error any more...
However, this contradicts OpenAI's current docs: https://github.com/openai/codex/blob/main/docs/config.md#streamable-http
They say
# Optional environment variable containing a bearer token to use for authbearer_token_env_var = "<token>"
@jaycoolslm this config was changed from the token to the env var name but it looks like that part of the docs hung around. I'll update it. Sorry for the confusion.
Ubuntu 24.04
codex-cli 0.87.0
Hi guys, i'm here to confirm that on my system the mcp for directus framework stopped working, the method working for me was the one using mcp-remote, in my case i need to replace the ~/config.toml as follows:
@dmonterde, thanks for posting. This issue was closed back in October. If you're seeing a related issue, it's probably not the same problem. Could you please open a new issue and provide details? It would be helpful if you used the
/feedbackslash command after reproing the problem. That way, we'll have access to your logs and session details.You mentioned that it "stopped working". Does that mean that it was working on a previous version of Codex CLI? If so, do you happen to know the last version that worked?