NewServer creates a new MCP HTTP server
(logger slog.Logger)
| 41 | |
| 42 | // NewServer creates a new MCP HTTP server |
| 43 | func NewServer(logger slog.Logger) (*Server, error) { |
| 44 | // Create the core MCP server |
| 45 | mcpSrv := server.NewMCPServer( |
| 46 | MCPServerName, |
| 47 | buildinfo.Version(), |
| 48 | server.WithInstructions(MCPServerInstructions), |
| 49 | ) |
| 50 | |
| 51 | // Create logger adapter for mcp-go |
| 52 | mcpLogger := &mcpLoggerAdapter{logger: logger} |
| 53 | |
| 54 | // Create streamable HTTP server with configuration |
| 55 | streamableServer := server.NewStreamableHTTPServer(mcpSrv, |
| 56 | server.WithHeartbeatInterval(30*time.Second), |
| 57 | server.WithLogger(mcpLogger), |
| 58 | ) |
| 59 | |
| 60 | return &Server{ |
| 61 | Logger: logger, |
| 62 | mcpServer: mcpSrv, |
| 63 | streamableServer: streamableServer, |
| 64 | }, nil |
| 65 | } |
| 66 | |
| 67 | // ServeHTTP implements http.Handler interface |
| 68 | func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) { |
no test coverage detected