原文(日本語に翻訳)
/mcp メニューが headersHelper で設定されたMCPサーバーに対してOAuth専用のアクションを提供していた問題を修正しました。代わりに、ヘルパースクリプトを再呼び出しするために「Reconnect」が提供されるようになりました。
原文(英語)
Fixed the /mcp menu offering OAuth-specific actions for MCP servers configured with headersHelper; Reconnect is now offered instead to re-invoke the helper script
概要
headersHelper を使用してカスタムヘッダーを提供するように設定されたMCPサーバーに対して、/mcp メニューがOAuth認証専用のアクション(ログイン、トークン更新など)を誤って表示していました。headersHelper はOAuthとは異なる認証方式であるため、これらのアクションは意味を持ちません。このアップデートにより、headersHelper で設定されたMCPサーバーには「Reconnect」アクションが表示されるようになりました。
基本的な使い方
bash
# MCPメニューを開く
/mcp
# headersHelperで設定されたサーバーの場合:
# 修正前: OAuth専用アクションが表示される
# - [Login with OAuth]
# - [Refresh Token]
# 修正後: 適切なアクションが表示される
# - [Reconnect] ← headersHelperスクリプトを再呼び出し実践例
headersHelperを使ったMCPサーバー設定
json
// settings.json
{
"mcpServers": {
"my-api-server": {
"command": "npx",
"args": ["my-mcp-server"],
"headersHelper": "/usr/local/bin/get-api-token.sh"
}
}
}bash
#!/usr/local/bin/get-api-token.sh
# headersHelperスクリプトの例
# このスクリプトは認証ヘッダーをJSON形式で出力する
# APIトークンを取得(例: vault、環境変数、ファイルなど)
TOKEN=$(cat ~/.config/my-app/token)
# ヘッダーをJSON形式で出力
echo "{
\"Authorization\": \"Bearer $TOKEN\",
\"X-API-Version\": \"2026-01-01\"
}"Reconnectアクションの使い方
bash
# MCPサーバーの接続を更新
/mcp
# 「my-api-server」を選択
# [Reconnect] を選択
# headersHelperスクリプトが再実行される:
# 1. /usr/local/bin/get-api-token.sh が実行される
# 2. 新しいトークンでヘッダーが更新される
# 3. MCPサーバーに再接続されるトークン期限切れ時の対処
bash
# APIトークンが期限切れになった場合
# 症状: MCPツールの呼び出しが401エラーで失敗
# Error: 401 Unauthorized - Token expired
# 対処法: MCPメニューからReconnect
/mcp
# → my-api-server を選択
# → [Reconnect] を実行
# headersHelperが新しいトークンを取得して再接続
# トークンを自動更新するheadersHelperの例
cat /usr/local/bin/get-api-token.shbash
#!/bin/bash
# 自動トークン更新付きheadersHelperスクリプト
TOKEN_FILE="$HOME/.config/my-app/token"
TOKEN_EXPIRY_FILE="$HOME/.config/my-app/token-expiry"
# トークンの有効期限を確認
if [ -f "$TOKEN_EXPIRY_FILE" ]; then
expiry=$(cat "$TOKEN_EXPIRY_FILE")
now=$(date +%s)
if [ "$now" -gt "$expiry" ]; then
# トークンを更新
echo "トークンを更新中..." >&2
new_token=$(curl -s -X POST https://api.example.com/token \
-d "client_id=$CLIENT_ID&client_secret=$CLIENT_SECRET")
echo "$new_token" | jq -r '.access_token' > "$TOKEN_FILE"
echo "$new_token" | jq -r '.expires_at' > "$TOKEN_EXPIRY_FILE"
fi
fi
TOKEN=$(cat "$TOKEN_FILE")
echo "{\"Authorization\": \"Bearer $TOKEN\"}"MCPサーバー設定のデバッグ
bash
# headersHelperの動作確認
/usr/local/bin/get-api-token.sh
# 出力: {"Authorization": "Bearer eyJhbGc..."}
# MCPサーバーの状態確認
/mcp
# サーバー一覧が表示される
# headersHelperで設定されたサーバーには [Reconnect] が表示される
# 接続テスト
claude "MCPサーバーのツール一覧を教えて"注意点
headersHelperと OAuth 認証は異なる仕組みです。headersHelperはスクリプトでヘッダーを動的に生成しますReconnectアクションはheadersHelperスクリプトを再実行して新しいヘッダーを取得します- OAuth で認証するサーバーには引き続き OAuth 関連のアクションが表示されます
headersHelperスクリプトは JSON 形式でヘッダーを標準出力に出力する必要があります- スクリプトのパスは絶対パスを使用することを推奨します