Skip to content

原文(日本語に翻訳)

--mcp-config が破損したファイルを指している場合にハングしていた問題を修正しました

原文(英語)

Fixed hang when --mcp-config points to a corrupted file

概要

--mcp-config フラグでカスタムの MCP 設定ファイルを指定した際、そのファイルが破損していた(不正な JSON など)場合、Claude Code が応答しなくなってしまう(ハング)バグがありました。修正後は破損したファイルを検出した際に適切なエラーメッセージを表示して終了するようになります。

基本的な使い方

bash
# 破損した MCP 設定ファイルを指定した場合
claude --mcp-config /path/to/corrupted-config.json

# 修正前: ハング(無限に待機)
# 修正後: エラーメッセージを表示して終了
# → 例: "エラー: MCP 設定ファイルが不正な形式です: /path/to/corrupted-config.json"

実践例

破損したMCP設定ファイルの例

json
// 破損した mcp-config.json の例(不完全な JSON)
{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"
      // ← ここでファイルが切れている(破損)
bash
# このファイルを指定した場合
claude --mcp-config ./corrupted-mcp-config.json

# 修正前: Claude Code がハング(応答なし)
# 修正後:
# "エラー: MCP 設定ファイルのパースに失敗しました"
# "ファイル: ./corrupted-mcp-config.json"
# "詳細: Unexpected end of JSON input"

設定ファイルのバリデーション

bash
# MCP 設定ファイルが正しい JSON かどうか確認する方法
cat .mcp.json | python3 -m json.tool
# → エラーなし: 正常な JSON
# → エラーあり: 破損または不正な JSON

# または jq を使って確認
jq . .mcp.json

正しい MCP 設定ファイルの例

json
// 正しい形式の .mcp.json
{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "<your-token>"
      }
    }
  }
}

注意点

  • MCP 設定ファイルは有効な JSON 形式である必要があります
  • ファイルが破損していた場合は、バックアップから復元するか再作成してください
  • claude --mcp-config を使用せずに .mcp.json を自動検出させることもできます
  • 設定ファイルを編集する際はテキストエディタの JSON バリデーション機能を活用してください

関連情報