Claude Media
Claude Code v2.1.259 — MCPサーバーを組織に配る新設定と管理設定が壊れたときの起動拒否

Claude Code v2.1.259 — MCPサーバーを組織に配る新設定と管理設定が壊れたときの起動拒否

Claude Code v2.1.259は、組織がMCPサーバーを一括配布するmanagedMcpServers設定と、管理設定が壊れたときの起動拒否を追加。allowedMcpServersの対象範囲変更と設定消失の修正も入りました。

Claude Code v2.1.259が公開されました。37件の変更のうち、組織で使う場合に効くのは3つです。1つめは、HTTP/SSEのMCPサーバーを全ユーザーへ一括配布できるmanagedMcpServers設定です。2つめは、allowedMcpServersの対象範囲が「ユーザーが追加したサーバーだけ」に変わったことで、許可リストで除外していたはずのサーバーがアップグレードで復活しうる点に注意が要ります。3つめは、管理設定ファイルが壊れているときClaude Codeが起動そのものを拒否するようになった変更です。あわせて、複数セッションを同時に開くと設定が消える不具合と、BashのReaddenyルールに残っていた複数の抜け道が修正されています。ただしdenyルールの修正は、翌日のv2.1.260で撤回されました(後述)。

このリリースで何ができるようになるか

managedMcpServersという新しい管理設定キーが加わりました。.mcp.jsonと同じ書式でMCPサーバーを列挙すると、組織の全ユーザーにそのサーバー一覧が配布されます。対象はHTTP/SSEサーバーだけで、commandを指定するstdioサーバーのエントリは配布時に読み飛ばされます。

{
  "managedMcpServers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/"
    }
  }
}

既存のmanaged-mcp.jsonは単体のファイルとして配置するもので、そこに定義したサーバー以外を一切使わせない排他制御でした。managedMcpServersはそれとは別の管理設定キーで、他の設定と同じ経路で配布できます。stdioサーバーを含めて完全に固定したいなら引き続きmanaged-mcp.json、HTTP/SSEサーバーだけを軽く配りたいならmanagedMcpServersという使い分けになります。

無人のヘッドレスホスト向けには、--permission-prompts noneが追加されました。指定すると、本来なら対話プロンプトが出るはずの操作はすべて自動的に拒否されます。現在有効な権限モード(auto modeを含む)は、プロンプトを必要としない判断についてはそのまま働き続けます。人が画面の前にいないCIランナーやスケジュール実行で、想定外の操作がプロンプト待ちのまま固まるのを防ぐための設定です。claude -pヘッドレス実行の基本で扱う--allowedTools--permission-modeと組み合わせて使います。

Claude Codeからマージリクエストを操作する場合、対象はglab mrの6つのサブコマンド(createmergeclosereopennoteupdate)です。この6つの実行をツールサマリーで認識する機能が、v2.1.259でまとめて初めて追加されました。実行すると折りたたまれたツールサマリーに「MR !N」と表示され、フッターのMRバッジも更新されます。Claude Code GitLab連携で触れているv2.1.234のMRバッジ表示は別物です。あちらはGitLabリモートと認証済みglab CLIを検出して受動的に表示するだけで、Bashコマンド実行をツールサマリーで認識する仕組みではありません。

プラグイン開発者向けには、claude plugin validate--jsonが付き、機械可読な検証レポートを出力できるようになりました。CIでプラグインのバリデーションを自動化しているチームは、終了コードだけでなく検証結果の詳細もパイプラインで扱えます。

あなたの開発フローはどう変わるか

効き方は利用形態によって分かれます。

利用形態影響度内容
MCPサーバーを組織で一元配布したい管理者影響度明確な恩恵あり内容managedMcpServersでHTTP/SSEサーバーを軽量に配布できる
allowedMcpServersmanaged-mcp.jsonを併用している組織影響度条件次第(要確認)内容許可リストがmanaged-mcp.json由来のサーバーを対象外にする変更(後述)の影響を受ける
ヘッドレスホストでClaude Codeを無人実行するチーム影響度明確な恩恵あり内容--permission-prompts noneでプロンプト待ちの停止を避けられる
複数のClaude Codeセッションを同時に開いて作業する開発者影響度明確な恩恵あり内容~/.claude.jsonの設定が消える・workspace trustがリセットされる不具合が解消
BashのReaddenyルールで機密ファイルを保護している組織影響度恩恵は残らない(要注意)内容オプション引数越しのファイル参照などを塞いだが、翌日のv2.1.260で撤回された
管理設定ファイル(managed-settings.json・MDM plist等)を配布している組織影響度明確な恩恵あり内容ファイルが壊れているとき、黙って無効化される代わりに起動を拒否するように
Remote Control接続でバックグラウンドエージェントやWorkflowsを動かすチーム影響度明確な恩恵あり内容Stopがバックグラウンドタスクを止めきれない問題、リモート・スケジュール実行のセッションで一時停止中にconnector権限を承認すると何も起きない問題が解消
GitLabのglab mrコマンドを使うチーム影響度ほぼ影響なし内容create/merge/close/reopen/note/updateの実行がツールサマリーとMRバッジに反映されるようになった程度
上記のいずれにも当てはまらない影響度ほぼ影響なし内容体感できる変更は少ない

