codexにStreamable HTTPなMCP Serverに対するサポートが追加されたので それを使ってこれまで直接使えなかったGitHub公式のMCP Serverを使う設定を追加。
- experimental_use_rmcp_client
- GitHub公式MCP Serverをcodexで直接使う
- OAuthがうまく行かない
- experimental_use_rmcp_clientの設定がなかったときの設定
- まとめ
experimental_use_rmcp_client
experimental_use_rmcp_clientというオプションが追加されていて、これをtrueにすると
Streamable HTTPなMCP Serverを使えるようになります。
GitHub公式MCP Serverをcodexで直接使う
これまではこれをcodexで直接使うことは出来ず、 mcp-proxy などを使った方法が紹介されていました。
これをexperimental_use_rmcp_clientを使うと
1 2 3 4 5 | |
と設定を書くだけで使えるようになります。
ここで、GITHUB_MCP_API_TOKENはGitHubのPersonal Access Tokenを格納した環境変数の名前で、
その環境変数をcodexが中で解釈している形になります。
$GITHUB_MCP_API_TOKENと変数展開の形では書かずに直接変数名だけ書きます。
このことから分かるように、文字列であるTOKENを直接設定ファイルに書くことは出来ず、環境変数に入れておく必要があります。
これでcodexを起動して/mcpコマンドを実行すると
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
のような感じで確認でき、適当なレポジトリでcodexを起動して、
現在openなIssueを一覧表示してなどと入力するとIssueの一覧が表示されます。
OAuthがうまく行かない
bearer_token_env_varを設定しておかないと、
1 2 3 | |
見たい感じでgithub-mcp-serverの起動に失敗します。
github-mcp-serverはOAuthでの認証もサポートしていて、
codexでは
1
| |
とすることでOAuth認証を行うことも出来るようですが、やってみると
1 2 3 4 5 | |
のようになってうまくいかない状態。
experimental_use_rmcp_clientの設定がなかったときの設定
以前は以下のような設定が紹介されていました。
1 2 3 4 5 6 7 | |
ここでは<TOKEN>の部分には直接TOKENを書く必要があります。
これで上と同じように使えはするのですが、これだとTOKENを直接設定ファイルに書く必要があります。
mcp-proxyでは認証部分を
1 2 3 4 5 6 7 | |
のように、API_ACCESS_TOKENを別途環境変数として渡す事もできますが、
いずれにしろそれに渡すTOKENを直接書く必要があります。
このあたりはmcp-proxyの仕様で、 codexもこれらの値に関しては特別外から環境変数を持ってきて解釈するようなことはしないみたいなので 仕方ないところ1。
このmcp-proxyを使ったGitHubのMCP Serverの利用は、使っているいくつかのLinux環境だと動いたのですが、 何故かmacOSの環境下だと動かず。 mcp-proxyのバグなのかcodexのバグなのか、なにか自分の環境の問題なのか結局よくわからずじまい。
~/.codex/config.tomlをdotfilesに入れたいのでTOKENを書けないの2 このmacOSの問題もあったのでこれまでcodexではGitHubのMCP Serverは使ってませんでした。
一応
gh
コマンドを使える環境にしてあるのである程度のことはghで出来てたので無理に使わずとも良いか、という感じではありました。
まとめ
というわけで、今までも一応使えましたが、新しい方法だと TOKENをcodexの設定ファイルに直接書かずに済むようになり使いやすくなります。
OAuth認証は自分の環境でうまく言ってませんが、もし使えるならTOKENを取らずにすぐに使えて便利。 バグでそのうち治るかもしれません。
まだexperimental_がついているオプションなので、将来変わる可能性もありますが、
とりあえずこんな設定で行けます。
個人的にはこれまで使えてなかったのがやっと使えるようになったので良かったです。