Skip to content

MCPシークレット情報の保護: claude mcpコマンドでのシークレット漏洩を修正

原文(日本語に翻訳)

claude mcp のlist/get/addがシークレットをターミナルに出力する問題を修正しました。${VAR} 参照は展開されなくなり、認証情報ヘッダーとURLシークレットは削除されます。

原文(英語)

Fixed claude mcp list/get/add printing secrets to the terminal: ${VAR} references are no longer expanded, and credential headers and URL secrets are redacted

概要

Claude Code v2.1.161では、claude mcp コマンドのlist/get/add操作で認証情報がターミナルに出力されていたセキュリティ問題が修正されました。従来は環境変数参照(${VAR} 形式)が展開されてシークレット値がそのまま表示され、URLに埋め込まれたシークレットや認証ヘッダーも平文で表示されていました。この修正により、シークレット値は適切に削除(リダクション)されます。

基本的な使い方

この修正は自動的に適用されます。claude mcp listclaude mcp get を実行した際に、シークレット情報が自動的にマスクされます。

bash
# MCPサーバー一覧を表示(シークレットはリダクションされる)
claude mcp list

# 特定のMCPサーバーの設定を確認
claude mcp get my-server

実践例

修正前後の動作比較

修正前(問題のある動作):

bash
claude mcp get github-server
# → url: https://api.github.com?token=ghp_actualSecretToken123
# → Authorization: Bearer eyJhbGciOiJSUzI1NiJ9...実際のトークン

修正後(安全な動作):

bash
claude mcp get github-server
# → url: https://api.github.com?token=[REDACTED]
# → Authorization: Bearer [REDACTED]

環境変数参照の安全な取り扱い

bash
# 設定ファイルで環境変数参照を使用している場合
# ${GITHUB_TOKEN} などの参照は展開されずそのまま表示される
claude mcp list
# → env: { GITHUB_TOKEN: "${GITHUB_TOKEN}" }  ← 展開されない(安全)

MCPサーバー追加後の安全確認

bash
claude mcp add my-api \
  --url "https://api.example.com" \
  --header "Authorization: Bearer ${MY_SECRET_TOKEN}"

# 追加後の確認(シークレットはリダクション済み)
claude mcp get my-api
# → Authorization: Bearer [REDACTED]

注意点

  • この修正はv2.1.161で適用されています。以前のバージョンをお使いの場合はアップデートを推奨します
  • リダクションはターミナル表示のみに適用されます。設定ファイル自体は変更されません
  • ${VAR} 形式の環境変数参照はシェルによって展開されずに表示されるようになりました
  • ターミナルのスクロールバックやログファイルに過去の出力が残っている場合は確認・削除を推奨します
  • シェルの履歴(.bash_history.zsh_history)にシークレットが残っていないかも確認してください

関連情報