とくに影響が大きいのは、~/.claude.jsonの競合修正です。複数セッションを並行して開いていると、片方のセッションが加えた変更をもう片方が上書きしてしまいます。結果として、workspace trustの設定がリセットされたり、MCP・プロジェクト側の状態が消えたりしていました。実害はよく見えない形で積み重なります。worktreeで並列にセッションを走らせる運用や、複数プロジェクトを同時に触る開発スタイルほど、この不具合の影響を受けていた可能性があります。v2.1.259への更新で、多重起動しても互いの変更を潰し合わなくなります。

主な変更点

仕様変更

allowedMcpServersの評価対象が変わりました。これまでは、許可リストがmanaged-mcp.jsonで配布された固定サーバーまでフィルタ対象に含めてしまうことがありました。v2.1.259以降、allowedMcpServersユーザーが追加したサーバーだけを対象にします。

バージョンworktree誤拒否の解消範囲
v2.1.257worktree誤拒否の解消範囲gitに触れないBashループ・$VAR展開・"$(…)"のコマンド置換・ヒアドキュメント
v2.1.259worktree誤拒否の解消範囲Bashループ・xargsパイプライン・ランチャー経由コマンド、フックが作成したworktree

同じworktree誤拒否の解消が、v2.1.257からv2.1.259にかけて2段階で対象範囲を広げています。

不具合修正(26件)

件数の多いテーマは次の5つです。

テーマ代表的な修正
セッション・設定の整合性代表的な修正複数セッション併用時の~/.claude.json競合、拒否された思考が以降の全ターンで拒否され続ける問題、--resumeが失敗し--continueが空の会話を開く問題、起動時のツール列挙中に切断したMCPサーバーが「接続済み・ツール0件」と誤表示される問題
権限・パーミッション判定代表的な修正Bash Read()denyルールがオプション引数値・git diff/git grepのファイルオペランド・cd DIR && cat FILEの複合コマンドを見逃していた問題、grep -r/cp -rがdeny対象ディレクトリを素通りしていた問題
管理設定・ガバナンス代表的な修正managed-settings.json・MDM plist・HKLM値が壊れているときに黙って無効化されていた問題、forceRemoteSettingsRefreshがポリシーヘルパー実行後は無視されていた問題
Remote Control・バックグラウンド実行代表的な修正Stopがバックグラウンドエージェント・Workflowsを止めきれない問題、リモート・スケジュール実行のセッションが一時停止中にconnector権限を承認すると何も起きない問題、リモート(claude.ai)セッションでブラウザ側MCPサーバーのページ消失後にターン開始まで60秒かかる問題
worktree分離代表的な修正フックが作成したworktreeをgit rev-parseの失敗で誤って拒否する問題、git操作を含まないBashループ・xargsパイプライン・ランチャー経由コマンドの誤拒否

Bash Read()のdenyルール強化は、既存の仕組みをさらに固める修正でした。「Read deny rule」エラー記事が扱う「読み取りdenyがEdit・Writeも道連れに塞ぐ」仕様の上に、抜け道になっていた経路を塞ぐものです。対象は--ignore-revs-file=.envのようなオプション値、@file形式の引数、cd secrets && cat .envのような複合コマンドで、いずれもファイル内容を読み取れてしまう経路でした。v2.1.259ではこれらが塞がれ、grep -rcp -rがdeny対象ファイルを含むディレクトリに及ぶ場合は確認を求めるようになりました。

