package tools import ( "context" "encoding/json" "fmt" "github.com/mark3labs/mcp-go/mcp" "github.com/mark3labs/mcp-go/server" "fwh-toolbox-server/services" ) func RegisterShutdownTools(s *server.MCPServer) { s.AddTool( mcp.NewTool("query_shutdown_statistics", mcp.WithDescription("查询停机统计数据(按日期汇总停机站点信息)"), mcp.WithString("date", mcp.Description("统计日期,格式 yyyy-MM-dd(不传则查最新)")), ), handleQueryShutdownStatistics, ) } func handleQueryShutdownStatistics(ctx context.Context, req mcp.CallToolRequest) (*mcp.CallToolResult, error) { date := req.GetString("date", "") var datePtr *string if date != "" { datePtr = &date } data, err := services.GetShutdownStatistics(datePtr) if err != nil { return mcp.NewToolResultError(fmt.Sprintf("查询停机统计失败: %v", err)), nil } jsonBytes, _ := json.MarshalIndent(data, "", " ") return mcp.NewToolResultText(string(jsonBytes)), nil }