Tool calling
List raw tool schemas for custom adapters
scalekit.tools returns raw tool schemas so you can build custom agent adapters instead of using scalekit.actions.executeTool directly.
Use this client when you need tool definitions (name, parameters, connector) for frameworks or your own executor. For connect + execute flows, prefer Connected accounts. These methods throw on 4xx/5xx. See Error handling.
Pick a list method:
listTools— workspace cataloglistScopedTools— tools already bound to one identifier (the list you pass to an LLM)listAvailableTools— tools you can make available for that identifier
listTools
Section titled “listTools”#asynclistTools
Lists the workspace catalog. Use this when you need every tool in the environment, not tools bound to one user.
Optional fields: filter, pageSize, pageToken.
Paginated tools.
const res = await scalekit.tools.listTools({ pageSize: 50, filter: { query: 'send message' },});listScopedTools
Section titled “listScopedTools”#asynclistScopedTools
Lists tools already bound to one identifier. Use this when you need the list a user is authorized to call.
Connected account identifier to scope the tools list.
Required: filter. Optional: pageSize, pageToken. connectionNames is the Connection name from the dashboard, not a provider slug.
Paginated results.
const res = await scalekit.tools.listScopedTools('user@example.com', { filter: { connectionNames: ['github-connect'], }, pageSize: 50,});listAvailableTools
Section titled “listAvailableTools”#asynclistAvailableTools
Lists tools that can be made available for one identifier. Use this instead of listScopedTools when you need the candidate set, not the tools already bound.
Connected account identifier to list available tools for.
Optional fields: pageSize, pageToken.
Paginated results.
const res = await scalekit.tools.listAvailableTools('user@example.com', { pageSize: 50,});executeTool
Section titled “executeTool”#asyncexecuteTool
Executes a tool using credentials from a connected account.
Tool execution options.
Tool result and execution ID.
// Low-level tools client (params, not toolInput)await scalekit.tools.executeTool({ toolName: 'gmail_fetch_mails', identifier: 'user@example.com', params: { query: 'is:unread', max_results: 5 },});Note: Need a tool Scalekit doesn’t provide? See Build custom tools to proxy any provider API through a connected account.