mcp-go icon indicating copy to clipboard operation
mcp-go copied to clipboard

bug: Incorrect sampling handling leads to errors and superfluous response write call

Open StarpTech opened this issue 4 months ago • 0 comments

Description

Hi, after upgrading from 0.36.0 to 0.38.0, I see the following error logs when using the MCP inspector to list my tools. It appears that sample requests are not being correctly identified. This must be a regression from 0.37.0. Beside false errors, it also produces a superfluous response.WriteHeader call.

Transport: Streamable HTTP Client: MCP Inspector

Inspector usage

npx @modelcontextprotocol/inspector@latest

Logs or Error Messages

09:58:24 AM ERROR mcpserver/util.go:30 Failed to handle sampling response: missing session ID {"hostname": "Mac.fritz.box", "pid": 29643, "service": "@wundergraph/router", "service_version": "dev", "storage_provider_id": "mcp", "component": "mcp-server"}
github.com/wundergraph/cosmo/router/pkg/mcpserver.(*ZapAdapter).Errorf
	/Users/ddeus/p/wundergraph/cosmo/router/pkg/mcpserver/util.go:30
github.com/mark3labs/mcp-go/server.(*StreamableHTTPServer).handlePost
	/Users/ddeus/go/pkg/mod/github.com/mark3labs/[email protected]/server/streamable_http.go:248
github.com/mark3labs/mcp-go/server.(*StreamableHTTPServer).ServeHTTP
	/Users/ddeus/go/pkg/mod/github.com/mark3labs/[email protected]/server/streamable_http.go:158
github.com/wundergraph/cosmo/router/pkg/mcpserver.(*GraphQLSchemaServer).Serve.func1
	/Users/ddeus/p/wundergraph/cosmo/router/pkg/mcpserver/server.go:312
net/http.HandlerFunc.ServeHTTP
	/usr/local/go/src/net/http/server.go:2294
github.com/wundergraph/cosmo/router/pkg/mcpserver.WithCORS.func1.1
	/Users/ddeus/p/wundergraph/cosmo/router/pkg/mcpserver/server.go:787
net/http.HandlerFunc.ServeHTTP
	/usr/local/go/src/net/http/server.go:2294
net/http.(*ServeMux).ServeHTTP
	/usr/local/go/src/net/http/server.go:2822
net/http.serverHandler.ServeHTTP
	/usr/local/go/src/net/http/server.go:3301
net/http.(*conn).serve
	/usr/local/go/src/net/http/server.go:2102
2025/08/21 09:58:24 http: superfluous response.WriteHeader call from github.com/mark3labs/mcp-go/server.(*StreamableHTTPServer).handlePost (streamable_http.go:249)
09:58:34 AM ERROR mcpserver/util.go:30 Failed to handle sampling response: missing session ID {"hostname": "Mac.fritz.box", "pid": 29643, "service": "@wundergraph/router", "service_version": "dev", "storage_provider_id": "mcp", "component": "mcp-server"}
github.com/wundergraph/cosmo/router/pkg/mcpserver.(*ZapAdapter).Errorf
	/Users/ddeus/p/wundergraph/cosmo/router/pkg/mcpserver/util.go:30
github.com/mark3labs/mcp-go/server.(*StreamableHTTPServer).handlePost
	/Users/ddeus/go/pkg/mod/github.com/mark3labs/[email protected]/server/streamable_http.go:248
github.com/mark3labs/mcp-go/server.(*StreamableHTTPServer).ServeHTTP
	/Users/ddeus/go/pkg/mod/github.com/mark3labs/[email protected]/server/streamable_http.go:158
github.com/wundergraph/cosmo/router/pkg/mcpserver.(*GraphQLSchemaServer).Serve.func1
	/Users/ddeus/p/wundergraph/cosmo/router/pkg/mcpserver/server.go:312
net/http.HandlerFunc.ServeHTTP
	/usr/local/go/src/net/http/server.go:2294
github.com/wundergraph/cosmo/router/pkg/mcpserver.WithCORS.func1.1
	/Users/ddeus/p/wundergraph/cosmo/router/pkg/mcpserver/server.go:787
net/http.HandlerFunc.ServeHTTP
	/usr/local/go/src/net/http/server.go:2294
net/http.(*ServeMux).ServeHTTP
	/usr/local/go/src/net/http/server.go:2822
net/http.serverHandler.ServeHTTP
	/usr/local/go/src/net/http/server.go:3301
net/http.(*conn).serve
	/usr/local/go/src/net/http/server.go:2102
