Skip to content
Get started

Update a tool set

client.ToolSets.Update(ctx, id, body) (*ToolSet, error)
PUT/v1/tool_sets/{id}

Updates a tool set in the workspace

ParametersExpand Collapse
id string
body ToolSetUpdateParams
Metadata param.Field[UpdateResourceMetadata]optional

UpdateResourceMetadata contains the user-provided fields for updating a workspace-scoped resource. Read-only fields (id, account_id, workspace_id, profile_id, created_at) are excluded since they are set by the server.

Spec param.Field[ToolSetSpec]optional
UpdateMask param.Field[string]optional
ReturnsExpand Collapse
type ToolSet struct{…}

Standard metadata for persistent, named resources (e.g., agents, tools, prompts)

ID string

Unique identifier for the resource (prefixed ULID, e.g., "agent_01HXK...")

AccountID string

Account this resource belongs to for multi-tenant isolation (prefixed ULID)

CreatedAt Time

Timestamp when this resource was created

formatdate-time
Name string

Human-readable name for the resource (e.g., "Customer Support Agent", "Email Tool") Required for resources that users interact with directly

ProfileID string

ID of the actor (user or service account) that created this resource

WorkspaceID string

Workspace this resource belongs to for organizational grouping (prefixed ULID)

ExternalID stringoptional

External ID for the resource (e.g., a workflow ID from an external system)

Labels map[string, string]optional

Arbitrary key-value pairs for categorization and filtering Examples: {"environment": "production", "team": "platform", "version": "v2"}

Adapter ToolSetAdapteroptional
HTTP ToolSetAdapterHTTPoptional
BaseURL stringoptional
Headers map[string, string]optional
Mcp ToolSetAdapterMcpoptional
ExcludeTools McpToolFilteroptional

Top-level filter with simple boolean logic (no nesting)

Operator McpToolFilterOperator
formatenum
One of the following:
const McpToolFilterOperatorOperatorUnspecified McpToolFilterOperator = "OPERATOR_UNSPECIFIED"
const McpToolFilterOperatorOperatorAnd McpToolFilterOperator = "OPERATOR_AND"
const McpToolFilterOperatorOperatorOr McpToolFilterOperator = "OPERATOR_OR"
Filters []McpToolFilterFilteroptional
Attribute McpToolFilterFiltersAttribute
formatenum
One of the following:
const McpToolFilterFiltersAttributeAttributeUnspecified McpToolFilterFiltersAttribute = "ATTRIBUTE_UNSPECIFIED"
const McpToolFilterFiltersAttributeAttributeName McpToolFilterFiltersAttribute = "ATTRIBUTE_NAME"
const McpToolFilterFiltersAttributeAttributeTitle McpToolFilterFiltersAttribute = "ATTRIBUTE_TITLE"
const McpToolFilterFiltersAttributeAttributeDescription McpToolFilterFiltersAttribute = "ATTRIBUTE_DESCRIPTION"
Matcher McpToolFilterFiltersMatcheroptional

String matching operations

CaseSensitive booloptional
Contains stringoptional
EndsWith stringoptional
Exact stringoptional
Regex stringoptional
StartsWith stringoptional
Headers map[string, string]optional
IncludeTools McpToolFilteroptional

Top-level filter with simple boolean logic (no nesting)

Operator McpToolFilterOperator
formatenum
One of the following:
const McpToolFilterOperatorOperatorUnspecified McpToolFilterOperator = "OPERATOR_UNSPECIFIED"
const McpToolFilterOperatorOperatorAnd McpToolFilterOperator = "OPERATOR_AND"
const McpToolFilterOperatorOperatorOr McpToolFilterOperator = "OPERATOR_OR"
Filters []McpToolFilterFilteroptional
Attribute McpToolFilterFiltersAttribute
formatenum
One of the following:
const McpToolFilterFiltersAttributeAttributeUnspecified McpToolFilterFiltersAttribute = "ATTRIBUTE_UNSPECIFIED"
const McpToolFilterFiltersAttributeAttributeName McpToolFilterFiltersAttribute = "ATTRIBUTE_NAME"
const McpToolFilterFiltersAttributeAttributeTitle McpToolFilterFiltersAttribute = "ATTRIBUTE_TITLE"
const McpToolFilterFiltersAttributeAttributeDescription McpToolFilterFiltersAttribute = "ATTRIBUTE_DESCRIPTION"
Matcher McpToolFilterFiltersMatcheroptional

