Integrations and media
Voice tools for assistants (MCP)
The 3 tools an assistant can call for Voice over MCP: what each one does, the scopes it needs, its arguments and an example call.
Real-time calls with Io, the InOrbit assistant: start one on a thread, read how it went, and hang up. Speech recognition runs on your device, and a call record never holds what was said. Use it to talk a thread through with Io when typing is slower than saying it, and to see afterwards how each call went. An assistant calls these tools over MCP; the same operations over HTTP are in the Voice API. Tools for assistants lists every product, and MCP shows how to connect an assistant.
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": {
"thread_id": "thr_01JD8Z3QK4W5X6Y7Z8A9B0C1D2"
}
}
}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": {
"session_id": "cs_01JD8Z3QK4W5X6Y7Z8A9B0C1D2"
}
}
}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": {
"session_id": "cs_01JD8Z3QK4W5X6Y7Z8A9B0C1D2"
}
}
}