| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- package main
- import (
- "fmt"
- "log"
- "os"
- "github.com/mark3labs/mcp-go/server"
- "fwh-toolbox-server/cache"
- "fwh-toolbox-server/config"
- "fwh-toolbox-server/database"
- "fwh-toolbox-server/logger"
- "fwh-toolbox-server/repositories"
- "fwh-toolbox-server/cmd/mcp/tools"
- )
- func main() {
- // 加载配置(复用现有 config)
- cfg, err := config.LoadConfig()
- if err != nil {
- log.Fatalf("加载配置失败: %v", err)
- }
- // 初始化 logger
- logger.Init(cfg.App.AppEnv)
- defer logger.Log.Sync()
- // 初始化基础设施(与 HTTP Server 相同)
- if err := database.Init(&cfg.App); err != nil {
- log.Fatalf("数据库初始化失败: %v", err)
- }
- cache.Init(cfg.App.RedisAddr)
- repositories.PlaneWebHttpInit(&cfg.PlaneWebApi)
- // 创建 MCP Server
- s := server.NewMCPServer(
- "fwh-tools",
- "1.0.0",
- server.WithToolCapabilities(false),
- server.WithRecovery(),
- )
- // 注册所有 Tools
- tools.RegisterSiteInfoTools(s)
- tools.RegisterSimCardTools(s)
- tools.RegisterPowerFlowTools(s)
- tools.RegisterAlarmTools(s)
- tools.RegisterShutdownTools(s)
- tools.RegisterPlaneTools(s)
- // 启动 stdio 通信
- fmt.Fprintln(os.Stderr, "[fwh-mcp-server] started (stdio)")
- if err := server.ServeStdio(s); err != nil {
- log.Fatalf("[fwh-mcp-server] error: %v", err)
- }
- }
|