Marc Nuri
f3a446676f
refactor(kubernetes): keep Provider as only external Kubernetes interface ( #372 )
...
* refactor(kubernetes): keep Provider as only external Kubernetes interface
Initial phase to unify-merge the Provider interface with the Manager struct.
- Renamed ManagerProvider to Provider (i.e. kubernets.Provider)
- Moved Manager related logic to specific files
- Exposed relevant method through Provider interface (GetDerivedKubernetes, IsOpenShift, VerifyToken)
Signed-off-by: Marc Nuri <marc@marcnuri.com >
* Update pkg/kubernetes/provider_kubeconfig.go
Co-authored-by: Calum Murray <cmurray@redhat.com >
Signed-off-by: Marc Nuri <marc@marcnuri.com >
---------
Signed-off-by: Marc Nuri <marc@marcnuri.com >
Co-authored-by: Calum Murray <cmurray@redhat.com >
2025-10-14 15:25:49 +02:00
Calum Murray
a2d16e9f41
feat: Multi Cluster Support ( #348 )
...
* feat: add cluster provider for kubeconfig
Signed-off-by: Calum Murray <cmurray@redhat.com >
* feat: move server to use ClusterProvider interface
Signed-off-by: Calum Murray <cmurray@redhat.com >
* feat: authentication middleware works with cluster provider
Signed-off-by: Calum Murray <cmurray@redhat.com >
* fix: unit tests work after cluster provider changes
Signed-off-by: Calum Murray <cmurray@redhat.com >
* feat: add tool mutator to add cluster parameter
Signed-off-by: Calum Murray <cmurray@redhat.com >
* test: handle cluster parameter
Signed-off-by: Calum Murray <cmurray@redhat.com >
* fix: handle lazy init correctly
Signed-off-by: Calum Murray <cmurray@redhat.com >
* refactor: move to using multi-strategy ManagerProvider
Signed-off-by: Calum Murray <cmurray@redhat.com >
* feat: add contexts_list tool
Signed-off-by: Calum Murray <cmurray@redhat.com >
* refactor: make tool mutator generic between cluster/context naming
Signed-off-by: Calum Murray <cmurray@redhat.com >
* feat: introduce tool filter
Signed-off-by: Calum Murray <cmurray@redhat.com >
* refactor: use new ManagerProvider/mutator/filter within mcp server
Signed-off-by: Calum Murray <cmurray@redhat.com >
* fix(test): tests expect context parameter in tool defs
Signed-off-by: Calum Murray <cmurray@redhat.com >
* feat: auth handles multi-cluster case correctly
Signed-off-by: Calum Murray <cmurray@redhat.com >
* fix: small changes from local testing
Signed-off-by: Calum Murray <cmurray@redhat.com >
* chore: fix enum test
Signed-off-by: Calum Murray <cmurray@redhat.com >
* review: Multi Cluster support (#1 )
* nit: rename contexts_list to configuration_contexts_list
Besides the conventional naming, it helps LLMs understand the context of the tool by providing a certain level of hierarchy.
Signed-off-by: Marc Nuri <marc@marcnuri.com >
* fix(mcp): ToolMutator doesn't rely on magic strings
Signed-off-by: Marc Nuri <marc@marcnuri.com >
* refactor(api): don't expose ManagerProvider to toolsets
Signed-off-by: Marc Nuri <marc@marcnuri.com >
* test(mcp): configuration_contexts_list basic tests
Signed-off-by: Marc Nuri <marc@marcnuri.com >
* test(toolsets): revert edge-case test
This test should not be touched.
Signed-off-by: Marc Nuri <marc@marcnuri.com >
* test(toolsets): add specific metadata tests for multi-cluster
Signed-off-by: Marc Nuri <marc@marcnuri.com >
* fix(mcp): ToolFilter doesn't rely on magic strings (partially)
Signed-off-by: Marc Nuri <marc@marcnuri.com >
* test(api): IsClusterAware and IsTargetListProvider default values
Signed-off-by: Marc Nuri <marc@marcnuri.com >
* test(mcp): revert unneeded changes in mcp_tools_test.go
Signed-off-by: Marc Nuri <marc@marcnuri.com >
---------
Signed-off-by: Marc Nuri <marc@marcnuri.com >
* fix: always include configuration_contexts_list if contexts > 1
Signed-off-by: Calum Murray <cmurray@redhat.com >
* feat: include server urls in configuration_contexts_list
Signed-off-by: Calum Murray <cmurray@redhat.com >
---------
Signed-off-by: Calum Murray <cmurray@redhat.com >
Signed-off-by: Marc Nuri <marc@marcnuri.com >
Co-authored-by: Marc Nuri <marc@marcnuri.com >
2025-10-06 12:01:16 +02:00
Marc Nuri
c69e90c70d
fix(mcp): InputSchema schema with empty properties for no-arg tools ( #341 )
...
Signed-off-by: Marc Nuri <marc@marcnuri.com >
2025-09-25 11:54:07 +02:00
Marc Nuri
48cf204a89
feat(toolsets): add support for multiple toolsets in configuration ( #323 )
...
Users can now enable or disable different toolsets either by providing
a command-line flag or by setting the toolsets array field in the TOML
configuration.
Downstream Kubernetes API developers can declare toolsets for their
APIs by creating a new nested package in pkg/toolsets and registering
it in pkg/mcp/modules.go
Signed-off-by: Marc Nuri <marc@marcnuri.com >
2025-09-17 10:53:56 +02:00
Marc Nuri
209e8434d5
feat(mcp): toolset definitions completely agnostic from underlying MCP impl ( #322 )
...
Signed-off-by: Marc Nuri <marc@marcnuri.com >
2025-09-12 11:56:22 +02:00