From 6aacedd73d6e75a09f60771df5e88a1e1816dff2 Mon Sep 17 00:00:00 2001 From: Kyle Rockman Date: Tue, 15 Apr 2025 12:19:48 -0500 Subject: [PATCH] Add Domains and Systems --- src/cmd/mcp.go | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/cmd/mcp.go b/src/cmd/mcp.go index a01a1ff4..42867063 100644 --- a/src/cmd/mcp.go +++ b/src/cmd/mcp.go @@ -135,6 +135,38 @@ var mcpCmd = &cobra.Command{ panic(err) } + // Register Domains + if err := server.RegisterTool("domains", "Get all the domains in the opslevel account. Domains are objects in opslevel that represent a top-level abstraction used to organize and categorize software systems.", func(args NullArguments) (*mcp_golang.ToolResponse, error) { + client := getClientGQL() + resp, err := client.ListDomains(nil) + if err != nil { + return nil, err + } + data, err := json.Marshal(resp.Nodes) + if err != nil { + return nil, err + } + return mcp_golang.NewToolResponse(mcp_golang.NewTextContent(string(data))), nil + }); err != nil { + panic(err) + } + + // Register Systems + if err := server.RegisterTool("systems", "Get all the systems in the opslevel account. Systems are objects in opslevel that represent a grouping of services or components that act together to serve a business function or process.", func(args NullArguments) (*mcp_golang.ToolResponse, error) { + client := getClientGQL() + resp, err := client.ListSystems(nil) + if err != nil { + return nil, err + } + data, err := json.Marshal(resp.Nodes) + if err != nil { + return nil, err + } + return mcp_golang.NewToolResponse(mcp_golang.NewTextContent(string(data))), nil + }); err != nil { + panic(err) + } + if err := server.Serve(); err != nil { panic(err) }