String matching operations

CaseSensitive booloptional
Contains stringoptional
EndsWith stringoptional
Exact stringoptional
Regex stringoptional
StartsWith stringoptional
ToolApprovals ToolSetAdapterMcpToolApprovalsoptional

Approval filters that will automatically set the approval requirement on the tools synced from the MCP server

Always booloptional
Only McpToolFilteroptional

Top-level filter with simple boolean logic (no nesting)

Operator McpToolFilterOperator
formatenum
One of the following:
const McpToolFilterOperatorOperatorUnspecified McpToolFilterOperator = "OPERATOR_UNSPECIFIED"
const McpToolFilterOperatorOperatorAnd McpToolFilterOperator = "OPERATOR_AND"
const McpToolFilterOperatorOperatorOr McpToolFilterOperator = "OPERATOR_OR"
Filters []McpToolFilterFilteroptional
Attribute McpToolFilterFiltersAttribute
formatenum
One of the following:
const McpToolFilterFiltersAttributeAttributeUnspecified McpToolFilterFiltersAttribute = "ATTRIBUTE_UNSPECIFIED"
const McpToolFilterFiltersAttributeAttributeName McpToolFilterFiltersAttribute = "ATTRIBUTE_NAME"
const McpToolFilterFiltersAttributeAttributeTitle McpToolFilterFiltersAttribute = "ATTRIBUTE_TITLE"
const McpToolFilterFiltersAttributeAttributeDescription McpToolFilterFiltersAttribute = "ATTRIBUTE_DESCRIPTION"
Matcher McpToolFilterFiltersMatcheroptional

String matching operations

CaseSensitive booloptional
Contains stringoptional
EndsWith stringoptional
Exact stringoptional
Regex stringoptional
StartsWith stringoptional
URL stringoptional
Description stringoptional
Info ToolSetInfooptional

Tool set information

AgentCount int64optional
CreatedBy Profileoptional

Profile represents a human user at the account level. Profiles are account-scoped resources that can be associated with multiple workspaces through the Actor model. Authentication for profiles is handled via SSO/OAuth (WorkOS).

AccountResourceMetadata is used to represent a resource that is associated to an account but not to a workspace.

ID string

Unique identifier for the resource (prefixed ULID, e.g., "apikey_01HXK...")

AccountID string

Account this resource belongs to for multi-tenant isolation (prefixed ULID)

Name string

Human-readable name for the resource (e.g., "Customer Support Agent", "Email Tool") Required for resources that users interact with directly

ProfileID string
ExternalID stringoptional

External ID for the resource (e.g., a workflow ID from an external system)

Labels map[string, string]optional

Arbitrary key-value pairs for categorization and filtering Examples: {"environment": "production", "team": "platform", "version": "v2"}

ProfileSpec contains the profile-specific fields

Type ProfileSpecType

Type is the type of profile. User's are humans, API keys are computers. You know the deal.

formatenum
One of the following:
const ProfileSpecTypeProfileTypeUser ProfileSpecType = "PROFILE_TYPE_USER"
const ProfileSpecTypeProfileTypeAPIKey ProfileSpecType = "PROFILE_TYPE_API_KEY"
const ProfileSpecTypeProfileTypeSystem ProfileSpecType = "PROFILE_TYPE_SYSTEM"
Email stringoptional

Email address of the user (required, unique per account)

Name stringoptional

Display name for the user (e.g., "Bobby Tables")

LastSync Timeoptional
ToolCount int64optional

Update a tool set

package main

import (
  "context"
  "fmt"

  "github.com/cadenya/cadenya-go"
  "github.com/cadenya/cadenya-go/option"
)

