Developers · 5 min
One block of config: why CallAgent feels boring to integrate
Mira Ostermaier · 1 Oct 2026
Voice integrations usually mean WebRTC servers, audio codecs and webhook handlers. We wanted adding a phone to an agent to be as simple as adding any other tool.
What you don’t have to build
- No SDK. CallAgent is a remote MCP server. If your client speaks MCP, it already speaks CallAgent.
- No webhook server.
wait_for_calllong-polls and returns the moment something happens. - No audio pipeline. You send text in and get text back.
- No phone number. The line is ours. You never deal with carrier sign-ups.
One block of config
claude mcp add --transport http callagent https://34.159.148.7.sslip.io/mcp \ --header "Authorization: Bearer cba_live_…"
That is the whole integration. The token is the account: every tool works out who is calling from it, so a token can never read or steer someone else’s call.
Safe to retry
Agents retry things, and that is fine here. Starting is idempotent, so a second approve_and_start never redials. A dropped connection doesn’t drop the call: reconnect and keep polling the same run_id.