---
title: "Agents and voices"
description: "Create and configure voice agents and pick voices."
---

> **For AI agents:** the complete documentation index is at [llms.txt](https://docs.trillet.ai/llms.txt). Append `.md` to any page URL for its markdown version.

{/* Generated by packages/mcp/scripts/gen-tool-reference.mjs from @trillet-ai/mcp v0.10.0. Do not edit by hand. */}

Create and configure voice agents and pick voices. 6 tools.

## `trillet_list_agents`

**List agents**

List all voice agents in the workspace with a compact summary (id, name, LLM, voice, linked call flow).

Flags: `read-only` `structured output`

### Parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `workspace_id` | string | no | Run this call in another workspace: its id or its name (see trillet_list_workspaces). Omit to use the default (TRILLET_WORKSPACE_ID, the workspace picked when the connector was approved, or the one set with trillet_switch_workspace). |

### Structured output

Returned as `structuredContent` (fields are optional; the same data is in the text result, where it is a bare array):

| Field | Type | Description |
| --- | --- | --- |
| `agents` | object[] |  |

## `trillet_get_agent`

**Get agent**

Fetch one agent's full configuration by id.

Flags: `read-only` `structured output`

### Parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `agent_id` | string | yes |  |
| `workspace_id` | string | no | Run this call in another workspace: its id or its name (see trillet_list_workspaces). Omit to use the default (TRILLET_WORKSPACE_ID, the workspace picked when the connector was approved, or the one set with trillet_switch_workspace). |

### Structured output

Returned as `structuredContent` (fields are optional; the same data is in the text result):

| Field | Type | Description |
| --- | --- | --- |
| `_id` | string |  |
| `name` | string |  |
| `llmModel` | string |  |
| `ttsModel` | any |  |
| `pathway` | any |  |

## `trillet_create_agent`

**Create agent**

Create a new voice agent. ttsModel is REQUIRED by the API (requests without it fail with a 500). Creating an agent usually also creates a linked call flow; check the response's pathway field. Sensible defaults: Rime voice, llmModel "platform-llm".

Flags: `writes`

### Parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string | yes | Agent display name |
| `llmModel` | string | no | LLM id, e.g. "platform-llm", "gemini-2.5-flash", "gpt-5.2" Default: `"platform-llm"`. |
| `ttsModel` | object | yes | Text-to-speech voice configuration |
| `workspace_id` | string | no | Run this call in another workspace: its id or its name (see trillet_list_workspaces). Omit to use the default (TRILLET_WORKSPACE_ID, the workspace picked when the connector was approved, or the one set with trillet_switch_workspace). |

## `trillet_update_agent`

**Update agent**

Update an agent's name, LLM model, voice, settings, or TTS pronunciation dictionary. Only send the fields you want to change. ttsDictionary is the agent-level pronunciation list (ElevenLabs voices): the API syncs it to the voice provider and manages the dictionary locator ids itself; send only words.

Flags: `writes` `idempotent`

### Parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `agent_id` | string | yes |  |
| `name` | string | no |  |
| `llmModel` | string | no |  |
| `ttsModel` | object | no | Text-to-speech voice configuration |
| `ttsDictionary` | object | no | Agent-level TTS pronunciation dictionary (agent.ttsDictionary). Applies to ElevenLabs voices; other providers keep the words but do not sync them. |
| `settings` | object | no |  |
| `workspace_id` | string | no | Run this call in another workspace: its id or its name (see trillet_list_workspaces). Omit to use the default (TRILLET_WORKSPACE_ID, the workspace picked when the connector was approved, or the one set with trillet_switch_workspace). |

## `trillet_delete_agent`

**Delete agent**

Delete an agent from the workspace. Unbind its phone numbers first (a bound number stops routing). Always confirm with the user; requires confirm=true. The linked call flow is a separate document and is not deleted.

Flags: `writes` `destructive` `asks for confirmation`

Clients that support MCP elicitation show a confirmation form before this tool runs; declining cancels it with no changes. Other clients rely on their own approval prompt and the `confirm` argument.

### Parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `agent_id` | string | yes |  |
| `confirm` | boolean | yes | Must be true. Only set after the user explicitly approved deleting this agent. |
| `workspace_id` | string | no | Run this call in another workspace: its id or its name (see trillet_list_workspaces). Omit to use the default (TRILLET_WORKSPACE_ID, the workspace picked when the connector was approved, or the one set with trillet_switch_workspace). |

## `trillet_search_voices`

**Search voices**

Search the built-in voice catalog across providers (Rime, ElevenLabs, Cartesia, OpenAI, Hume). All filters optional; with no filters returns the full catalog (trimmed to `limit`). Use the returned provider + voiceId in an agent's ttsModel.

Flags: `read-only` `structured output`

### Parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string | no |  |
| `provider` | string | no |  |
| `gender` | string | no |  |
| `accent` | string | no | e.g. "australian", "british", "american" |
| `category` | string | no |  |
| `age` | string | no |  |
| `use_case` | string | no |  |
| `limit` | number | no | Max results returned (applied client-side) Default: `50`. |
| `workspace_id` | string | no | Run this call in another workspace: its id or its name (see trillet_list_workspaces). Omit to use the default (TRILLET_WORKSPACE_ID, the workspace picked when the connector was approved, or the one set with trillet_switch_workspace). |

### Structured output

Returned as `structuredContent` (fields are optional; the same data is in the text result):

| Field | Type | Description |
| --- | --- | --- |
| `total` | number |  |
| `returned` | number |  |
| `voices` | object[] |  |
