Skip to content
Scalekit Docs
Talk to an EngineerDashboard

Tool calling

List raw tool schemas for custom adapters

scalekit.tools returns raw tool schemas for custom agent adapters.

Use this when you need tool definitions for frameworks or your own executor. For connect + execute, use Connected accounts. See Error handling.

classToolsClient
#asynctools.list_tools

Runs tools.list_tools and returns the result.

paramfilterFilter

Filter by provider, identifier, or tool name

parampage_sizeint

Maximum tools per page.

parampage_tokenstr

Opaque cursor from a previous list response

returnsListToolsResponse

List tools.

from scalekit.v1.tools.tools_pb2 import Filter
response = scalekit_client.tools.list_tools(
filter=Filter(query="calendar"),
page_size=50,
)
classToolsClient
#asynctools.list_scoped_tools

Lists tools scoped to a specific user.

paramidentifierstr

User connected account identifier Required.

paramfilterScopedToolFilter

Filter by providers, tool names, or connection names

parampage_sizeint

Maximum tools per page.

parampage_tokenstr

Opaque cursor from a previous list response

returnsListScopedToolsResponse

List scoped tools.

from scalekit.v1.tools.tools_pb2 import ScopedToolFilter
response = scalekit_client.tools.list_scoped_tools(
"user@example.com",
filter=ScopedToolFilter(),
)
classToolsClient
#asynctools.execute_tool

Low-level tool execution.

paramtool_namestr

Registered tool name to execute Required.

paramidentifierstr

End-user identifier.

paramparamsdict

Tool arguments matching the tool input schema

paramconnected_account_idstr

Connected account ID (ca_…) when you already know it

returnsExecuteToolResponse

ExecuteToolResponse.

# Low-level ToolsClient (tool_name, identifier, params)
response = scalekit_client.tools.execute_tool(
tool_name="gmail.messages.list",
identifier="user@example.com",
params={"maxResults": 10},
)