182 lines
5.1 KiB
Plaintext
182 lines
5.1 KiB
Plaintext
---
|
|
title: "Tools"
|
|
description: "Tools class definition This class is used to manage tools in the Composio SDK. It provides methods to list, get, and execute tools. Generic Param..."
|
|
---
|
|
|
|
## Methods
|
|
|
|
### get_raw_composio_tool_by_slug()
|
|
|
|
Returns schema for the given tool slug.
|
|
|
|
```python
|
|
def get_raw_composio_tool_by_slug(slug: str) -> Tool
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
| Name | Type |
|
|
|------|------|
|
|
| `slug` | `str` |
|
|
|
|
**Returns**
|
|
|
|
`Tool`
|
|
|
|
---
|
|
|
|
### get_raw_composio_tools()
|
|
|
|
Get a list of tool schemas based on the provided filters.
|
|
|
|
```python
|
|
def get_raw_composio_tools(tools: list[str | None] = ..., search: str | None = ..., toolkits: list[str | None] = ..., scopes: List[str | None] = ..., limit: int | None = ...) -> list[Tool]
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
| Name | Type |
|
|
|------|------|
|
|
| `tools?` | `list[str \| None]` |
|
|
| `search?` | `str \| None` |
|
|
| `toolkits?` | `list[str \| None]` |
|
|
| `scopes?` | `List[str \| None]` |
|
|
| `limit?` | `int \| None` |
|
|
|
|
**Returns**
|
|
|
|
`list[Tool]`
|
|
|
|
---
|
|
|
|
### get_raw_tool_router_meta_tools()
|
|
|
|
Fetches the tools exposed by a tool router session. This method fetches helper/meta tools and any preloaded app tools from the Composio API and transforms them to the expected format. It provides access to the underlying tool data without provider-specific wrapping.
|
|
|
|
```python
|
|
def get_raw_tool_router_meta_tools(session_id: str, modifiers: 'Modifiers' | None = ...) -> list[Tool]
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
| Name | Type |
|
|
|------|------|
|
|
| `session_id` | `str` |
|
|
| `modifiers?` | `'Modifiers' \| None` |
|
|
|
|
**Returns**
|
|
|
|
`list[Tool]` — The list of meta tools
|
|
|
|
**Example**
|
|
|
|
```python
|
|
from composio import Composio
|
|
|
|
composio = Composio()
|
|
tools_model = composio.tools
|
|
|
|
# Get meta tools for a session
|
|
meta_tools = tools_model.get_raw_tool_router_meta_tools("session_123")
|
|
print(meta_tools)
|
|
|
|
# Get meta tools with schema modifiers
|
|
from composio.core.models import schema_modifier
|
|
|
|
@schema_modifier
|
|
def modify_schema(tool: str, toolkit: str, schema):
|
|
# Customize the schema
|
|
schema.description = f"Modified: {schema.description}"
|
|
return schema
|
|
|
|
meta_tools = tools_model.get_raw_tool_router_meta_tools(
|
|
"session_123",
|
|
modifiers=[modify_schema]
|
|
)
|
|
```
|
|
|
|
---
|
|
|
|
### get()
|
|
|
|
Get a tool or list of tools based on the provided arguments. The return type is automatically inferred based on the provider's generic parameters. For example: - OpenAIProvider -> list[ChatCompletionToolParam] - AnthropicProvider -> list[ToolParam] - CustomProvider[MyTool, list[MyTool]] -> list[MyTool]
|
|
|
|
```python
|
|
def get(user_id: str, slug: str | None = ..., tools: list[str | None] = ..., search: str | None = ..., toolkits: list[str | None] = ..., scopes: List[str | None] = ..., modifiers: Modifiers | None = ..., limit: int | None = ...) -> TToolCollection
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
| Name | Type |
|
|
|------|------|
|
|
| `user_id` | `str` |
|
|
| `slug?` | `str \| None` |
|
|
| `tools?` | `list[str \| None]` |
|
|
| `search?` | `str \| None` |
|
|
| `toolkits?` | `list[str \| None]` |
|
|
| `scopes?` | `List[str \| None]` |
|
|
| `modifiers?` | `Modifiers \| None` |
|
|
| `limit?` | `int \| None` |
|
|
|
|
**Returns**
|
|
|
|
`TToolCollection` — Provider-specific tool collection (TToolCollection).
|
|
|
|
---
|
|
|
|
### execute()
|
|
|
|
Execute a tool with the provided parameters. This method calls the Composio API to execute the tool and returns the response.
|
|
|
|
```python
|
|
def execute(slug: str, arguments: Dict, connected_account_id: str | None = ..., custom_auth_params: tool_execute_params.CustomAuthParams | None = ..., custom_connection_data: tool_execute_params.CustomConnectionData | None = ..., user_id: str | None = ..., text: str | None = ..., version: str | None = ..., dangerously_skip_version_check: bool | None = ..., modifiers: Modifiers | None = ...) -> ToolExecutionResponse
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
| Name | Type |
|
|
|------|------|
|
|
| `slug` | `str` |
|
|
| `arguments` | `Dict` |
|
|
| `connected_account_id?` | `str \| None` |
|
|
| `custom_auth_params?` | `tool_execute_params.CustomAuthParams \| None` |
|
|
| `custom_connection_data?` | `tool_execute_params.CustomConnectionData \| None` |
|
|
| `user_id?` | `str \| None` |
|
|
| `text?` | `str \| None` |
|
|
| `version?` | `str \| None` |
|
|
| `dangerously_skip_version_check?` | `bool \| None` |
|
|
| `modifiers?` | `Modifiers \| None` |
|
|
|
|
**Returns**
|
|
|
|
`ToolExecutionResponse` — The response from the tool.
|
|
|
|
---
|
|
|
|
### proxy()
|
|
|
|
Proxy a tool call to the Composio API
|
|
|
|
```python
|
|
def proxy(endpoint: str, method: Literal['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'HEAD'], body: object | None = ..., connected_account_id: str | None = ..., parameters: List[tool_proxy_params.Parameter | None] = ..., custom_connection_data: tool_proxy_params.CustomConnectionData | None = ...) -> tool_proxy_response.ToolProxyResponse
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
| Name | Type |
|
|
|------|------|
|
|
| `endpoint` | `str` |
|
|
| `method` | `Literal['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'HEAD']` |
|
|
| `body?` | `object \| None` |
|
|
| `connected_account_id?` | `str \| None` |
|
|
| `parameters?` | `List[tool_proxy_params.Parameter \| None]` |
|
|
| `custom_connection_data?` | `tool_proxy_params.CustomConnectionData \| None` |
|
|
|
|
**Returns**
|
|
|
|
`tool_proxy_response.ToolProxyResponse`
|
|
|
|
---
|
|
|
|
[View source](https://github.com/composiohq/composio/blob/next/python/composio/core/models/tools.py#L89)
|