Skip to content

Commit e8d7271

Browse files
authored
add list module resources tool #13
add list module resources tool
2 parents 13e03b8 + 2871464 commit e8d7271

File tree

2 files changed

+35
-0
lines changed

2 files changed

+35
-0
lines changed

internal/modules/controller.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ func NewController(k8sClient *k8sclient.KubernetesClient, templateRepo template.
2424

2525
func (m *ModuleController) RegisterModuleTools(mcp *server.MCPServer) {
2626
mcp.AddTool(m.getModuleByNameTool(), m.getModuleByName)
27+
mcp.AddTool(m.listModuleResourcesTool(), m.listModuleResources)
2728
mcp.AddTool(m.listModulesTool(), m.listModules)
2829
mcp.AddTool(m.createModuleTool(), m.createModule)
2930
mcp.AddTool(m.updateModuleTool(), m.updateModule)

internal/modules/resources.go

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package modules
2+
3+
import (
4+
"context"
5+
"encoding/json"
6+
7+
"github.com/mark3labs/mcp-go/mcp"
8+
)
9+
10+
func (m *ModuleController) listModuleResourcesTool() mcp.Tool {
11+
return mcp.NewTool("list_module_resources",
12+
mcp.WithDescription("Lists all Kubernetes resources owned by the given Module"),
13+
mcp.WithString("module_name",
14+
mcp.Required(),
15+
mcp.Description("Name of the Module"),
16+
),
17+
)
18+
}
19+
20+
func (m *ModuleController) listModuleResources(_ context.Context, request mcp.CallToolRequest) (*mcp.CallToolResult, error) {
21+
moduleName := request.Params.Arguments["module_name"].(string)
22+
23+
resources, err := m.k8sClient.GetResourcesForModule(moduleName)
24+
if err != nil {
25+
return nil, err
26+
}
27+
28+
b, err := json.Marshal(resources)
29+
if err != nil {
30+
return nil, err
31+
}
32+
33+
return mcp.NewToolResultText(string(b)), nil
34+
}

0 commit comments

Comments
 (0)