Skip to content

原文(日本語に翻訳)

/doctor を改善し、MCP サーバーが異なるエンドポイントで複数の設定スコープに定義されている場合に警告を表示するようになった

原文(英語)

Improved /doctor to warn when an MCP server is defined in multiple config scopes with different endpoints

概要

/doctor コマンドが、MCP(Model Context Protocol)サーバーの設定に関する新しい診断チェックを追加しました。同じ MCP サーバーがグローバル設定とプロジェクト設定など、複数のスコープで異なるエンドポイントに定義されている場合に警告が表示されます。これにより、意図しない設定の競合を早期に発見し、MCP サーバーが期待通りに動作しない問題を防げます。

基本的な使い方

bash
# 診断チェックを実行
/doctor

# MCP サーバーの設定競合がある場合、以下のような警告が表示される:
# ⚠ Warning: MCP server "my-server" is defined in multiple scopes with different endpoints
#   - Global: http://localhost:3000
#   - Project: http://localhost:4000

実践例

MCP サーバーの設定確認

複数の設定ファイルで MCP サーバーを定義している場合に問題が発生しやすい構成:

json
// ~/.claude/settings.json(グローバルスコープ)
{
  "mcpServers": {
    "my-server": {
      "url": "http://localhost:3000"
    }
  }
}
json
// .claude/settings.json(プロジェクトスコープ)
{
  "mcpServers": {
    "my-server": {
      "url": "http://localhost:4000"  // 異なるエンドポイント!
    }
  }
}

この状態で /doctor を実行すると警告が表示されます。

競合の解決方法

方法 1: プロジェクトスコープの設定を優先

グローバル設定から該当の MCP サーバー定義を削除し、プロジェクト固有の設定を使用:

json
// ~/.claude/settings.json から削除
// .claude/settings.json のみで管理

方法 2: グローバル設定に統一

全プロジェクトで同じエンドポイントを使う場合は、プロジェクトスコープの設定を削除してグローバルに統一:

json
// .claude/settings.json からプロジェクト固有の定義を削除

方法 3: 意図的に異なるエンドポイントを使う場合

プロジェクトごとに異なるエンドポイントが必要な場合は、サーバー名を変えて区別:

json
// プロジェクトスコープ
{
  "mcpServers": {
    "my-server-dev": {
      "url": "http://localhost:4000"
    }
  }
}

定期的な診断チェック

bash
# MCP サーバー設定変更後は必ず診断を実行
/doctor

# 全てのチェックが通過すると以下が表示される
# ✓ No configuration conflicts detected

注意点

  • /doctor は設定競合を警告するだけで、自動的に修正はしません
  • 同じ名前で異なるエンドポイントが定義されている場合、どちらのエンドポイントが実際に使用されるかは設定スコープの優先順位によります(プロジェクト > ユーザー > グローバル)
  • MCP サーバーの動作に問題がある場合は、まず /doctor で設定を確認することをお勧めします

関連情報