From 84fcf5867362959a367dff8a8cb738af3e791afa Mon Sep 17 00:00:00 2001 From: ysyneu Date: Wed, 8 Jul 2026 04:24:58 -0700 Subject: [PATCH] fix(server): adopt mcp-go v0.55 WithStreamableHTTPLogger API mcp-go v0.55 renamed the StreamableHTTP transport logger option from WithLogger to WithStreamableHTTPLogger and switched it to *slog.Logger (WithLogger now sets a server-level logger on the MCPServer). The dep bump (#69) left newStreamableHTTPServer calling the old signature, breaking the build on main. Switch to WithStreamableHTTPLogger(logger) and drop the now -obsolete slogAdapter shim. --- internal/flashduty/server.go | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/internal/flashduty/server.go b/internal/flashduty/server.go index aecc013..1e7e47c 100644 --- a/internal/flashduty/server.go +++ b/internal/flashduty/server.go @@ -24,19 +24,6 @@ import ( "github.com/flashcatcloud/flashduty-mcp-server/pkg/translations" ) -// slogAdapter adapts slog.Logger to mcp-go's util.Logger interface -type slogAdapter struct { - logger *slog.Logger -} - -func (a *slogAdapter) Infof(format string, v ...any) { - a.logger.Info(fmt.Sprintf(format, v...)) -} - -func (a *slogAdapter) Errorf(format string, v ...any) { - a.logger.Error(fmt.Sprintf(format, v...)) -} - type FlashdutyConfig struct { // Version of the server Version string @@ -148,7 +135,10 @@ func NewMCPServer(cfg FlashdutyConfig) (*server.MCPServer, error) { func newStreamableHTTPServer(mcpServer *server.MCPServer, logger *slog.Logger, contextFunc server.HTTPContextFunc) *server.StreamableHTTPServer { return server.NewStreamableHTTPServer( mcpServer, - server.WithLogger(&slogAdapter{logger: logger}), + // mcp-go v0.55 renamed the transport logger option to + // WithStreamableHTTPLogger and switched it to *slog.Logger, so the + // former slogAdapter shim is no longer needed. + server.WithStreamableHTTPLogger(logger), // Return 405 for GET requests — this server doesn't use server-initiated // features (sampling, elicitation). Without this, the SDK's standalone SSE // GET hangs indefinitely because mcp-go creates an orphan session and blocks.