// forge-tools-proxmox — MCP-сервер для управления гипервизором Proxmox VE // (forge-tools). Покрывает только домен гипервизора: кластер/ноды, QEMU-ВМ, // LXC-контейнеры, снапшоты, бэкапы, задачи, хранилища, сеть и состояние — // и НЕ дублирует возможности других модулей (ssh — remote exec, filesystem — // локальные файлы, postgres — БД). stdio-only, одиночный потокобезопасный // Manager, ручные JSON-Schema, --health, graceful shutdown, isolation=pooled // (per-agent конфиг приходит на каждый вызов через _tenant_config). package main import ( "flag" "fmt" "os" "forge-tools-proxmox/internal/pve" "forge-tools-proxmox/internal/tools" "git.totmin.ru/en2zmax/forge-toolkit" "github.com/modelcontextprotocol/go-sdk/mcp" ) func main() { if toolkit.Health() { return } // -config: легаси-одиночный режим (постоянный конфиг). Пусто = pooled: // per-agent конфиг приходит на вызов через _tenant_config (ядро // перезаписывает ключ, модель подменить не может). configPath := flag.String("config", "", "путь к pve.json (пусто = pooled через _tenant_config)") flag.Parse() mgr := pve.NewManager(*configPath) defer mgr.Close() if err := toolkit.Run("forge-tools-proxmox", func(s *mcp.Server) { tools.RegisterAll(s, mgr) }); err != nil { fmt.Fprintf(os.Stderr, "forge-tools-proxmox: %v\n", err) os.Exit(1) } }