monitor.go 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package service
  2. import (
  3. "context"
  4. "github.com/mark3labs/mcp-go/mcp"
  5. "github.com/mark3labs/mcp-go/server"
  6. "fwh-toolbox-server/cmd/mcp/tools/helper"
  7. "fwh-toolbox-server/services"
  8. )
  9. func registerMonitorTools(s *server.MCPServer) {
  10. s.AddTool(
  11. mcp.NewTool("service_monitor_alarm_stats",
  12. mcp.WithDescription("查询告警统计数据(按日期汇总各类告警数量)"),
  13. mcp.WithString("date", mcp.Description("统计日期,格式 yyyy-MM-dd(不传则查最新)")),
  14. ),
  15. handleAlarmStats,
  16. )
  17. s.AddTool(
  18. mcp.NewTool("service_monitor_shutdown_stats",
  19. mcp.WithDescription("查询停机统计数据(按日期汇总停机站点信息)"),
  20. mcp.WithString("date", mcp.Description("统计日期,格式 yyyy-MM-dd(不传则查最新)")),
  21. ),
  22. handleShutdownStats,
  23. )
  24. }
  25. func handleAlarmStats(ctx context.Context, req mcp.CallToolRequest) (*mcp.CallToolResult, error) {
  26. date := req.GetString("date", "")
  27. var datePtr *string
  28. if date != "" {
  29. datePtr = &date
  30. }
  31. data, err := services.GetAlarmStatistics(datePtr)
  32. if err != nil {
  33. return helper.ServiceError("查询告警统计", err), nil
  34. }
  35. return helper.JSONResultOrFileAuto(data), nil
  36. }
  37. func handleShutdownStats(ctx context.Context, req mcp.CallToolRequest) (*mcp.CallToolResult, error) {
  38. date := req.GetString("date", "")
  39. var datePtr *string
  40. if date != "" {
  41. datePtr = &date
  42. }
  43. data, err := services.GetShutdownStatistics(datePtr)
  44. if err != nil {
  45. return helper.ServiceError("查询停机统计", err), nil
  46. }
  47. return helper.JSONResultOrFileAuto(data), nil
  48. }