Skip to content

原文(日本語に翻訳)

MCP headersHelper スクリプトに CLAUDE_CODE_MCP_SERVER_NAMECLAUDE_CODE_MCP_SERVER_URL 環境変数を追加。1つのヘルパースクリプトで複数のサーバーに対応可能になりました。

原文(英語)

Added CLAUDE_CODE_MCP_SERVER_NAME and CLAUDE_CODE_MCP_SERVER_URL environment variables to MCP headersHelper scripts, allowing one helper to serve multiple servers

概要

MCPの headersHelper スクリプトを呼び出す際に、新しい環境変数 CLAUDE_CODE_MCP_SERVER_NAMECLAUDE_CODE_MCP_SERVER_URL が渡されるようになりました。これにより、1つのヘルパースクリプトが接続先サーバーの情報を取得して、複数のMCPサーバーに対して適切な認証ヘッダーを動的に生成できます。

基本的な使い方

headersHelper スクリプト内で、以下の環境変数を参照できます:

bash
#!/bin/bash
# 接続先のMCPサーバー名とURLを取得
SERVER_NAME="$CLAUDE_CODE_MCP_SERVER_NAME"
SERVER_URL="$CLAUDE_CODE_MCP_SERVER_URL"

# サーバーに応じたトークンを返す
if [ "$SERVER_NAME" = "my-api-server" ]; then
  echo '{"Authorization": "Bearer token-for-api-server"}'
elif [ "$SERVER_NAME" = "my-data-server" ]; then
  echo '{"Authorization": "Bearer token-for-data-server"}'
fi

実践例

ユースケース: 複数のMCPサーバーを1つのヘルパーで管理

~/.claude/mcp-headers.sh を作成し、すべてのMCPサーバーのヘッダーを一元管理する例:

bash
#!/bin/bash

case "$CLAUDE_CODE_MCP_SERVER_NAME" in
  "github-mcp")
    TOKEN=$(security find-generic-password -s "github-token" -w)
    echo "{\"Authorization\": \"Bearer $TOKEN\"}"
    ;;
  "jira-mcp")
    TOKEN=$(security find-generic-password -s "jira-token" -w)
    echo "{\"Authorization\": \"Basic $TOKEN\"}"
    ;;
  "custom-api")
    echo "{\"X-API-Key\": \"$(cat ~/.api-keys/custom-api)\"}"
    ;;
  *)
    echo "{}"
    ;;
esac

MCPの設定例(.claude/settings.json):

json
{
  "mcpServers": {
    "github-mcp": {
      "url": "https://mcp.github.com",
      "headersHelper": "~/.claude/mcp-headers.sh"
    },
    "jira-mcp": {
      "url": "https://mcp.atlassian.com",
      "headersHelper": "~/.claude/mcp-headers.sh"
    }
  }
}

注意点

  • CLAUDE_CODE_MCP_SERVER_NAME はMCPサーバーの設定キー名が渡されます
  • CLAUDE_CODE_MCP_SERVER_URL はMCPサーバーのURLが渡されます
  • スクリプトはJSON形式のヘッダーオブジェクトを標準出力に返す必要があります
  • セキュリティのため、トークンはスクリプト内にハードコードせず、キーチェーンや環境変数から取得することを推奨します

関連情報