Tools Commands
See Tools module docs for permissions and data model.
soat create-tool
Create a tool
- Method:
POST - Path:
/api/v1/tools
Usage
soat create-tool --name <string>
Options
--project-id
Public ID of the project
- Source:
body - Required: no
- Type:
string
--name
Tool name
- Source:
body - Required: yes
- Type:
string
--type
Tool type (default http)
- Source:
body - Required: no
- Type:
enum("http", "client", "mcp", "soat", "pipeline", "discussion")
--description
What the tool does
- Source:
body - Required: no
- Type:
string
--parameters
JSON Schema for tool input
- Source:
body - Required: no
- Type:
object
--execute
Execution config for http tools. Supported fields: url (required), method (default POST), headers, and body_mode. The url may contain \{paramName\} placeholders (e.g. /users/\{userId\}) that are replaced at call time with the corresponding tool argument value (URL-encoded). Arguments consumed as path parameters are excluded from the query string and request body. body_mode is json (default) or multipart. In multipart mode the merged tool arguments are sent as a multipart/form-data body: scalar fields become plain form fields and a field shaped like \{ content_type, filename, data_base64 \} is decoded from base64 and attached as a file part (the hardcoded Content-Type: application/json is dropped so fetch sets the multipart boundary itself).
- Source:
body - Required: no
- Type:
object
--mcp
MCP server config (url, headers)
- Source:
body - Required: no
- Type:
object
--actions
Allowlist of actions. For soat tools: SOAT platform action names (required). For mcp tools: an optional allowlist of MCP tool names to scope the server surface — omit or set null to expose every tool the MCP server offers. Ignored for other tool types.
- Source:
body - Required: no
- Type:
array<string>
--preset-parameters
Fixed parameters merged into every soat tool call. Keys matching fields in the action's input schema are removed from the schema shown to the model and injected automatically at execution time.
- Source:
body - Required: no
- Type:
object
--pipeline
Pipeline definition for pipeline tools. See the pipeline field on the Tool schema for the full structure.
- Source:
body - Required: no
- Type:
object
--discussion-id
For discussion tools: the ID of the discussion to invoke.
- Source:
body - Required: no
- Type:
string
--output-mapping
Universal JSON Logic mapping applied to the tool's raw result. See the output_mapping field on the Tool schema for details.
- Source:
body - Required: no
- Type:
object
soat list-tools
List tools
- Method:
GET - Path:
/api/v1/tools
Usage
soat list-tools
Options
--project-id
Project public ID to filter by
- Source:
query - Required: no
- Type:
string
soat get-tool
Get a tool
- Method:
GET - Path:
/api/v1/tools/{tool_id}
Usage
soat get-tool --tool-id <string>
Options
--tool-id
—
- Source:
path - Required: yes
- Type:
string
soat update-tool
Update a tool
- Method:
PATCH - Path:
/api/v1/tools/{tool_id}
Usage
soat update-tool --tool-id <string>
Options
--tool-id
—
- Source:
path - Required: yes
- Type:
string
--name
—
- Source:
body - Required: no
- Type:
string
--type
—
- Source:
body - Required: no
- Type:
enum("http", "client", "mcp", "soat", "pipeline")
--description
—
- Source:
body - Required: no
- Type:
string \| null
--parameters
—
- Source:
body - Required: no
- Type:
object
--execute
Execution config for http tools. Supported fields: url (required), method (default POST), headers, and body_mode. The url may contain \{paramName\} placeholders (e.g. /users/\{userId\}) that are replaced at call time with the corresponding tool argument value (URL-encoded). Arguments consumed as path parameters are excluded from the query string and request body. body_mode is json (default) or multipart. In multipart mode the merged tool arguments are sent as a multipart/form-data body: scalar fields become plain form fields and a field shaped like \{ content_type, filename, data_base64 \} is decoded from base64 and attached as a file part (the hardcoded Content-Type: application/json is dropped so fetch sets the multipart boundary itself).
- Source:
body - Required: no
- Type:
object
--mcp
—
- Source:
body - Required: no
- Type:
object
--actions
Allowlist of actions. For soat tools: SOAT platform action names. For mcp tools: an optional allowlist of MCP tool names to scope the server surface (null exposes every tool). Ignored for other tool types.
- Source:
body - Required: no
- Type:
array<string>
--preset-parameters
Fixed parameters merged into every soat tool call. Keys matching fields in the action's input schema are removed from the schema shown to the model and injected automatically at execution time.
- Source:
body - Required: no
- Type:
object
--pipeline
Pipeline definition for pipeline tools. See the pipeline field on the Tool schema for the full structure.
- Source:
body - Required: no
- Type:
object
--discussion-id
For discussion tools: the ID of the discussion to invoke.
- Source:
body - Required: no
- Type:
string \| null
--output-mapping
Universal JSON Logic mapping applied to the tool's raw result. See the output_mapping field on the Tool schema for details.
- Source:
body - Required: no
- Type:
object
soat delete-tool
Delete a tool
- Method:
DELETE - Path:
/api/v1/tools/{tool_id}
Usage
soat delete-tool --tool-id <string>
Options
--tool-id
—
- Source:
path - Required: yes
- Type:
string
soat call-tool
Call a tool
- Method:
POST - Path:
/api/v1/tools/{tool_id}/call
Usage
soat call-tool --tool-id <string>
Options
--tool-id
—
- Source:
path - Required: yes
- Type:
string
--action
For soat tools: the action name (must be in the tool's actions list). For mcp tools: the MCP tool name to invoke (must be in the tool's actions allowlist when one is set). Ignored for http tools.
- Source:
body - Required: no
- Type:
string
--input
Input parameters for the tool call. These are merged with the tool's preset_parameters before execution (caller-supplied values take precedence).
- Source:
body - Required: no
- Type:
object<string, unknown>