Skip to content

原文(日本語に翻訳)

セキュリティ: 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 listclaude mcp get を実行すると、リポジトリにコミットされた .claude/settings.json 内で enableAllProjectMcpServersenabledMcpjsonServers が設定されていた場合、ワークスペースを信頼していなくても .mcp.json で定義されたMCPサーバーが実際に起動・ヘルスチェックされてしまうという問題がありました。悪意あるリポジトリが「自己承認」を仕込んでおけば、ユーザーがそのリポジトリをcloneして claude mcp list を実行しただけでサーバーが起動してしまう恐れがありました。今回の修正により、未信頼のワークスペースではコミット済み設定ファイル経由の自己承認は無視され、サーバーは ⏸ Pending approval(承認待ち)の状態のまま表示されるようになりました。

基本的な使い方

特別な操作は不要です。未信頼のリポジトリをcloneして claude mcp list を実行した場合、修正後は以下のように表示されます。

bash
$ claude mcp list
my-server Pending approval

サーバーを実際に使いたい場合は、インタラクティブにClaude Codeを起動してワークスペース信頼ダイアログを確認・承認します。

bash
# インタラクティブに起動してワークスペースを信頼する
claude
# 表示される信頼ダイアログで承認後、/mcp からサーバーを承認

実践例

不明なリポジトリを安全に調査する

出どころが不明なリポジトリをcloneした際、claude mcp list を実行してもMCPサーバーが勝手に起動しなくなったため、コードを確認する前にうっかり未検証のサーバープロセスを動かしてしまうリスクが減ります。

bash
git clone https://github.com/unknown/some-repo.git
cd some-repo
claude mcp list
# → ⏸ Pending approval (安全のため起動されない)

CI/CDやスクリプトから mcp list/get を呼び出す場合

自動化スクリプトでリポジトリの状態を確認する目的で claude mcp listclaude mcp get <name> をパイプ/リダイレクトして呼び出しても、未信頼の状態であればサーバーは起動・承認されません。

bash
claude mcp get my-server | tee mcp-status.log
# 出力をパイプしても承認や接続は行われない

意図的にプロジェクトのMCPサーバーを使いたい場合

自分自身が作成・信頼しているプロジェクトであれば、通常どおりインタラクティブモードでワークスペースを信頼し、/mcp から承認すれば従来通り利用できます。

bash
claude
# ワークスペース信頼ダイアログを承認
> /mcp
# 一覧から対象サーバーを選択して承認

承認状態をリセットしたい場合は次のコマンドを使用します。

bash
claude mcp reset-project-choices

注意点

  • 重要: この修正はv2.1.196時点のセキュリティ修正です。古いバージョンでは未信頼のリポジトリをcloneしただけで .mcp.json サーバーが起動する可能性があったため、必ず最新版へアップデートしてください
  • enableAllProjectMcpServersenabledMcpjsonServers がコミットされた .claude/settings.json に書かれていても、ワークスペースを信頼するまでは無視されます
  • 承認状態をリセットするには claude mcp reset-project-choices を使用します
  • 組織として接続可能なMCPサーバーを一元管理したい場合は、Managed MCP構成(managed-mcp.jsonallowedMcpServers/deniedMcpServers)の利用を検討してください

関連情報