func main() {
  client := cadenya.NewClient(
    option.WithAPIKey("My API Key"),
  )
  toolSet, err := client.ToolSets.Update(
    context.TODO(),
    "id",
    cadenya.ToolSetUpdateParams{

    },
  )
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", toolSet.Metadata)
}
{
  "metadata": {
    "id": "id",
    "accountId": "accountId",
    "createdAt": "2019-12-27T18:11:19.117Z",
    "name": "name",
    "profileId": "profileId",
    "workspaceId": "workspaceId",
    "externalId": "externalId",
    "labels": {
      "foo": "string"
    }
  },
  "spec": {
    "adapter": {
      "http": {
        "baseUrl": "baseUrl",
        "headers": {
          "foo": "string"
        }
      },
      "mcp": {
        "excludeTools": {
          "operator": "OPERATOR_UNSPECIFIED",
          "filters": [
            {
              "attribute": "ATTRIBUTE_UNSPECIFIED",
              "matcher": {
                "caseSensitive": true,
                "contains": "contains",
                "endsWith": "endsWith",
                "exact": "exact",
                "regex": "regex",
                "startsWith": "startsWith"
              }
            }
          ]
        },
        "headers": {
          "foo": "string"
        },
        "includeTools": {
          "operator": "OPERATOR_UNSPECIFIED",
          "filters": [
            {
              "attribute": "ATTRIBUTE_UNSPECIFIED",
              "matcher": {
                "caseSensitive": true,
                "contains": "contains",
                "endsWith": "endsWith",
                "exact": "exact",
                "regex": "regex",
                "startsWith": "startsWith"
              }
            }
          ]
        },
        "toolApprovals": {
          "always": true,
          "only": {
            "operator": "OPERATOR_UNSPECIFIED",
            "filters": [
              {
                "attribute": "ATTRIBUTE_UNSPECIFIED",
                "matcher": {
                  "caseSensitive": true,
                  "contains": "contains",
                  "endsWith": "endsWith",
                  "exact": "exact",
                  "regex": "regex",
                  "startsWith": "startsWith"
                }
              }
            ]
          }
        },
        "url": "url"
      }
    },
    "description": "description"
  },
  "info": {
    "agentCount": 0,
    "createdBy": {
      "metadata": {
        "id": "id",
        "accountId": "accountId",
        "name": "name",
        "profileId": "profileId",
        "externalId": "externalId",
        "labels": {
          "foo": "string"
        }
      },
      "spec": {
        "type": "PROFILE_TYPE_USER",
        "email": "email",
        "name": "name"
      }
    },
    "lastSync": "2019-12-27T18:11:19.117Z",
    "toolCount": 0
  }
}
Returns Examples
{
  "metadata": {
    "id": "id",
    "accountId": "accountId",
    "createdAt": "2019-12-27T18:11:19.117Z",
    "name": "name",
    "profileId": "profileId",
    "workspaceId": "workspaceId",
    "externalId": "externalId",
    "labels": {
      "foo": "string"
    }
  },
  "spec": {
    "adapter": {
      "http": {
        "baseUrl": "baseUrl",
        "headers": {
          "foo": "string"
        }
      },
      "mcp": {
        "excludeTools": {
          "operator": "OPERATOR_UNSPECIFIED",
          "filters": [
            {
              "attribute": "ATTRIBUTE_UNSPECIFIED",
              "matcher": {
                "caseSensitive": true,
                "contains": "contains",
                "endsWith": "endsWith",
                "exact": "exact",
                "regex": "regex",
                "startsWith": "startsWith"
              }
            }
          ]
        },
        "headers": {
          "foo": "string"
        },
        "includeTools": {
          "operator": "OPERATOR_UNSPECIFIED",
          "filters": [
            {
              "attribute": "ATTRIBUTE_UNSPECIFIED",
              "matcher": {
                "caseSensitive": true,
                "contains": "contains",
                "endsWith": "endsWith",
                "exact": "exact",
                "regex": "regex",
                "startsWith": "startsWith"
              }
            }
          ]
        },
        "toolApprovals": {
          "always": true,
          "only": {
            "operator": "OPERATOR_UNSPECIFIED",
            "filters": [
              {
                "attribute": "ATTRIBUTE_UNSPECIFIED",
                "matcher": {
                  "caseSensitive": true,
                  "contains": "contains",
                  "endsWith": "endsWith",
                  "exact": "exact",
                  "regex": "regex",
                  "startsWith": "startsWith"
                }
              }
            ]
          }
        },
        "url": "url"
      }
    },
    "description": "description"
  },
  "info": {
    "agentCount": 0,
    "createdBy": {
      "metadata": {
        "id": "id",
        "accountId": "accountId",
        "name": "name",
        "profileId": "profileId",
        "externalId": "externalId",
        "labels": {
          "foo": "string"
        }
      },
      "spec": {
        "type": "PROFILE_TYPE_USER",
        "email": "email",
        "name": "name"
      }
    },
    "lastSync": "2019-12-27T18:11:19.117Z",
    "toolCount": 0
  }
}