原文(日本語に翻訳)
MCP headersHelper 認証を改善: ツール呼び出しが401/403を返した場合、ヘルパーが自動的に再実行されて再接続する。
原文(英語)
Improved MCP headersHelper auth: the helper now re-runs and reconnects automatically when a tool call returns 401/403
概要
MCPサーバーの headersHelper 認証機能が強化されました。ツール呼び出し中に認証エラー(HTTP 401/403)が発生した場合、headersHelper が自動的に再実行されてトークンを更新し、MCPサーバーへの再接続を試みるようになります。OAuth等のトークンが期限切れになった場合でも、ユーザーが手動で再起動する必要がなくなります。
基本的な使い方
headersHelper を使用するMCPサーバーの設定例:
json
{
"mcpServers": {
"my-api": {
"command": "npx",
"args": ["-y", "@company/mcp-server"],
"headersHelper": {
"command": "get-auth-token",
"args": ["--format", "bearer"]
}
}
}
}この設定で、my-api サーバーのツール呼び出しが401/403を返すと:
headersHelperコマンドが自動的に再実行される- 新しい認証ヘッダーを取得
- MCPサーバーへ再接続
- 元のツール呼び出しをリトライ
実践例
OAuthトークンの自動更新
json
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"headersHelper": {
"command": "gh",
"args": ["auth", "token"]
}
}
}
}GitHubのトークンが期限切れになっても、gh auth token が再実行されて新しいトークンを取得します。
カスタム認証スクリプトの使用
bash
#!/bin/bash
# get-token.sh - 認証トークンを取得するスクリプト
curl -s -X POST https://auth.example.com/token \
-d "client_id=$CLIENT_ID" \
-d "client_secret=$CLIENT_SECRET" \
| jq -r '.access_token'json
{
"mcpServers": {
"internal-api": {
"command": "npx",
"args": ["-y", "@company/mcp-internal"],
"headersHelper": {
"command": "./get-token.sh"
}
}
}
}企業SSO環境での活用
json
{
"mcpServers": {
"enterprise-tool": {
"command": "mcp-enterprise-server",
"headersHelper": {
"command": "az",
"args": ["account", "get-access-token", "--output", "tsv", "--query", "accessToken"]
}
}
}
}Azure ADのアクセストークンが期限切れになっても自動更新されます。
注意点
headersHelperは401または403レスポンスを受け取った場合のみ再実行されます。その他のエラーでは再実行されません- 再認証の試行回数には上限があります(無限ループ防止)
headersHelperコマンドが失敗した場合、エラーが報告されてツール呼び出しは失敗します- ネットワーク問題による403(Forbidden)とアクセス権限による403(Permission Denied)は区別されない場合があります
関連情報
- MCPサーバー設定ガイド
- [[2.1.193-mcp-auth-startup-notice]] - MCP認証状況の起動時通知