## List tools `client.ToolSets.Tools.List(ctx, toolSetID, query) (*CursorPagination[Tool], error)` **get** `/v1/tool_sets/{toolSetId}/tools` Lists all tools in the tool set ### Parameters - `toolSetID string` - `query ToolSetToolListParams` - `Cursor param.Field[string]` Pagination cursor from previous response - `IncludeInfo param.Field[bool]` When set to true you may use more of your alloted API rate-limit - `Limit param.Field[int64]` Maximum number of results to return - `Prefix param.Field[string]` Filter expression (query param: prefix) - `SortOrder param.Field[string]` Sort order for results (asc or desc by creation time) ### Returns - `type Tool struct{…}` - `Metadata ResourceMetadata` 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 - `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 string` External ID for the resource (e.g., a workflow ID from an external system) - `Labels map[string, string]` Arbitrary key-value pairs for categorization and filtering Examples: {"environment": "production", "team": "platform", "version": "v2"} - `Spec ToolSpec` - `Config ToolSpecConfig` Config defines the adapter to use for the tool. This is used to determine how the tool is called. For example, if the tool is an HTTP tool, the adapter will be Http. If the tool is an inline tool, the adapter will be Inline. - `HTTP ConfigHTTP` - `RequestMethod ConfigHTTPRequestMethod` - `const ConfigHTTPRequestMethodGet ConfigHTTPRequestMethod = "GET"` - `const ConfigHTTPRequestMethodPost ConfigHTTPRequestMethod = "POST"` - `const ConfigHTTPRequestMethodPut ConfigHTTPRequestMethod = "PUT"` - `const ConfigHTTPRequestMethodPatch ConfigHTTPRequestMethod = "PATCH"` - `const ConfigHTTPRequestMethodDelete ConfigHTTPRequestMethod = "DELETE"` - `Headers map[string, string]` - `Path string` - `Query string` - `RequestBodyContentType string` - `RequestBodyTemplate string` These are only used when the request method is a POST, PUT, or PATCH - `ToolName string` The tool name (commonly an "operation id" in OpenAPI specs) to call on the HTTP adapter. This is used to match the tool spec to the correct endpoint on the HTTP adapter. it will be derived from the name of the tool if not provided. - `Mcp ConfigMcp` - `ToolDescription string` - `ToolName string` - `ToolTitle string` - `Description string` - `Parameters map[string, unknown]` - `Status ToolSpecStatus` - `const ToolSpecStatusToolStatusUnspecified ToolSpecStatus = "TOOL_STATUS_UNSPECIFIED"` - `const ToolSpecStatusToolStatusAvailable ToolSpecStatus = "TOOL_STATUS_AVAILABLE"` - `const ToolSpecStatusToolStatusFiltered ToolSpecStatus = "TOOL_STATUS_FILTERED"` - `const ToolSpecStatusToolStatusArchived ToolSpecStatus = "TOOL_STATUS_ARCHIVED"` - `RequiresApproval bool` - `Info ToolInfo` - `CreatedBy Profile` 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). - `Metadata AccountResourceMetadata` 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 string` External ID for the resource (e.g., a workflow ID from an external system) - `Labels map[string, string]` Arbitrary key-value pairs for categorization and filtering Examples: {"environment": "production", "team": "platform", "version": "v2"} - `Spec ProfileSpec` 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. - `const ProfileSpecTypeProfileTypeUser ProfileSpecType = "PROFILE_TYPE_USER"` - `const ProfileSpecTypeProfileTypeAPIKey ProfileSpecType = "PROFILE_TYPE_API_KEY"` - `const ProfileSpecTypeProfileTypeSystem ProfileSpecType = "PROFILE_TYPE_SYSTEM"` - `Email string` Email address of the user (required, unique per account) - `Name string` Display name for the user (e.g., "Bobby Tables") - `ToolSet ResourceMetadata` Standard metadata for persistent, named resources (e.g., agents, tools, prompts) ### Example ```go 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"), ) page, err := client.ToolSets.Tools.List( context.TODO(), "toolSetId", cadenya.ToolSetToolListParams{ }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", page) } ``` #### Response ```json { "items": [ { "metadata": { "id": "id", "accountId": "accountId", "createdAt": "2019-12-27T18:11:19.117Z", "name": "name", "profileId": "profileId", "workspaceId": "workspaceId", "externalId": "externalId", "labels": { "foo": "string" } }, "spec": { "config": { "http": { "requestMethod": "GET", "headers": { "foo": "string" }, "path": "path", "query": "query", "requestBodyContentType": "requestBodyContentType", "requestBodyTemplate": "requestBodyTemplate", "toolName": "toolName" }, "mcp": { "toolDescription": "toolDescription", "toolName": "toolName", "toolTitle": "toolTitle" } }, "description": "description", "parameters": { "foo": "bar" }, "status": "TOOL_STATUS_UNSPECIFIED", "requiresApproval": true }, "info": { "createdBy": { "metadata": { "id": "id", "accountId": "accountId", "name": "name", "profileId": "profileId", "externalId": "externalId", "labels": { "foo": "string" } }, "spec": { "type": "PROFILE_TYPE_USER", "email": "email", "name": "name" } }, "toolSet": { "id": "id", "accountId": "accountId", "createdAt": "2019-12-27T18:11:19.117Z", "name": "name", "profileId": "profileId", "workspaceId": "workspaceId", "externalId": "externalId", "labels": { "foo": "string" } } } } ], "pagination": { "nextCursor": "nextCursor", "total": 0 } } ```