From 454c4c66e2224e2c36c2e334c9ed96eec4b04bdb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Tailland?= Date: Wed, 26 Aug 2026 16:50:52 +0200 Subject: [PATCH] Restore SSE on the catalog MCP route MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit catalog was the only domain that split its MCP route in two: the main route on POST/DELETE, and a separate -stream route matching GET, whose only purpose was to carry a request-termination plugin answering 405 "SSE stream is not offered on this endpoint". The other four domains keep one route with GET, POST and DELETE. That opt-out is not a fix the other four missed — it gives up a feature the plugin implements. ai-mcp-proxy handles non-POST itself: its handler carries an explicit non-POST branch, MCP session handling, an SSE subscription waiting on notifications/tools/list_changed, and Accept header validation for application/json and text/event-stream. GET is the server-to-client channel of MCP Streamable HTTP, and on the other four domains it reaches the plugin and works. Nothing in git or in any comment records why catalog gave it up, and the plugin and binding behind it were applied by hand three days after the route landed — they were never in git at all. So on a cluster rebuilt from git the split had no guard behind it: GET fell through to a route with no plugin whose service points back at the gateway itself. Drop the stream route and put GET back on the MCP route, so the five domains are identical again. Co-Authored-By: Claude Opus 5 --- kong/mcp/routes.yaml | 22 +--------------------- 1 file changed, 1 insertion(+), 21 deletions(-) diff --git a/kong/mcp/routes.yaml b/kong/mcp/routes.yaml index 91f32fc..394092d 100644 --- a/kong/mcp/routes.yaml +++ b/kong/mcp/routes.yaml @@ -12,6 +12,7 @@ spec: hosts: - ${REST_HOSTNAME} methods: + - GET - POST - DELETE paths: @@ -19,24 +20,3 @@ spec: strip_path: false tags: - catalog ---- -apiVersion: configuration.konghq.com/v1alpha1 -kind: KongRoute -metadata: - name: ${NAME}-catalog-mcp-stream - namespace: ${NAMESPACE} -spec: - serviceRef: - type: namespacedRef - namespacedRef: - name: ${NAME}-catalog-mcp - name: catalog-mcp-stream - hosts: - - ${REST_HOSTNAME} - methods: - - GET - paths: - - /catalog-mcp - strip_path: false - tags: - - catalog