The four-way split — agent, Retell LLM, phone number, call — runs right through the tool set, and it is the thing to internalise first: changing what the agent says means updating the Retell LLM, while changing how it sounds means updating the agent. Edits to an agent are versioned, which is why get_agent_versions exists and why a bad prompt change is traceable. Calls are created and read here, not steered: nothing interrupts, transfers or mutes a call in progress.
A server over the Retell API, following its object model — calls, agents, phone numbers, voices and Retell LLM configurations, each with its own tools.
- Calls placed two ways — outbound from one number to another, or in the browser against an agent — both accepting dynamic variables and metadata, with per-call opt-out of sensitive data storage
- Call records listed by agent and time window, fetched by ID, updated with new metadata or dynamic variables, and deleted
- Agents created from a voice, language and response engine, then tuned: backchannel behaviour and words, ambient sound and its volume, boosted keywords and the delay before the opening line
- Every edit to an agent kept as a version, listed with get_agent_versions
- Numbers provisioned by area code and wired to an inbound agent, an outbound agent and an inbound webhook URL
- Retell LLM configurations as separate objects: general prompt, general tools, knowledge base IDs, model and temperature, changed without touching the agent
RETELL_API_KEY, and a Retell account whose agents, numbers and calls that key can reach.
One command plus a key — npx -y @abhaybabbar/retellai-mcp-server, then supply credentials
