main.go 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. package main
  2. import (
  3. "fmt"
  4. "log"
  5. "os"
  6. "github.com/mark3labs/mcp-go/server"
  7. "fwh-toolbox-server/cache"
  8. "fwh-toolbox-server/config"
  9. "fwh-toolbox-server/database"
  10. "fwh-toolbox-server/logger"
  11. "fwh-toolbox-server/repositories"
  12. "fwh-toolbox-server/cmd/mcp/tools"
  13. )
  14. func main() {
  15. // 加载配置(复用现有 config)
  16. cfg, err := config.LoadConfig()
  17. if err != nil {
  18. log.Fatalf("加载配置失败: %v", err)
  19. }
  20. // 初始化 logger
  21. logger.Init(cfg.App.AppEnv)
  22. defer logger.Log.Sync()
  23. // 初始化基础设施(与 HTTP Server 相同)
  24. if err := database.Init(&cfg.App); err != nil {
  25. log.Fatalf("数据库初始化失败: %v", err)
  26. }
  27. cache.Init(cfg.App.RedisAddr)
  28. repositories.PlaneWebHttpInit(&cfg.PlaneWebApi)
  29. // 创建 MCP Server
  30. s := server.NewMCPServer(
  31. "fwh-tools",
  32. "1.0.0",
  33. server.WithToolCapabilities(false),
  34. server.WithRecovery(),
  35. )
  36. // 注册所有 Tools
  37. tools.RegisterSiteInfoTools(s)
  38. tools.RegisterSimCardTools(s)
  39. tools.RegisterPowerFlowTools(s)
  40. tools.RegisterAlarmTools(s)
  41. tools.RegisterShutdownTools(s)
  42. tools.RegisterPlaneTools(s)
  43. // 启动 stdio 通信
  44. fmt.Fprintln(os.Stderr, "[fwh-mcp-server] started (stdio)")
  45. if err := server.ServeStdio(s); err != nil {
  46. log.Fatalf("[fwh-mcp-server] error: %v", err)
  47. }
  48. }