Skip to main content

ToolDefinition

Canonical tool/function definition used across all services

serverId is required on every tool definition. Use "client" as the conventional value for tools you execute — client tools are matched by name, not by server.

parametersJsonSchema is what the model reads to work out how to call your tool. Describe the fields accurately. It is not a validation contract — the platform never checks the model's arguments against it, so treat what arrives as untrusted.

Usage profiles​

UsageFields and validation
In requestsView fields
In responsesView fields
In webhook payloadsView fields

In requests​

API JSON uses JSON field names (camelCase).

FieldTypePresenceMeaning
namestringRequired in requestsName used to select and invoke the tool. Minimum length: 1.
descriptionstringRequired in requestsExplanation of the tool’s purpose supplied to the model and callers. Minimum length: 1.
parametersJsonSchemaMap from string to JSON valueOptionalJSON Schema object.
metadataMap from string to stringOptionalAdditional tool metadata (version, category, etc.).
serverIdstringRequired in requestsWhich server provides this tool (for MCP tools). Minimum length: 1.
tagsArray of stringOptionalTool categorization tags.
documentationUrlstringOptionalLink to detailed documentation.
outputJsonSchemaMap from string to JSON valueOptionalOptional output schema (JSON Schema serialized as string) describing structured results

Request validation​

These rules apply when this value is supplied in a request. Request validation does not guarantee that response fields are present or satisfy the same rules.

Applies toRuleRequirement
nameMinimum length1
descriptionMinimum length1
serverIdMinimum length1

In responses​

API JSON uses JSON field names (camelCase).

FieldTypePresenceMeaning
namestringRequired in requestsName used to select and invoke the tool.
descriptionstringRequired in requestsExplanation of the tool’s purpose supplied to the model and callers.
parametersJsonSchemaMap from string to JSON valueOptionalJSON Schema object.
metadataMap from string to stringOptionalAdditional tool metadata (version, category, etc.).
serverIdstringRequired in requestsWhich server provides this tool (for MCP tools).
tagsArray of stringOptionalTool categorization tags.
documentationUrlstringOptionalLink to detailed documentation.
outputJsonSchemaMap from string to JSON valueOptionalOptional output schema (JSON Schema serialized as string) describing structured results

Request validation​

These rules apply when this value is supplied in a request. Request validation does not guarantee that response fields are present or satisfy the same rules.

Applies toRuleRequirement
nameMinimum length1
descriptionMinimum length1
serverIdMinimum length1

In webhook payloads​

Webhook JSON uses protobuf field names (snake_case).

FieldTypePresenceMeaning
namestringRequired in requestsName used to select and invoke the tool.
descriptionstringRequired in requestsExplanation of the tool’s purpose supplied to the model and callers.
parameters_json_schemaMap from string to JSON valueOptionalJSON Schema object.
metadataMap from string to stringOptionalAdditional tool metadata (version, category, etc.).
server_idstringRequired in requestsWhich server provides this tool (for MCP tools).
tagsArray of stringOptionalTool categorization tags.
documentation_urlstringOptionalLink to detailed documentation.
output_json_schemaMap from string to JSON valueOptionalOptional output schema (JSON Schema serialized as string) describing structured results

Request validation​

These rules apply when this value is supplied in a request. Request validation does not guarantee that response fields are present or satisfy the same rules.

Applies toRuleRequirement
nameMinimum length1
descriptionMinimum length1
server_idMinimum length1

Where used​

ReferenceRelationship
Create an agent profilePOST /api/v1/agent-profiles/create
Import a prompt libraryPOST /api/v1/agent-profiles/import
Update an agent profilePOST /api/v1/agent-profiles/update
Append a message without generatingPOST /api/v1/llm/append-message
Create a new conversation threadPOST /api/v1/llm/create-thread
Send a message to a conversationPOST /api/v1/llm/send-message
Send a message and wait for the resultPOST /api/v1/llm/send-message-sync
Update context management settingsPOST /api/v1/llm/update-context-management-settings
Update default generation configPOST /api/v1/llm/update-default-generation-config
Update the caller's default generation configPOST /api/v1/enduser/update-generation-config
Get an agent profilePOST /api/v1/agent-profiles/get
List agent profilesPOST /api/v1/agent-profiles/list
Withdraw your rating on a messagePOST /api/v1/llm/delete-message-rating
Get full conversation statePOST /api/v1/llm/conversation-state
Get detailed MCP server infoPOST /api/v1/llm/mcp-get-server-info
List available MCP toolsPOST /api/v1/llm/mcp-list-tools
Rate an assistant messagePOST /api/v1/llm/rate-message
Submit client-side tool results and wait for the next segmentPOST /api/v1/llm/submit-client-tool-results-sync
Get the caller's end-user profilePOST /api/v1/enduser/get
Generation configurationAPI JSON uses JSON field names (camelCase).
llm.generation_startedWebhook JSON uses protobuf field names (snake_case).
llm.message_publishedWebhook JSON uses protobuf field names (snake_case).
GenerationConfigNested in model
GenerationConfigNested in model
GenerationConfigNested in model
MCPServerInfoNested in model

Download the public reference contract.

Document: DOC-API-MODEL-tool-definition.