Sign in
Docs
0%

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

ArgumentTypeWhat it is
account_idstringThe account to act on: a team the caller belongs to. Empty is the caller's own account.
langstringThe language the call starts in, "en" or "hr"; empty is "en". The phone says each turn's language again on the data channel.
thread_idstringThe 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

ArgumentTypeWhat it is
account_idstringThe account's id; empty is the caller's own.
session_idstring
{
  "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

ArgumentTypeWhat it is
account_idstringThe account's id; empty is the caller's own.
session_idstring
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "voice_get_session",
    "arguments": {}
  }
}