diff --git a/init.sh b/init.sh index 9a9a5e9..fa0c396 100755 --- a/init.sh +++ b/init.sh @@ -57,8 +57,16 @@ if [ "$MODE" = "sse" ]; then fi # ── Detect claude CLI ──────────────────────────────────────────────── -HAS_CLAUDE=false +CLAUDE_BIN="" if command -v claude &>/dev/null; then + CLAUDE_BIN="claude" +elif [ -x "/opt/homebrew/bin/claude" ]; then + CLAUDE_BIN="/opt/homebrew/bin/claude" +elif [ -x "/usr/local/bin/claude" ]; then + CLAUDE_BIN="/usr/local/bin/claude" +fi +HAS_CLAUDE=false +if [ -n "$CLAUDE_BIN" ]; then HAS_CLAUDE=true fi @@ -111,8 +119,8 @@ if [ "$MODE" = "remote" ]; then if $HAS_CLAUDE; then # 新版 Claude Code: 用 claude mcp add 注册(transport=http,即 Streamable HTTP) # 先移除旧配置(忽略错误) - claude mcp remove -s user ai-proj 2>/dev/null || true - claude mcp add ai-proj "$SSE_URL" -t http -s user -H "X-API-Key: $TOKEN" 2>&1 + "$CLAUDE_BIN" mcp remove -s user ai-proj 2>/dev/null || true + "$CLAUDE_BIN" mcp add ai-proj "$SSE_URL" -t http -s user -H "X-API-Key: $TOKEN" 2>&1 echo "✅ 已通过 claude mcp add 注册 (Streamable HTTP)" else # 旧版或无 CLI: 回退写 .mcp.json(使用 http transport) @@ -150,8 +158,8 @@ elif [ "$MODE" = "stdio" ]; then BRIDGE_ENTRY="$MCP_BRIDGE_DIR/dist/index.js" if $HAS_CLAUDE; then - claude mcp remove -s user ai-proj 2>/dev/null || true - claude mcp add ai-proj -s user -e "NODE_ENV=production" -e "TASK_API_BASE=$API_BASE" -e "TASK_API_TOKEN=$TOKEN" -e "MCP_SERVER_NAME=ai-proj" -- node "$BRIDGE_ENTRY" 2>&1 + "$CLAUDE_BIN" mcp remove -s user ai-proj 2>/dev/null || true + "$CLAUDE_BIN" mcp add ai-proj -s user -e "NODE_ENV=production" -e "TASK_API_BASE=$API_BASE" -e "TASK_API_TOKEN=$TOKEN" -e "MCP_SERVER_NAME=ai-proj" -- node "$BRIDGE_ENTRY" 2>&1 echo "✅ 已通过 claude mcp add 注册 (stdio)" else mkdir -p "$(dirname "$MCP_CONFIG")"