package mcp import ( "fmt" "os" "strings" "github.com/engigu/taskpool/internal/mcp" imc "github.com/engigu/taskpool/internal/mcp" ) // Run 启动 TaskPool MCP Server(stdio 模式) // 环境变量(可选,默认使用本地服务器配置): // TASKPOOL_URL 面板地址 // TASKPOOL_TOKEN OpenAPI Token func Run(args []string) { for _, a := range args { if a == "-h" || a == "--help" { printHelp() return } } // 使用内部 OpenAPI 客户端(自动获取服务器地址和 Token) client := imc.GetOpenAPIClient() fmt.Fprintf(os.Stderr, "[taskpool-mcp] stdio mode, url=%s token=%s\n", client.BaseURL, maskToken(client.Token)) s := mcp.GetServer() // 设置外部客户端(用于连接远程服务器) if client.Token != "" { mcp.SetExternalClient(client) } if err := mcp.ServeStdio(s); err != nil { fmt.Fprintf(os.Stderr, "[taskpool-mcp] error: %v\n", err) os.Exit(1) } } func maskToken(t string) string { t = strings.TrimSpace(t) if t == "" { return "(empty)" } if len(t) <= 8 { return "****" } return t[:4] + "****" + t[len(t)-4:] } func printHelp() { fmt.Fprintf(os.Stderr, ` TaskPool MCP Server MCP Server 已内置在后端服务中: HTTP 端点: http://your-server:8052/mcp 此命令仅用于 stdio 模式(Claude Desktop / Cursor 等)。 用法: taskpool mcp 环境变量(可选): TASKPOOL_URL 面板地址(默认使用本机) TASKPOOL_TOKEN OpenAPI Token(默认从系统设置读取) Agent 配置: HTTP 模式(Hermes / OpenClaw): { "mcpServers": { "taskpool": { "url": "http://your-server:8052/mcp", "headers": { "Authorization": "Bearer 你的Token" } } } } stdio 模式(Claude Desktop / Cursor): { "mcpServers": { "taskpool": { "command": "taskpool", "args": ["mcp"] } } } 前置条件: 系统设置 → 启用 OpenAPI → 生成 Token `) }