shutdown.go 990 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. package tools
  2. import (
  3. "context"
  4. "encoding/json"
  5. "fmt"
  6. "github.com/mark3labs/mcp-go/mcp"
  7. "github.com/mark3labs/mcp-go/server"
  8. "fwh-toolbox-server/services"
  9. )
  10. func RegisterShutdownTools(s *server.MCPServer) {
  11. s.AddTool(
  12. mcp.NewTool("query_shutdown_statistics",
  13. mcp.WithDescription("查询停机统计数据(按日期汇总停机站点信息)"),
  14. mcp.WithString("date", mcp.Description("统计日期,格式 yyyy-MM-dd(不传则查最新)")),
  15. ),
  16. handleQueryShutdownStatistics,
  17. )
  18. }
  19. func handleQueryShutdownStatistics(ctx context.Context, req mcp.CallToolRequest) (*mcp.CallToolResult, error) {
  20. date := req.GetString("date", "")
  21. var datePtr *string
  22. if date != "" {
  23. datePtr = &date
  24. }
  25. data, err := services.GetShutdownStatistics(datePtr)
  26. if err != nil {
  27. return mcp.NewToolResultError(fmt.Sprintf("查询停机统计失败: %v", err)), nil
  28. }
  29. jsonBytes, _ := json.MarshalIndent(data, "", " ")
  30. return mcp.NewToolResultText(string(jsonBytes)), nil
  31. }