You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add readonly/idempotent annotations to all tools (#37)
https://modelcontextprotocol.io/docs/concepts/tools#tool-definition-structure
There are optional annotations you can apply to tools, and by default
mcp-go sets `DestructiveHint` to true. Since all our tools are
non-destructive, readonly and idempotent set those.
I also added tool titles and fixed the casing on OpsLevel in tool
descriptions.
mcp.WithDescription("Get all the team names, identifiers and metadata for the opslevel account. Teams are owners of other objects in opslevel. Only use this if you need to search all teams.")),
74
+
mcp.NewTool(
75
+
"teams",
76
+
mcp.WithDescription("Get all the team names, identifiers and metadata for the OpsLevel account. Teams are owners of other objects in OpsLevel. Only use this if you need to search all teams."),
mcp.NewTool("users", mcp.WithDescription("Get all the user names, e-mail addresses and metadata for the opslevel account. Users are the people in opslevel. Only use this if you need to search all users.")),
92
+
mcp.NewTool(
93
+
"users",
94
+
mcp.WithDescription("Get all the user names, e-mail addresses and metadata for the OpsLevel account. Users are the people in OpsLevel. Only use this if you need to search all users."),
mcp.NewTool("components", mcp.WithDescription("Get all the components in the opslevel account. Components are objects in opslevel that represent things like apis, libraries, services, frontends, backends, etc.")),
148
+
mcp.NewTool(
149
+
"components",
150
+
mcp.WithDescription("Get all the components in the OpsLevel account. Components are objects in OpsLevel that represent things like apis, libraries, services, frontends, backends, etc."),
@@ -124,7 +175,17 @@ var rootCmd = &cobra.Command{
124
175
125
176
// Register Infra
126
177
s.AddTool(
127
-
mcp.NewTool("infrastructure", mcp.WithDescription("Get all the infrastructure in the opslevel account. Infrastructure are objects in opslevel that represent cloud provider resources like vpc, databases, caches, networks, vms, etc.")),
178
+
mcp.NewTool(
179
+
"infrastructure",
180
+
mcp.WithDescription("Get all the infrastructure in the OpsLevel account. Infrastructure are objects in OpsLevel that represent cloud provider resources like vpc, databases, caches, networks, vms, etc."),
@@ -146,23 +207,35 @@ var rootCmd = &cobra.Command{
146
207
147
208
// Register Domains
148
209
s.AddTool(
149
-
mcp.NewTool("domains", mcp.WithDescription(
150
-
`Get all the domains in the opslevel account.
151
-
Domains are comprised of child Systems which contain Components.
152
-
Used to represent large business units or verticals within OpsLevel.
153
-
`)),
210
+
mcp.NewTool(
211
+
"domains",
212
+
mcp.WithDescription("Get all the domains in the OpsLevel account. Domains are comprised of child Systems which contain Components. Used to represent large business units or verticals within OpsLevel."),
Systems are made up of Components that combine to form a unified whole or function.
164
-
eg a “Checkout” System that combines a cart and payment component.
165
-
`)),
228
+
mcp.NewTool(
229
+
"systems",
230
+
mcp.WithDescription("Get all the systems in the OpsLevel account. Systems are made up of Components that combine to form a unified whole or function. eg a 'Checkout' System that combines a cart and payment component."),
@@ -175,6 +248,13 @@ var rootCmd = &cobra.Command{
175
248
mcp.WithDescription(fmt.Sprintf("Get details for a single resource (%s) in an OpsLevel account using its ID or alias.", strings.Join(opslevel.AllAliasOwnerTypeEnum, ","))),
176
249
mcp.WithString("resourceType", mcp.Required(), mcp.Description("The type of the resource."), mcp.Enum(opslevel.AllAliasOwnerTypeEnum...)),
177
250
mcp.WithString("identifier", mcp.Required(), mcp.Description("The ID or alias of the resource.")),
@@ -193,8 +273,15 @@ var rootCmd = &cobra.Command{
193
273
// Register all documents, filtered by search term
194
274
s.AddTool(
195
275
mcp.NewTool("documents",
196
-
mcp.WithDescription("Get all the documents for the opslevel account. Documents are filterable by search term. Documents could be things like runbooks, integration documentation, api documentation, readme's, or other forms of documentation."),
276
+
mcp.WithDescription("Get all the documents for the OpsLevel account. Documents are filterable by search term. Documents could be things like runbooks, integration documentation, api documentation, readme's, or other forms of documentation."),
@@ -209,8 +296,15 @@ var rootCmd = &cobra.Command{
209
296
// Register document by id
210
297
s.AddTool(
211
298
mcp.NewTool("document",
212
-
mcp.WithDescription("Get the contents of a technical or api document in the opslevel account, specified by document 'id' or the 'preferredApiDocument' (on a component). Documents could be things like runbooks, integration documentation, api documentation, readme's, or other forms of documentation."),
299
+
mcp.WithDescription("Get the contents of a technical or api document in the OpsLevel account, specified by document 'id' or the 'preferredApiDocument' (on a component). Documents could be things like runbooks, integration documentation, api documentation, readme's, or other forms of documentation."),
213
300
mcp.WithString("id", mcp.Required(), mcp.Description("The id of the document to fetch.")),
@@ -221,9 +315,16 @@ var rootCmd = &cobra.Command{
221
315
// Register all documents, filtered by service id and search term
222
316
s.AddTool(
223
317
mcp.NewTool("documentsOnService",
224
-
mcp.WithDescription("Get all documents on a specified service for the opslevel account, specified by service id and filtered by search term. Documents could be things like runbooks, integration documentation, api documentation, readme's, or other forms of documentation."),
318
+
mcp.WithDescription("Get all documents on a specified service for the OpsLevel account, specified by service id and filtered by search term. Documents could be things like runbooks, integration documentation, api documentation, readme's, or other forms of documentation."),
225
319
mcp.WithString("serviceId", mcp.Required(), mcp.Description("The id of the service which the documents are on.")),
0 commit comments