From 3e24d660795b938782e76f1031dd704bf42aec62 Mon Sep 17 00:00:00 2001 From: Kent Dong Date: Wed, 3 Dec 2025 16:01:08 +0800 Subject: [PATCH] fix: Bypass the response body processing for MCP streamable transport (#3187) --- plugins/golang-filter/mcp-session/filter.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/plugins/golang-filter/mcp-session/filter.go b/plugins/golang-filter/mcp-session/filter.go index f31fa2404..f791b6b72 100644 --- a/plugins/golang-filter/mcp-session/filter.go +++ b/plugins/golang-filter/mcp-session/filter.go @@ -238,10 +238,9 @@ func (f *filter) EncodeData(buffer api.BufferInstance, endStream bool) api.Statu ret := api.Continue api.LogDebugf("Upstream Type: %s", f.matchedRule.UpstreamType) switch f.matchedRule.UpstreamType { - case common.RestUpstream, common.StreamableUpstream: + case common.RestUpstream: api.LogDebugf("Encoding data from Rest upstream") ret = f.encodeDataFromRestUpstream(buffer, endStream) - break case common.SSEUpstream: api.LogDebugf("Encoding data from SSE upstream") ret = f.encodeDataFromSSEUpstream(buffer, endStream) @@ -249,6 +248,8 @@ func (f *filter) EncodeData(buffer api.BufferInstance, endStream bool) api.Statu // Always continue as long as the stream has ended. ret = api.Continue } + case common.StreamableUpstream: + // Do nothing for streamable upstream } return ret }