Transports
Voice MCP tools
The 3 tools /mcp offers for Voice, what each needs and an example call.
Start, read and end a voice call with Io. These are the 3 tools of the voice backend; all MCP tools lists the other backends.
voice_create_session
Start a voice call with Io. Start a voice call with Io on one of your threads: answers the LiveKit URL, the room and a token for that room alone, ten minutes at most. Each turn is answered on your own runner and spoken through the account's ElevenLabs connection, counted against its budget. A new call ends your previous one.
Scopes: mcp:write, voice:call · changes something · reaches outside the platform
| Argument | Type | What it is |
|---|---|---|
account_id | string | The account to act on: a team the caller belongs to. Empty is the caller's own account. |
lang | string | The language the call starts in, "en" or "hr"; empty is "en". The phone says each turn's language again on the data channel. |
thread_id | string | The caller's coordinator thread (one they own). Each turn is a Say on it, answered by Claude on the caller's own runner, and work for the Supervisor is handed over there. Required: without it there is no one to answer (FAILED_PRECONDITION). |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "voice_create_session",
"arguments": {}
}
}voice_end_session
End a voice call. End one of your voice calls: Io leaves the room and the room closes. Ending an ended call changes nothing.
Scopes: mcp:write, voice:call · changes something · safe to repeat
| Argument | Type | What it is |
|---|---|---|
account_id | string | The account's id; empty is the caller's own. |
session_id | string |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "voice_end_session",
"arguments": {}
}
}voice_get_session
Read a voice call. One of your voice call sessions: its state, room, limits, usage and why it ended. Another account's or person's session is not found.
Scopes: mcp:read, voice:read · reads only
| Argument | Type | What it is |
|---|---|---|
account_id | string | The account's id; empty is the caller's own. |
session_id | string |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "voice_get_session",
"arguments": {}
}
}