claude-code/Makefile

103 lines
4.4 KiB
Makefile
Raw Normal View History

2026-02-27 13:44:09 +00:00
.PHONY: help install check-deps install-claude install-mcp-deps \
mcp-context7 mcp-github mcp-firecrawl mcp-supabase mcp-memory \
mcp-sequential-thinking mcp-magic mcp-filesystem mcp-railway \
install-go-tools install-python-tools install-pm2 clean
help:
@echo ""
@echo "Claude Code 工具箱 — 安裝指令"
@echo "=============================="
@echo ""
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | \
awk 'BEGIN {FS = ":.*?## "}; {printf " \033[36m%-28s\033[0m %s\n", $$1, $$2}'
@echo ""
install: check-deps install-mcp-deps ## 一鍵安裝所有依賴
@echo ""
@echo "✅ 全部安裝完成!"
@echo ""
@echo "下一步:"
@echo " 1. 將需要的 MCP server 設定複製到 ~/.claude.json"
@echo " 2. 需要 API Key 的 server 請先設定環境變數"
@echo " 3. 執行 claude 開始使用"
@echo ""
check-deps: ## 檢查前置工具是否已安裝
@echo "🔍 檢查前置工具..."
@command -v node >/dev/null 2>&1 || { echo "❌ 需要 Node.js >= 18"; exit 1; }
@command -v npm >/dev/null 2>&1 || { echo "❌ 需要 npm"; exit 1; }
@command -v git >/dev/null 2>&1 || { echo "❌ 需要 Git"; exit 1; }
@echo " ✓ Node.js $$(node -v)"
@echo " ✓ npm $$(npm -v)"
@echo " ✓ Git $$(git --version | cut -d' ' -f3)"
@command -v claude >/dev/null 2>&1 \
&& echo " ✓ Claude Code CLI" \
|| echo " ⚠️ Claude Code CLI 未安裝(執行 make install-claude"
@echo ""
install-claude: ## 安裝 Claude Code CLI
npm install -g @anthropic-ai/claude-code
install-mcp-deps: ## 安裝所有免費 MCP server 依賴
@echo "📦 預先安裝 MCP server npm 套件..."
@$(MAKE) --no-print-directory mcp-context7
@$(MAKE) --no-print-directory mcp-github
@$(MAKE) --no-print-directory mcp-memory
@$(MAKE) --no-print-directory mcp-sequential-thinking
@$(MAKE) --no-print-directory mcp-magic
@$(MAKE) --no-print-directory mcp-filesystem
@echo ""
@echo "📋 需要 API Key 的 MCP請自行安裝"
@echo " make mcp-firecrawl — FIRECRAWL_API_KEY"
@echo " make mcp-supabase — project-ref"
@echo " make mcp-railway — Railway 登入"
@echo ""
@echo "📋 HTTP 類型不需安裝vercel, cloudflare-*, clickhouse"
mcp-context7: ## Context7即時技術文件查詢
@printf " 📦 context7... " && npx --yes @context7/mcp-server --help >/dev/null 2>&1; echo "✓"
mcp-github: ## GitHub MCP需要 GITHUB_PERSONAL_ACCESS_TOKEN
@printf " 📦 github... " && npx --yes @modelcontextprotocol/server-github --help >/dev/null 2>&1; echo "✓"
mcp-firecrawl: ## Firecrawl MCP需要 FIRECRAWL_API_KEY
@printf " 📦 firecrawl... " && npx --yes firecrawl-mcp --help >/dev/null 2>&1; echo "✓"
mcp-supabase: ## Supabase MCP需要 project-ref
@printf " 📦 supabase... " && npx --yes @supabase/mcp-server-supabase@latest --help >/dev/null 2>&1; echo "✓"
mcp-memory: ## Memory MCP跨 session 記憶)
@printf " 📦 memory... " && npx --yes @modelcontextprotocol/server-memory --help >/dev/null 2>&1; echo "✓"
mcp-sequential-thinking: ## Sequential Thinking MCP鏈式推理
@printf " 📦 sequential-thinking... " && npx --yes @modelcontextprotocol/server-sequential-thinking --help >/dev/null 2>&1; echo "✓"
mcp-magic: ## Magic UI MCPUI 元件)
@printf " 📦 magic... " && npx --yes @magicuidesign/mcp@latest --help >/dev/null 2>&1; echo "✓"
mcp-filesystem: ## Filesystem MCP檔案系統操作
@printf " 📦 filesystem... " && npx --yes @modelcontextprotocol/server-filesystem --help >/dev/null 2>&1; echo "✓"
mcp-railway: ## Railway MCP部署管理
@printf " 📦 railway... " && npx --yes @railway/mcp-server --help >/dev/null 2>&1; echo "✓"
install-go-tools: ## Go 輔助工具golangci-lint, deadcode
@command -v go >/dev/null 2>&1 || { echo "❌ 需要先安裝 Go"; exit 1; }
go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
go install golang.org/x/tools/cmd/deadcode@latest
@echo "✅ Go 工具安裝完成"
install-python-tools: ## Python 輔助工具ruff, mypy, bandit, black
@command -v python3 >/dev/null 2>&1 || { echo "❌ 需要先安裝 Python 3"; exit 1; }
pip3 install ruff mypy bandit black isort
@echo "✅ Python 工具安裝完成"
install-pm2: ## PM2 程序管理器
npm install -g pm2
@echo "✅ PM2 安裝完成"
clean: ## 清理 npx 快取
npm cache clean --force 2>/dev/null || true
@echo "✅ 清理完成"