Create a tool
POST
/platform-config/toolsDefine a custom tool an agent can call mid-conversation.
Auth
Authentication required.
Parameters
No parameters.
Request body
| Required | Content-Type | Shape |
|---|---|---|
| Yes | application/json | CreateToolRequest |
| Name | Type | Required | Description |
|---|---|---|---|
| name | string | Yes | — |
| description | string | null | No | Default "". |
| tool_type | enum(http | mcp | function | handoff | client-relay) | Yes | — |
| status | enum(active | inactive) | No | Default "active". |
| role | string | null | No | — |
| parameters | ToolParametersSchema | No | — |
| parameters.type | string | No | Default "object". |
| parameters.properties | object | No | — |
| parameters.required | array<string> | No | — |
| execution | ToolExecution | null | No | — |
| execution.method | enum(GET | POST | PUT | PATCH | DELETE) | Yes, if execution is sent | — |
| execution.endpoint | string | Yes, if execution is sent | — |
| execution.auth | ToolAuth | null | No | — |
| execution.auth.type | enum(bearer | jwt | api_key) | No | Default "bearer". |
| execution.auth.source | string | null | No | — |
| execution.auth.header_name | string | null | No | — |
| execution.auth.scheme | string | null | No | — |
| execution.auth.api_key | string | nullwrite-only | No | — |
| execution.param_map | object | No | — |
| execution.headers | object | No | — |
| execution.timeout | integer | No | Default 30. |
Responses
| Status | Description | Content-Type | Shape |
|---|---|---|---|
| 200 | Successful Response | application/json | unknown |
| 422 | Validation Error | application/json | HTTPValidationError |