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
792d2f5b80
chore(lint): fix linting issues ( #344 )
...
* chore(lint): fix linting issues
Signed-off-by: Marc Nuri <marc@marcnuri.com >
* feat(ci): add linting to build and build-all-platforms target
Signed-off-by: Marc Nuri <marc@marcnuri.com >
---------
Signed-off-by: Marc Nuri <marc@marcnuri.com >
2025-09-26 06:56:48 +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
8af889bc8f
test(mcp): refactor helm toolset tests ( #333 )
...
Refactor tests to new approach before adding more functionality.
Signed-off-by: Marc Nuri <marc@marcnuri.com >
2025-09-18 16:08:53 +02:00
Marc Nuri
2bf6c549fe
test(mcp): remove side-effects from toolsets tests ( #329 )
...
Signed-off-by: Marc Nuri <marc@marcnuri.com >
2025-09-17 12:06:33 +02:00
Marc Nuri
d9d35b9834
test(toolsets): toolset specific metadata tests ( #326 )
...
- Refactor tests to use testify (more clarity+composability for complex tests)
- Tests for default toolsets
- Tests for configured, granular toolsets
Signed-off-by: Marc Nuri <marc@marcnuri.com >
2025-09-17 11:06:17 +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
Marc Nuri
ea641e6796
test(mcp): toolset metadata assertion ( #318 )
...
This test ensures that any tool definition refactoring
preserves the current behavior.
Signed-off-by: Marc Nuri <marc@marcnuri.com >
2025-09-11 10:31:39 +02:00
Marc Nuri
10c82f7bff
refactor(toolsets): renamed Profile to Toolset ( #309 )
...
As a prior step to providing support for toolsets
this change repurposes the current work in profiles
which partially aligns with the toolsets expected features
Signed-off-by: Marc Nuri <marc@marcnuri.com >
2025-09-11 09:25:09 +02:00