Skip to content

原文(日本語に翻訳)

MCP stdioサーバーがフックと同様に環境変数CLAUDE_PROJECT_DIRを受け取るようになりました。プラグイン設定でコマンド内に${CLAUDE_PROJECT_DIR}を参照できます

原文(英語)

MCP stdio servers now receive CLAUDE_PROJECT_DIR in their environment, matching hooks. Plugin configs can reference ${CLAUDE_PROJECT_DIR} in commands

概要

MCP(Model Context Protocol)のstdioサーバーが、フックと同様に環境変数CLAUDE_PROJECT_DIRを受け取るようになりました。これにより、MCPサーバーのコマンドやプラグイン設定内で${CLAUDE_PROJECT_DIR}プレースホルダーを使用でき、プロジェクトルートディレクトリへの参照がより簡単になります。

基本的な使い方

.mcp.jsonまたはplugin.json内のMCPサーバー設定でプレースホルダーを使用:

json
{
  "mcpServers": {
    "my-project-tools": {
      "command": "node",
      "args": [
        "${CLAUDE_PROJECT_DIR}/.mcp/server.js",
        "--config",
        "${CLAUDE_PROJECT_DIR}/.mcp/config.json"
      ]
    }
  }
}

実践例

プロジェクトルートのMCPサーバーを参照

json
{
  "mcpServers": {
    "database": {
      "command": "python",
      "args": [
        "${CLAUDE_PROJECT_DIR}/tools/db-mcp-server.py"
      ],
      "env": {
        "DB_CONFIG": "${CLAUDE_PROJECT_DIR}/config/database.yaml"
      }
    }
  }
}

ユーザー/プロジェクトスコープ設定でのフォールバック

ユーザーレベルやプロジェクトレベルの設定では、プロジェクト外で実行される場合のフォールバックを推奨:

json
{
  "mcpServers": {
    "my-tools": {
      "command": "${CLAUDE_PROJECT_DIR:-.}/.mcp/tools-server",
      "args": []
    }
  }
}

プラグインでのCLAUDE_PROJECT_DIR活用

プラグイン提供のMCPサーバー設定では直接使用可能:

json
{
  "mcpServers": {
    "plugin-db-tools": {
      "command": "node",
      "args": [
        "${CLAUDE_PLUGIN_ROOT}/server/index.js",
        "--project-dir",
        "${CLAUDE_PROJECT_DIR}"
      ]
    }
  }
}

利用可能な環境変数

MCP stdioサーバーで使用できるプレースホルダー:

変数説明
${CLAUDE_PROJECT_DIR}プロジェクトルートディレクトリの安定したパス
${CLAUDE_PLUGIN_ROOT}プラグインのバンドルファイルのディレクトリ
${CLAUDE_PLUGIN_DATA}プラグインの永続状態用ディレクトリ

注意点

  • CLAUDE_PROJECT_DIRはフックと同じプロジェクトルートを指します
  • プロジェクト外(グローバル設定)で使用する場合は${CLAUDE_PROJECT_DIR:-.}のようにフォールバックを設定することを推奨します
  • プラグイン提供の設定ではフォールバックなしで直接使用できます
  • この変更により、MCPサーバーがプロジェクト固有のファイルにアクセスする際の設定が統一されました

関連情報