0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Code v2.1.231|Slack の MCP OAuth が redirect URI で弾かれる問題を修正|毎日Changelog解説

0
Posted at

Claude Codeの公式Changelogをリリースから最速で翻訳・解説しています。

v2.1.231 は修正 1 件のみ。事前登録済みの OAuth クライアントを使う MCP サーバー、代表例は Slack で、サインインが redirect URI の不一致で落ちていた問題が直りました。コールバックの受け口は http://localhost:<port>/callback の形なので、この <port> が毎回変われば事前登録した URI と当然合いません。

今回の注目ポイント

  1. 事前登録 OAuth クライアントのサインインが通る redirect URI の不一致で弾かれていた MCP サーバー (Slack など) にログインできるように (v2.1.231)

Slack のログインが redirect URI の不一致で止まっていた

対象読者: --transport http で Slack など OAuth が要る MCP サーバーを繋いでいる人

認可コードの受け取り口は、Claude Code がその場でローカルに立てるリスナーです。 リスナーの URL は http://localhost:<port>/callback で、<port> は空きポートから選ばれます。ブラウザから /callback 以外を叩いたときに返る文言がこれ。末尾には実際の redirect URI が入ります。

This is the Claude Code MCP OAuth callback listener. It only handles /callback. If your OAuth provider redirected here, the registered redirect_uri must be http://localhost:/callback.

Dynamic Client Registration (DCR) に対応した MCP サーバーなら、クライアント登録のたびに redirect URI を送り直せるので、ポートが変わっても問題になりません。詰まるのは DCR 非対応で、client_id を事前に発行しておくタイプ。Slack がこれにあたります。事前登録した redirect URI は固定なのに、Claude Code 側のポートが認証のたびに動くと、認可サーバーは不一致として弾く。

2.1.231 のバイナリを覗くと、リダイレクトポートの選択ログに (from config)(reusing registered port) の 2 経路が入っています。設定で固定していればそのポート、していなければ前回のクライアント登録で使ったポートを引き継ぐ。

ポートを固定して登録する

claude mcp add --transport http slack https://example.com/mcp \
  --client-id <発行された client_id> \
  --client-secret \
  --callback-port 51999

--callback-port のヘルプは「Fixed port for OAuth callback (for servers requiring pre-registered redirect URIs)」。名指しされている pre-registered redirect URIs が、そのまま Slack のケースにあたります。指定できる範囲は 1〜65535 で、外れるとエラーになります。--client-secret はプロンプト入力式。MCP_CLIENT_SECRET 環境変数でも渡せます。

書き込まれる設定は oauth オブジェクトです。

{
  "type": "http",
  "url": "https://example.com/mcp",
  "oauth": {
    "clientId": "abc123",
    "callbackPort": 51999
  }
}

入ったかどうかの確認は claude mcp get <名前>

  OAuth: client_id configured, callback_port 51999

--client-id / --client-secret / --callback-port は HTTP・SSE トランスポート専用です。stdio サーバーに付けると Warning: --client-id, --client-secret, --callback-port, and --xaa are only supported for HTTP/SSE transports and will be ignored for stdio. が出て、設定には保存されません。

更新しても通らないときに切る手

古い認可情報が残っていると、更新後もサインインが通らない。claude mcp logout <名前> で保存済みの OAuth 認証情報を消してから claude mcp login <名前> をやり直します。SSH やヘッドレスなら --no-browser を付けると認可 URL が標準出力に出て、リダイレクト先の URL を貼り戻す形になります。

固定したポートが他プロセスに取られていると、そもそもリスナーが立ちません。Claude Code は EADDRINUSE を検知すると調べ方まで出してくれます。macOS と Linux は lsof -ti:<port> -sTCP:LISTEN、Windows は netstat -ano | findstr :<port>

変更点の一覧

バージョン カテゴリ 変更点 概要
v2.1.231 修正 MCP OAuth のサインイン 事前登録済み OAuth クライアントを使うサーバー (Slack など) で、redirect URI の不一致により失敗していた

原文は Fixed MCP OAuth sign-in failing with a redirect URI mismatch for servers that use a pre-registered OAuth client, such as Slack の 1 行のみ。

まとめ

v2.1.231 の変更は MCP OAuth の redirect URI 不一致の修正 1 件。Slack のように client_id を事前発行するサーバーを繋いでいるなら、更新後に claude mcp logoutclaude mcp login で入り直せば通ります。--callback-port で固定済みの設定は、そのまま残して問題ありません。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?