3b20b0a35b
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.
36 lines
1.3 KiB
YAML
36 lines
1.3 KiB
YAML
# 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:
|
|
name: ${NAME}-customers-mcp
|
|
namespace: ${NAMESPACE}
|
|
spec:
|
|
serviceRef:
|
|
type: namespacedRef
|
|
namespacedRef:
|
|
name: ${NAME}-customers-mcp
|
|
name: customers-mcp
|
|
hosts:
|
|
- ${REST_HOSTNAME}
|
|
methods:
|
|
- GET
|
|
- POST
|
|
- DELETE
|
|
paths:
|
|
- /customers-mcp
|
|
strip_path: false
|
|
tags:
|
|
- customers
|