> **Building with AI coding agents?** Install the authstack plugin with one command. This equips your agent with accurate Scalekit implementation patterns.
>
> **Recommended**:
> ```bash
> npx @scalekit-inc/cli setup
> ```
>
> Global:
> ```bash
> npm install -g @scalekit-inc/cli
> scalekit setup
> ```
>
> Supports Claude Code, Cursor, GitHub Copilot, Codex + skills for 40+ agents.
> Features: full-stack-auth, agent-auth, mcp-auth, modular-sso, modular-scim.
> [Full setup guide](https://docs.scalekit.com/dev-kit/build-with-ai/)

---

# Tool calling

List raw tool schemas for custom adapters
<div class="sdk-client-page">

`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](/agentkit/sdks/python/actions/). See [Error handling](/agentkit/sdks/python/errors/).

### tools.list_tools
<div class="sdk-method-section">
  
    
      

      Runs `tools.list_tools` and returns the result.

      
        Filter by provider, identifier, or tool name
      
      
        Maximum tools per page.
      
      
        Opaque cursor from a previous list response
      
      
        List tools.
      

```python wrap showLineNumbers=false
from scalekit.v1.tools.tools_pb2 import Filter

response = scalekit_client.tools.list_tools(
    filter=Filter(query="calendar"),
    page_size=50,
)
```

    
  
</div>

### tools.list_scoped_tools
<div class="sdk-method-section">
  
    
      

      Lists tools scoped to a specific user.

      
        User connected account identifier **Required.**
      
      
        Filter by providers, tool names, or connection names
      
      
        Maximum tools per page.
      
      
        Opaque cursor from a previous list response
      
      
        List scoped tools.
      

```python wrap showLineNumbers=false
from scalekit.v1.tools.tools_pb2 import ScopedToolFilter

response = scalekit_client.tools.list_scoped_tools(
    "user@example.com",
    filter=ScopedToolFilter(),
)
```

    
  
</div>

### tools.execute_tool
<div class="sdk-method-section">
  
    
      

      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.
      

```python wrap showLineNumbers=false
# 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},
)
```

    
  
</div>
</div>


---

## More Scalekit documentation

| Resource | What it contains | When to use it |
|----------|-----------------|----------------|
| [/llms.txt](/llms.txt) | Structured index with routing hints per product area | Start here — find which documentation set covers your topic before loading full content |
| [/llms-full.txt](/llms-full.txt) | Complete documentation for all Scalekit products in one file | Use when you need exhaustive context across multiple products or when the topic spans several areas |
| [sitemap-0.xml](https://docs.scalekit.com/sitemap-0.xml) | Full URL list of every documentation page | Use to discover specific page URLs you can fetch for targeted, page-level answers |