ただし、この変更は翌日のv2.1.260で撤回されています。changelogは撤回理由として、Read(./**/build/**)のようなルールの下でnpm run buildがあらゆるモードで拒否されたこと、auto modeでもcd … && grepが確認を求めるようになったことを挙げています。npm registryの公開時刻では両者の間隔は約25時間で、この保護が効いていたのは実質1日です。オプション値経由・git diff/git grepのファイルオペランド経由・cd DIR && cat FILE経由でdeny対象ファイルを読み取れる状態は、v2.1.260以降も開いたままです。機密ファイルの保護をこの経路に依存していた組織は、sandboxのdenyReadなど別の層で塞ぐ必要があります。撤回されなかったのはv2.1.257で入った< fileリダイレクトとtacegrepなどの読み取りコマンドへの適用で、こちらは現在も有効です。

managed-settings.jsonの解析失敗を起動拒否に変えた修正も、既存の組織管理ガイドが説明する「キーごとの不正値はエントリ単位でストリップされる」挙動とは別の階層の話です。今回直ったのは、設定ファイルそのものが壊れていて丸ごとパースに失敗するケースで、これまでは統制が黙って効かなくなるだけでした。v2.1.259からは起動そのものを拒否し、どの設定ソースが原因かを名指しします。統制が音もなく消える最悪のケースを、起動失敗という気づきやすい形に変えた修正です。

worktree分離の誤拒否修正は、v2.1.257で入った「gitに触れないBashループ・$VAR展開・"$(…)"のコマンド置換・ヒアドキュメントの誤拒否解消」の続きです。今回はBashループに加え、xargsパイプラインとランチャー経由コマンド、フックが作成したworktreeも対象になりました。CI関連のシェルスクリプトをworktree内で動かしているチームほど、2回連続の恩恵を受けます。

このほかにも小さくない修正があります。Vertex形式のモデルID(@YYYYMMDDサフィックス)のうち未認識のバージョンでCLAUDE_CODE_MAX_CONTEXT_TOKENSが無視される問題。コマンド・Skillのfrontmattermodel:指定が対話セッションで無視される問題。同じfrontmatterが未対応のモデルを指定していた場合は、auto modeがそのモデルでターンを走らせていました。v2.1.259からはセッションのモデルを維持します。クラウドセッションのOpenTelemetryのメトリクスとイベントからuser.emailorganization.iduser.account_uuid属性が抜け落ちる問題も修正されました。OTEL属性の詳細はOTELユーザー特定の仕組みにまとめています。

改善

長い応答でのターミナルのリサイズ・初回描画性能が、テキスト計測の再利用で向上しました。/workflowsのエージェント詳細では、JSON形式の実行結果(outcome)が色付きで整形表示され、長いものは折りたたみトグルの裏に収まります。headless/SDKセッションでは、MCPサーバーの接続が完了したとき、最初のターンが最大50ミリ秒早く始まります。ネストしたバックグラウンドサブエージェントの結果は親サブエージェントのトランスクリプトに保存されるようになり、再開時にも結果を引き継げます。

VS Code拡張では、セッション一覧サイドバーにActiveクイックフィルターと、Needs input・Working・Completedで絞り込むステータスフィルターメニューが加わりました。

上の5テーマに収まらない修正でも、Hooksやプラグイン配布に関わるものは実務に響きます。ブロックするStop hookを設定していると、ブロックされた次のターンでモデルの推論過程が失われ、モデルによってはプロンプトキャッシュも外れていました。Stop hookで差し戻しと再試行を繰り返すワークフローを組んでいるチームほど、この修正でキャッシュ効率が上がります。Workflowsでは、停止中のrunがまだ終了処理を続けているタイミングで同じrunを再開すると、エージェントが重複して起動する問題が解消されています。プラグインのマーケットプレイスリポジトリをgithub.com URLの末尾スラッシュ付きや?#が残った形で登録すると、生成される.gitクローンURLが壊れて使えなくなる問題も直っています。マーケットプレイスをリポジトリURLで配布している運用者は、既存の登録が影響を受けていないか確認しておくと安心です。

managedMcpServersでHTTP/SSEサーバーの全社配布が管理設定1本で済む

Managed MCPの配布経路は、これまで2系統でした。managed-mcp.jsonは排他制御・stdio対応・MDM配置限定です。allowedMcpServers/deniedMcpServersは既存サーバーの絞り込みで、サーバー管理設定からも配布できます。managedMcpServersはここに3つ目の経路を足します。stdioサーバーを配れない代わりに、HTTP/SSEサーバーだけを他の管理設定と同じ経路で軽く配布できます。

使い分けの軸は「全ユーザーに使わせたいサーバーが排他制御を必要とするか」です。ユーザー自身のMCPサーバー追加を一切禁止し、決まったセットだけを強制したいならmanaged-mcp.jsonのままです。標準のHTTP/SSEサーバーをいくつか全員に配りつつ、ユーザーが自分のサーバーを追加する余地も残したいなら、managedMcpServersのほうが導入の手間は小さくなります。stdioサーバーのエントリが配布時に読み飛ばされる仕様は、社内独自のstdioサーバーを持つ組織にとって当面managed-mcp.jsonを手放せない理由になります。

同じリリースでallowedMcpServersの対象範囲も変わりました。3つの管理設定キーを併用している組織は、アップグレード後に「誰が何を配り、何を絞り込んでいるか」を一度整理し直す価値があります。

まとめ

Claude Code v2.1.259は37件の変更を含みます。うち組織運用に関わるのは、managedMcpServersの追加・allowedMcpServersの対象範囲変更・管理設定破損時の起動拒否の3点です。個人でCLIをそのまま使っているだけの利用者は、複数セッション併用時の設定消失の修正など、自動更新を待てば恩恵を受けられるものが中心です。ただしBashのdenyルール強化だけは例外で、v2.1.260への更新でこの保護は失われます。managed-mcp.jsonallowedMcpServersを組み合わせて運用している組織は、アップグレード前にどのサーバーが対象になっているかを確認しておくと、想定外の復活を避けられます。

番号上の直前バージョンはv2.1.258でした。macOS 12での起動失敗と、リモート・スケジュールセッションのクラッシュ。この2件の不具合修正に絞ったリリースでした。機能追加を伴う直前のリリースはv2.1.257で、Fable 5.1の既定化とauto modeのContainment Escapeルールが中心でした。

関連ガイド

このバージョン単体の位置づけや前後の版とのつながりは、Claude Code(クロードコード)の解説でまとめて確認できます。

この記事を共有:XはてブLinkedIn