2025/08/21 09:58:34 http: superfluous response.WriteHeader call from github.com/mark3labs/mcp-go/server.(*StreamableHTTPServer).handlePost (streamable_http.go:249)
09:58:55 AM ERROR mcpserver/util.go:30 Failed to handle sampling response: missing session ID {"hostname": "Mac.fritz.box", "pid": 29643, "service": "@wundergraph/router", "service_version": "dev", "storage_provider_id": "mcp", "component": "mcp-server"}
github.com/wundergraph/cosmo/router/pkg/mcpserver.(*ZapAdapter).Errorf
	/Users/ddeus/p/wundergraph/cosmo/router/pkg/mcpserver/util.go:30
github.com/mark3labs/mcp-go/server.(*StreamableHTTPServer).handlePost
	/Users/ddeus/go/pkg/mod/github.com/mark3labs/[email protected]/server/streamable_http.go:248
github.com/mark3labs/mcp-go/server.(*StreamableHTTPServer).ServeHTTP
	/Users/ddeus/go/pkg/mod/github.com/mark3labs/[email protected]/server/streamable_http.go:158
github.com/wundergraph/cosmo/router/pkg/mcpserver.(*GraphQLSchemaServer).Serve.func1
	/Users/ddeus/p/wundergraph/cosmo/router/pkg/mcpserver/server.go:312
net/http.HandlerFunc.ServeHTTP
	/usr/local/go/src/net/http/server.go:2294
github.com/wundergraph/cosmo/router/pkg/mcpserver.WithCORS.func1.1
	/Users/ddeus/p/wundergraph/cosmo/router/pkg/mcpserver/server.go:787
net/http.HandlerFunc.ServeHTTP
	/usr/local/go/src/net/http/server.go:2294
net/http.(*ServeMux).ServeHTTP
	/usr/local/go/src/net/http/server.go:2822
net/http.serverHandler.ServeHTTP
	/usr/local/go/src/net/http/server.go:3301
net/http.(*conn).serve
	/usr/local/go/src/net/http/server.go:2102
2025/08/21 09:58:55 http: superfluous response.WriteHeader call from github.com/mark3labs/mcp-go/server.(*StreamableHTTPServer).handlePost (streamable_http.go:249)
09:59:05 AM ERROR mcpserver/util.go:30 Failed to handle sampling response: missing session ID {"hostname": "Mac.fritz.box", "pid": 29643, "service": "@wundergraph/router", "service_version": "dev", "storage_provider_id": "mcp", "component": "mcp-server"}
github.com/wundergraph/cosmo/router/pkg/mcpserver.(*ZapAdapter).Errorf
	/Users/ddeus/p/wundergraph/cosmo/router/pkg/mcpserver/util.go:30
github.com/mark3labs/mcp-go/server.(*StreamableHTTPServer).handlePost
	/Users/ddeus/go/pkg/mod/github.com/mark3labs/[email protected]/server/streamable_http.go:248
github.com/mark3labs/mcp-go/server.(*StreamableHTTPServer).ServeHTTP
	/Users/ddeus/go/pkg/mod/github.com/mark3labs/[email protected]/server/streamable_http.go:158
github.com/wundergraph/cosmo/router/pkg/mcpserver.(*GraphQLSchemaServer).Serve.func1
	/Users/ddeus/p/wundergraph/cosmo/router/pkg/mcpserver/server.go:312
net/http.HandlerFunc.ServeHTTP
	/usr/local/go/src/net/http/server.go:2294
github.com/wundergraph/cosmo/router/pkg/mcpserver.WithCORS.func1.1
	/Users/ddeus/p/wundergraph/cosmo/router/pkg/mcpserver/server.go:787
net/http.HandlerFunc.ServeHTTP
	/usr/local/go/src/net/http/server.go:2294
net/http.(*ServeMux).ServeHTTP
	/usr/local/go/src/net/http/server.go:2822
net/http.serverHandler.ServeHTTP
	/usr/local/go/src/net/http/server.go:3301
net/http.(*conn).serve
	/usr/local/go/src/net/http/server.go:2102
2025/08/21 09:59:05 http: superfluous response.WriteHeader call from github.com/mark3labs/mcp-go/server.(*StreamableHTTPServer).handlePost (streamable_http.go:249)

Environment

  • Go version (see go.mod): 1.24.0
  • mcp-go version (see go.mod): 0.38.0

StarpTech avatar Aug 21 '25 08:08 StarpTech