Replies: 2 comments 3 replies
-
|
Can you use middleware to do the filtering? |
Beta Was this translation helpful? Give feedback.
-
|
(Reply assisted by AI, but 100% my take on this and also might involve my own lack of understanding 😝) I strongly support the proposal for a Regarding the suggestion to use My understanding is that The Structural Challenge: This creates a dilemma for any application with dynamic permissions (e.g. distinct Admin vs. User roles):
Without a native hook, we are forced to ignore The Solution: Scott |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Pre-submission Checklist
Discussion Topic
Relates to #639
Relates to containers/kubernetes-mcp-server#490 (comment)
In the Kubernetes MCP Server, we provide base infrastructure for different Kubernetes teams to implement "toolsets": collections of MCP Tools, Prompts, and Resources exposed to MCP Clients and Hosts.
One key advantage of the Kubernetes MCP Server is its support for multi-cluster access integrated with Kubernetes authorization servers.
This creates a dynamic permissions scenario: each user (MCP server connection) has access to a different combination of Kubernetes clusters and resources based on their RBAC permissions.
i.e. for any given user (MCP server connection), there might be a combination of Kubernetes clusters that they can access and a combination of Kubernetes Resources (within each cluster) that they are authorized to operate on (RBAC).
Currently, this means users might see tools in
tools/listthat they cannot actually use due to authorization constraints.When an LLM attempts to call these tools, it receives authorization errors rather than successful responses.
For this scenario, it would be great if the
tools/list,prompts/list,resources/list, and so on could be composed dynamically.Another option could be to provide a dynamic callback to see if the tool should be exposed in the list for the current request (filtering).
From a user experience (UX) perspective, it's my understanding that this would benefit any go-sdk-based project where capability varies by user.
Preventing LLMs from seeing unavailable actions would:
I haven't found an easy, performant way to achieve this behavior with the current design/architecture of the SDK.
Does this functionality align with the go-sdk's design goals?
Shall we look into solutions to provide it?
Beta Was this translation helpful? Give feedback.
All reactions