tools and mcps, each entry by id or defined inline. During a run the model can call those, the generated submit_result tool, and any provider tools enabled under llm.builtin_tools. Building a tool is covered in tools; this page covers what differs for a task.
Attaching tools
- Only published tools attach. An unpublished tool is refused when the task is saved. See testing and publishing.
- No tool containing a
handoffoperation. A task returns to whoever entered it, so it cannot hand the conversation on; such a tool is refused at publish. - Inline tools become real tools. A
{"tool": {…}}entry is created as a stored tool, published as version 1, and replaced by its{"tool_id": "…"}in the saved config. A name already used in the workspace is a409. Inline FAQs underfaqsfollow the same rule.
Publishing pins tool versions
Publishing a task freezes each attached tool at the version published at that moment. Republishing the tool does not change the task until the task is published again. The draft does not pin (tool_version is null), and a task_version: "draft" run pins at request time. See versions.
If a pinned tool version is later deleted, runs fail with error.type: "configuration" naming it; deleting the tool is not refused.
Attaching MCP servers
mcps names an integration holding the server’s credential, or defines a custom server inline (created as an integration, like an inline tool). Only an MCP-capable integration can be attached. One that is not active (disabled, or needing reconnection) saves with a warning and its tools are left out of runs until it is fixed.
Approval and namespacing are shared with agents and documented in MCP servers:
allowed_toolslives on the integration, null meaning every tool. It is read live, not frozen by a publish, so narrowing it affects every task and agent on the next round.- The model sees namespaced names.
tools_namespace: "crm"turnssearchintocrm_search; write prompts against the exposed name. Two attached servers sharing a namespace are refused at save.
allowed_tools to what the task needs.
Cost and the trace
Talqing does not charge per tool call. A call costs whatever it spends on your side (your endpoint, your MCP provider’s credits) plus the model tokens to read its result, which are included in the run’sprovider_cost. Each call is one kind: "tool" entry in the run’s trace, with the name as the model called it, arguments, result and duration.
Next
Running and runs
Run a task and read what its tools did.
MCP servers
Approval, namespacing and the tools an integration exposes.