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. These methods raise on 4xx/5xx. See Error handling.
Pick a list method:
list_tools— workspace cataloglist_scoped_tools— tools already bound to one identifier (the list you pass to an LLM)
list_available_tools is not in the Python SDK. Use GET /api/v1/tools/available or the Node listAvailableTools method.
tools.list_tools
Section titled “tools.list_tools”#asynctools.list_tools
Lists the workspace catalog. Use this when you need every tool in the environment, not tools bound to one user.
Filter by provider, identifier, or tool name
Maximum tools per page.
Opaque cursor from a previous list response
List tools.
from scalekit.v1.tools.tools_pb2 import Filter
response = scalekit_client.tools.list_tools( filter=Filter(query="send message"), page_size=50,)tools.list_scoped_tools
Section titled “tools.list_scoped_tools”#asynctools.list_scoped_tools
Lists tools already bound to one identifier. Use this when you need the list a user is authorized to call.
User connected account identifier Required.
Optional. Filter by providers, tool names, or connection names. connection_names is the Connection name from the dashboard, not a provider slug.
Maximum tools per page.
Opaque cursor from a previous list response
List scoped tools.
from scalekit.v1.tools.tools_pb2 import ScopedToolFilter
response = scalekit_client.tools.list_scoped_tools( "user@example.com", filter=ScopedToolFilter( connection_names=["github-connect"], ), page_size=50,)tools.execute_tool
Section titled “tools.execute_tool”#asynctools.execute_tool
Low-level tool execution.
Registered tool name to execute Required.
End-user identifier.
Tool arguments matching the tool input schema
Connected account ID (ca_…) when you already know it
ExecuteToolResponse.
# Low-level ToolsClient (tool_name, identifier, params)response = scalekit_client.tools.execute_tool( tool_name="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.