Revert stream-binding approach: merge GET into the single MCP route instead

The second ai-mcp-proxy binding (added to fix the GET/SSE 502 loop)
created a second runtime plugin instance with the same tool config,
which ai-mcp-proxy's own duplicate-name detection caught: all three
tools (list-customers/get-customer/create-customer) fell back to
auto-generated names across both instances. Confirmed via dataplane
pod logs right after applying the previous fix.

Real fix: one KongRoute for all three MCP HTTP methods (GET/POST/
DELETE) instead of two, one ai-mcp-proxy binding instead of two.
ai-mcp-proxy already tolerates multi-method routes (same "skips
method selection" notice the existing POST+DELETE route already
produces) — extending to GET is the same class of thing, not new
risk, and there is now exactly one plugin instance so no duplicate
tool names.
This commit is contained in:
Stéphane Tailland
2026-08-23 15:39:27 +02:00
parent 1d8922e1b5
commit 3b20b0a35b
2 changed files with 14 additions and 52 deletions
+14 -21
View File
@@ -1,3 +1,16 @@
# Single route for all three MCP HTTP methods (GET opens the SSE stream,
# POST carries JSON-RPC, DELETE terminates the session) — deliberately NOT
# split into two KongRoutes the way catalog-mcp does. ai-mcp-proxy is bound
# once, to this one route (mcp/pluginbindings.yaml); a second route with
# its own binding of the *same* KongPlugin creates a second runtime plugin
# instance with the same tool names, and ai-mcp-proxy's cross-instance
# duplicate-name detection then falls back to auto-generated tool names
# for all of them ("Tool custom name 'list-customers' already exists in
# both plugin X and Y") — found and reverted 2026-08-23, see STATUS.md.
# ai-mcp-proxy already tolerates a route with multiple methods (logs a
# harmless "skips method selection" notice, same as catalog-mcp's existing
# POST+DELETE route already does) — extending to GET here is the same
# class of thing, not new risk.
apiVersion: configuration.konghq.com/v1alpha1
kind: KongRoute
metadata:
@@ -12,6 +25,7 @@ spec:
hosts:
- ${REST_HOSTNAME}
methods:
- GET
- POST
- DELETE
paths:
@@ -19,24 +33,3 @@ spec:
strip_path: false
tags:
- customers
---
apiVersion: configuration.konghq.com/v1alpha1
kind: KongRoute
metadata:
name: ${NAME}-customers-mcp-stream
namespace: ${NAMESPACE}
spec:
serviceRef:
type: namespacedRef
namespacedRef:
name: ${NAME}-customers-mcp
name: customers-mcp-stream
hosts:
- ${REST_HOSTNAME}
methods:
- GET
paths:
- /customers-mcp
strip_path: false
tags:
- customers