NewServer creates a new MCP server instance with proper MCP protocol implementation
(cfg *config.Config, k8sClient *k8s.Client)
| 24 | |
| 25 | // NewServer creates a new MCP server instance with proper MCP protocol implementation |
| 26 | func NewServer(cfg *config.Config, k8sClient *k8s.Client) *Server { |
| 27 | logger := logging.NewLogger("info", "text") |
| 28 | |
| 29 | // Create MCP server |
| 30 | mcpServer := server.NewMCPServer( |
| 31 | "k8s-mcp-server", |
| 32 | "1.0.0", |
| 33 | server.WithResourceCapabilities(true, true), |
| 34 | server.WithToolCapabilities(true), |
| 35 | ) |
| 36 | |
| 37 | s := &Server{ |
| 38 | config: cfg, |
| 39 | k8sClient: k8sClient, |
| 40 | logger: logger, |
| 41 | mcpServer: mcpServer, |
| 42 | toolExecutor: tools.NewToolExecutor(k8sClient, logger), |
| 43 | formatter: NewResourceFormatter(), |
| 44 | } |
| 45 | |
| 46 | // Register MCP resources |
| 47 | s.registerResources() |
| 48 | |
| 49 | // Register MCP tools |
| 50 | s.registerTools() |
| 51 | |
| 52 | return s |
| 53 | } |
| 54 | |
| 55 | // Start starts the MCP server with stdio transport |
| 56 | func (s *Server) Start(ctx context.Context) error { |
nothing calls this directly
no test coverage detected