Skip to content

原文(日本語に翻訳)

.claude.jsondisabledMcpServers または enabledMcpServers が配列以外の値に設定されている場合に、起動時にクラッシュしていた問題を修正しました

原文(英語)

Fixed a crash at startup when disabledMcpServers or enabledMcpServers in .claude.json is set to a non-array value

概要

.claude.jsondisabledMcpServers / enabledMcpServers は、有効・無効にするMCPサーバー名の一覧を配列で指定する設定項目です。以前のバージョンでは、この値が手動編集や外部ツールによる書き換えなどで配列以外(文字列やオブジェクトなど)になっていた場合、Claude Codeが起動時にその値を配列として扱おうとしてクラッシュしていました。この修正により、値の形式が不正でもクラッシュせずに済むようになりました。

基本的な使い方

修正前(Before):

jsonc
// ~/.claude.json または プロジェクトの .claude.json
{
  "disabledMcpServers": "my-server" // 誤って文字列を指定
}
bash
claude
# → 起動時にクラッシュしてCLIが使用不能になる

修正後(After):

bash
claude
# → 不正な形式の値があってもクラッシュせずに起動する

実践例

手動で .claude.json を編集していて配列の閉じ忘れ・書式ミスをした場合

エディタで直接 .claude.json を編集中に、配列の記法を誤って単一の文字列にしてしまうことがあります。この修正以前は、こうした単純な書式ミスがそのままCLIの起動不能につながっていましたが、修正後はクラッシュを回避できます。

jsonc
{
  "enabledMcpServers": "context7" // 本来は ["context7"] とすべきだった
}

外部スクリプトやツールでMCPサーバー設定を自動生成している場合

CI/CDやセットアップスクリプトから .claude.json を生成・更新するワークフローでは、想定外の型の値が書き込まれるリスクがあります。この修正により、そうした不正値が原因でチーム全員のCLIが起動できなくなるような事態を避けやすくなります。

複数プロジェクト・複数マシンで設定を使い回している場合

異なるバージョンのClaude Codeやツール間で .claude.json を共有・同期していると、フォーマットの互換性が崩れることがあります。本修正により、そうしたケースでも起動時クラッシュという最悪の事態は避けられるようになりました。

注意点

  • あくまで「クラッシュを防ぐ」修正であり、disabledMcpServers / enabledMcpServers は引き続き配列形式で指定する必要があります。不正な値が渡された場合の具体的な扱い(無視されるか、警告が出るかなど)は changelog 上では明記されていません。
  • 設定ファイルの構文自体は正しいものにしておくのが安全です。MCPサーバーの有効化・無効化は、可能であれば /mcp コマンドなど公式の手順を使うことを推奨します。
  • この修正はv2.1.200で導入されました。それ以前のバージョンで同様の現象が発生した場合は、.claude.json 内の該当フィールドが配列形式になっているか手動で確認してください。

関連情報