.PHONY: run-stdio run-sse run-dev build test clean lint # 从项目根 .env 提取 API Key 并设为环境变量 #(@前缀隐藏配方回显,避免在终端暴露命令内容) _ENV_KEYS = TAVILY_API_KEYS="$$(grep '^TAVILY_API_KEYS=' ../../.env | head -1 | cut -d= -f2-)" \ BRAVE_API_KEYS="$$(grep '^BRAVE_API_KEYS=' ../../.env | head -1 | cut -d= -f2-)" # 本地 stdio 模式(用于 Claude Desktop / Cursor 等 MCP Client 子进程集成) run-stdio: @$(_ENV_KEYS) go run ./cmd/server --stdio --config ../../config/mcp/web-search.yaml # 本地 SSE 模式(Streamable HTTP,灵台注册或远程 MCP Client 直连) # 端口来自 config/mcp/web-search.yaml → server.port # --port 未显式传时使用配置中的 port,传则覆盖 run-sse: @$(_ENV_KEYS) go run ./cmd/server --config ../../config/mcp/web-search.yaml # 本地开发:指定端口覆盖配置中的 port run-dev: @$(_ENV_KEYS) go run ./cmd/server --config ../../config/mcp/web-search.yaml --port $(PORT) # 构建二进制 build: go build -o bin/bowen-server ./cmd/server # 测试 test: go test ./... -v -count=1 # 清理 clean: rm -rf bin/ tmp/ # Lint lint: golangci-lint run ./...