Replies: 1 comment 2 replies
-
|
Can you use middleware to do the filtering? |
Beta Was this translation helpful? Give feedback.
2 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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