原文(日本語に翻訳)
リフレッシュトークン期限切れ後にOAuthの再認証を促さない問題を修正。HTTP 200でエラーを返すOAuthサーバー(例: Slack)に対して、再認証プロンプトが表示されなかった
原文(英語)
Fixed MCP OAuth refresh never prompting for re-auth after the refresh token expires, for OAuth servers that return errors with HTTP 200 (e.g. Slack)
概要
MCP OAuth認証のリフレッシュトークンが期限切れになった際に、一部のOAuthサーバー(SlackなどHTTP 200でエラーを返すサーバー)では再認証のプロンプトが表示されない問題が修正されました。これにより、リフレッシュトークンが失効しても認証フローが適切に再起動され、Slack等のMCPサーバーへの接続を維持できるようになります。
基本的な使い方
このバグ修正はユーザー操作不要で自動的に適用されます。Slack等のMCPサーバーでOAuth認証が失効した際に、適切な再認証プロンプトが表示されます。
bash
# Slack MCP サーバーを使用している場合
claude mcp list # 接続状態を確認実践例
Slack MCPサーバーの認証状態確認
bash
# Slack MCP の設定状態を確認
claude mcp get slack-server
# 認証が失効した際の再認証(修正後は自動でプロンプトが表示)
claude mcp auth slack-serverHTTP 200エラーを返すOAuthサーバーへの対応
SlackなどのOAuth実装では、トークンエラーをHTTP 200で返す場合があります:
json
// Slack OAuth エラーレスポンスの例(HTTP 200 で返される)
{
"ok": false,
"error": "token_expired"
}修正前はこのようなレスポンスが成功として扱われ、再認証プロンプトが表示されませんでした。修正後は、レスポンスボディのエラーを適切に検出して再認証を促します。
MCP認証のトラブルシューティング
bash
# 認証状態をリセットして再設定
claude mcp remove slack-server
# 再設定(OAuth認証フロー全体をやり直し)
claude mcp add slack-server \
--oauth \
--url https://slack.example.com/mcp
# 認証ログを確認
claude --debug mcp auth slack-server複数のMCPサーバーの認証管理
bash
# すべてのMCPサーバーの状態確認
claude mcp list
# 期限切れのトークンを一括更新(各サーバーごとに再認証)
for server in $(claude mcp list --json | jq -r '.[].name'); do
echo "Checking $server..."
claude mcp auth $server --check
done注意点
- この問題はSlack、その他HTTP 200でエラーを返すOAuthサーバーに影響していました
- バージョン2.1.74以降で修正されています
- リフレッシュトークンの有効期限はサービスによって異なります(Slackは一般的に数週間)
- 長期間使用していないMCP接続は、再認証が必要になる場合があります
- 企業環境ではSSO/OAuth設定がカスタマイズされている場合があるため、IT管理者に確認してください
関連情報
- Claude Code MCP ドキュメント
- Slack API OAuth ガイド
- 関連バグ修正: MCP OAuth ポート競合修正(2.1.74-mcp-oauth-port-fix.md)