103 lines
4.4 KiB
Makefile
103 lines
4.4 KiB
Makefile
|
|
.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 MCP(UI 元件)
|
|||
|
|
@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 "✅ 清理完成"
|
|||
|
|
|