原文(日本語に翻訳)
セキュリティ: claude mcp list/get が、リポジトリがコミット済みの .claude/settings.json を通じて自己承認した .mcp.json サーバーをもう起動しないようになった。未信頼のワークスペースでは ⏸ Pending approval(承認待ち)と表示される。
原文(英語)
Security: claude mcp list/get no longer spawn .mcp.json servers that a repo self-approved via a committed .claude/settings.json; untrusted workspaces show ⏸ Pending approval
概要
これまで claude mcp list や claude mcp get を実行すると、リポジトリにコミットされた .claude/settings.json 内で enableAllProjectMcpServers や enabledMcpjsonServers が設定されていた場合、ワークスペースを信頼していなくても .mcp.json で定義されたMCPサーバーが実際に起動・ヘルスチェックされてしまうという問題がありました。悪意あるリポジトリが「自己承認」を仕込んでおけば、ユーザーがそのリポジトリをcloneして claude mcp list を実行しただけでサーバーが起動してしまう恐れがありました。今回の修正により、未信頼のワークスペースではコミット済み設定ファイル経由の自己承認は無視され、サーバーは ⏸ Pending approval(承認待ち)の状態のまま表示されるようになりました。
基本的な使い方
特別な操作は不要です。未信頼のリポジトリをcloneして claude mcp list を実行した場合、修正後は以下のように表示されます。
$ claude mcp list
my-server ⏸ Pending approvalサーバーを実際に使いたい場合は、インタラクティブにClaude Codeを起動してワークスペース信頼ダイアログを確認・承認します。
# インタラクティブに起動してワークスペースを信頼する
claude
# 表示される信頼ダイアログで承認後、/mcp からサーバーを承認実践例
不明なリポジトリを安全に調査する
出どころが不明なリポジトリをcloneした際、claude mcp list を実行してもMCPサーバーが勝手に起動しなくなったため、コードを確認する前にうっかり未検証のサーバープロセスを動かしてしまうリスクが減ります。
git clone https://github.com/unknown/some-repo.git
cd some-repo
claude mcp list
# → ⏸ Pending approval (安全のため起動されない)CI/CDやスクリプトから mcp list/get を呼び出す場合
自動化スクリプトでリポジトリの状態を確認する目的で claude mcp list や claude mcp get <name> をパイプ/リダイレクトして呼び出しても、未信頼の状態であればサーバーは起動・承認されません。
claude mcp get my-server | tee mcp-status.log
# 出力をパイプしても承認や接続は行われない意図的にプロジェクトのMCPサーバーを使いたい場合
自分自身が作成・信頼しているプロジェクトであれば、通常どおりインタラクティブモードでワークスペースを信頼し、/mcp から承認すれば従来通り利用できます。
claude
# ワークスペース信頼ダイアログを承認
> /mcp
# 一覧から対象サーバーを選択して承認承認状態をリセットしたい場合は次のコマンドを使用します。
claude mcp reset-project-choices注意点
- 重要: この修正はv2.1.196時点のセキュリティ修正です。古いバージョンでは未信頼のリポジトリをcloneしただけで
.mcp.jsonサーバーが起動する可能性があったため、必ず最新版へアップデートしてください enableAllProjectMcpServersやenabledMcpjsonServersがコミットされた.claude/settings.jsonに書かれていても、ワークスペースを信頼するまでは無視されます- 承認状態をリセットするには
claude mcp reset-project-choicesを使用します - 組織として接続可能なMCPサーバーを一元管理したい場合は、Managed MCP構成(
managed-mcp.jsonやallowedMcpServers/deniedMcpServers)の利用を検討してください