Retell AI
NPM · @MINDSTONE/MCP-SERVER-RETELL-AI · SCANNED AUG 4
Retell AI MCP server: voice agent phone calls, agent management, LLMs, and voice discovery
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →
Supply Chain Security87
- No malware found by supply-chain analysis.Pass
- Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree.Partial
- No install/post-install scripts declared.Pass
- Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency84
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to mindstone/mcp-servers). View diagnostics → Pass
- License check failed: the license (FSL-1.1-MIT) isn't a recognized OSI-approved license. See how to fix → Fail
- Actively maintained (last published 53 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability51
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 7279 tokens (~363/item across 20 items; 20 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
- Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
npm · @mindstone/mcp-server-retell-ai
claude mcp add mindstone-mcp-server-retell-ai -- npx -y @mindstone/mcp-server-retell-ai
codex mcp add mindstone-mcp-server-retell-ai -- npx -y @mindstone/mcp-server-retell-ai
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"mindstone-mcp-server-retell-ai": {
"type": "local",
"command": [
"npx",
"-y",
"@mindstone/mcp-server-retell-ai"
],
"enabled": true
}
}
} openclaw mcp add mindstone-mcp-server-retell-ai --command npx --arg -y --arg @mindstone/mcp-server-retell-ai
mcp_servers:
mindstone-mcp-server-retell-ai:
command: "npx"
args: ["-y", "@mindstone/mcp-server-retell-ai"] {
"mcpServers": {
"mindstone-mcp-server-retell-ai": {
"command": "npx",
"args": [
"-y",
"@mindstone/mcp-server-retell-ai"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 3 Aug 26 +4
- Stability: unverified → 0.23 ▲ functional
- 2 Aug 26 +63
- Provenance: unverified → pass ▲ security
- Install scripts: unverified → pass ▲ security
- Known CVEs: unverified → partial ▲ security
- Malware scan: unverified → pass ▲ security
- Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
- The attested source repository moved: mindstone/mcp-servers security
- License: unverified → fail ▼ functional
- Dependency health: unverified → partial ▲ functional
- Maintenance: unverified → pass ▲ functional
- MCP protocol: unverified → pass ▲ functional
- Schema quality: unverified → good ▲ functional
- Tool coverage: unverified → 100 ▲ functional
- Licence: FSL-1.1-MIT functional
- 1 Aug 26 −17
- Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. security
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- 31 Jul 26 −2
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 28 Jul 26 −17
- Tool coverage: 100 → unverified ▼ functional
- First check of Schema quality: unverified functional
- 27 Jul 26 41
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 4 Aug 2026 · Analysed npm/@mindstone/[email protected]
Provenance verified
Ecosystem: npm · Outcome: verified
Reason: verified
- Source repo:
- mindstone/mcp-servers
- Certificate issuer:
- https://token.actions.githubusercontent.com
- Certificate SAN:
- https://github.com/mindstone/mcp-servers/.github/workflows/release.yml@refs/heads/main
- Rekor log index:
- 1793439619
- Predicate type:
- https://slsa.dev/provenance/v1
- Subject digest:
- sha512:64cd6e90d6e8447002ea6101ca68b6ad0fade675914fc269ad8b81fd192575095fb333c65db0cbb34acdced69c712f553fe42394a7b20e20e86dbb00a
- Discovery method:
- attestation_endpoint
Dependencies 95 packages
95 packages in the resolved dependency tree · 95 deprecated · 29 stale.
The dependency tree was only partially resolved, so these counts may be incomplete.
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
configure_retell_api_key ~92
Save your Retell AI API key. Call this when the user provides their key. WHERE TO GET A KEY: 1. Go to https://www.retellai.com/dashboard 2. Navigate to API Keys in settings 3. Create and copy your API key All other Retell AI tools require a valid API key to work.
| Name | Type | Req | Description |
|---|---|---|---|
| api_key | string | yes | Retell AI API key. |
No output schema declared.
No examples provided.
create_agent ~439
Create a new voice agent with specified voice, LLM, and language settings. WHEN TO USE: - Setting up a new voice agent from scratch - No existing agent fits the use case WORKFLOW: 1. list_voices → choose voice_id 2. create_retell_llm → create prompt/model config 3. create_agent → point response_engine.llm_id at that LLM 4. publish_agent → make the version live 5. update_phone_number → bind the agent for calls EXAMPLE: { "agent_name": "Sales qualifier", "voice_id": "11labs-Adrian", "response_engine": { "type": "retell-llm", "llm_id": "llm_xxx" }, "language": "en-US" } COMMON MISTAKES: - Creating the agent before creating/selecting a Retell LLM - Forgetting to publish and bind the agent to a phone number before create_phone_call ERROR RECOVERY: - 401: API key is missing or invalid → configure_retell_api_key - 404: voice_id or llm_id not found → list_voices/list_retell_llms and retry - 422: invalid config → verify response_engine is { "type": "retell-llm", "llm_id": "..." } RELATED TOOLS: - list_voices: Choose a voice_id - create_retell_llm/list_retell_llms: Choose or create the LLM - publish_agent: Make the new version live - update_phone_number: Bind for inbound/outbound calls RETURNS: agent_id, agent_name, voice_id, response_engine, language, version fields.
| Name | Type | Req | Description |
|---|---|---|---|
| agent_name | string | — | Display name for the agent (e.g. "Sales qualifier"). |
| language | string | — | Language code (e.g. "en-US", "es-ES"). Default: en-US. |
| response_engine | object | — | Response engine configuration linking the agent to an LLM. |
| voice_id | string | — | Voice to use. Get valid IDs from list_voices. |
No output schema declared.
No examples provided.
create_phone_call ~787
Create an outbound phone call using a Retell AI voice agent. WHEN TO USE: User asks you to make, place, or initiate a phone call. WORKFLOW (typical sequence): 1. list_agents → find the right agent, note its agent_id 2. get_agent → check config, get its retell_llm_id 3. update_retell_llm → set the conversation prompt/instructions 4. Wait 2-3 seconds (let config propagate) 5. create_phone_call → initiate the call 6. Poll get_call every 5-10s until status is "ended" EXAMPLE: { "from_number": "+14155551234", "to_number": "+14155559876", "override_agent_id": "agent_xxx", "override_agent_version": 2 } COMMON MISTAKES: - Skipping update_retell_llm first: the agent will use the previous call's prompt - Passing override_agent_id without override_agent_version: Retell may route to the wrong or unpublished version - Assuming the phone number is already bound: check list_phone_numbers/get_phone_number - Updating the agent or LLM but not publishing the version before calling ERROR RECOVERY: - 401: API key is missing or invalid → ask the user for the key, then configure_retell_api_key - 404: resource/version/binding not found → check phone number outbound_agents, get_agent_versions, then publish_agent or pass override_agent_version - 422: bad parameter shape/value → verify E.164 phone numbers and valid agent/version IDs CRITICAL: If the call returns 404, the most common causes are: - The phone number has no outbound agent bound → use update_phone_number to bind one - The agent version is unpublished → use publish_agent first, or pass override_agent_version - Always pass override_agent_id AND override_agent_version for reliable routing RELATED TOOLS: - update_retell_llm: Set the prompt before placing the call - get_phone_number/list_phone_numbers: Verify outbound bindings and from_number - publish_agent/get_agent_versions: Confirm the version is live - get_call: Monitor status and retrieve transcript/recording RETURNS: call_id, status, agent_id, from_number, to_number, st…
| Name | Type | Req | Description |
|---|---|---|---|
| from_number | string | yes | Caller phone number in E.164 format (e.g. +14155551234). Must be registered in Retell and have an outbound agent binding. Use list_phone_numbers to find available numbers. |
| metadata | object | — | Custom metadata key-value pairs to attach to this call (for CRM IDs, campaign IDs, user context). |
| override_agent_id | string | — | Agent ID to use for this call. If set, also pass override_agent_version for reliable routing. If omitted, uses the default agent assigned to from_number. |
| override_agent_version | — | — | Agent version: number (0, 1, 2...) or tag ("latest", "prod"). Use with override_agent_id for reliable routing to a published version. |
| retell_llm_dynamic_variables | object | — | Dynamic variables to inject into the prompt template (e.g. { customer_name: 'Jane', account_tier: 'pro' }). WARNING: These ONLY work if the LLM prompt already contains matching {{variable_name}} plac… |
| to_number | string | yes | Recipient phone number in E.164 format (e.g. +14155559876). |
No output schema declared.
No examples provided.
create_retell_llm ~535
Create a new Retell LLM response engine with prompt and model settings. WHEN TO USE: - Creating a new agent that needs its own prompt/model config - Separating a new call workflow from an existing agent's LLM - Testing a new prompt without overwriting a production LLM WORKFLOW: Create the LLM first, then create_agent with response_engine: { "type": "retell-llm", "llm_id": "<returned llm_id>" }. EXAMPLE: { "general_prompt": "You confirm appointment times and answer basic scheduling questions.", "begin_message": "Hi, I'm calling to confirm your appointment.", "model": "gpt-5.5" } MODEL OPTIONS: gpt-4.1, gpt-4.1-mini, gpt-5, gpt-5-mini, gpt-5.5, claude-4.5-sonnet, claude-4.6-sonnet, claude-4.5-haiku, gemini-2.5-flash-lite, gemini-3.0-flash, gemini-3.1-flash-lite. COMMON MISTAKES: - Creating multiple near-identical LLMs instead of updating the existing one - Creating the LLM but never attaching it to an agent ERROR RECOVERY: - 401: API key is missing or invalid → configure_retell_api_key - 422: invalid model/prompt → use a listed model and non-empty prompt RELATED TOOLS: - list_retell_llms/get_retell_llm: Reuse or inspect existing configs - create_agent/update_agent: Attach the new llm_id to an agent - update_retell_llm: Modify this config later RETURNS: llm_id, general_prompt, begin_message, model, model_temperature, general_tools, timestamps.
| Name | Type | Req | Description |
|---|---|---|---|
| begin_message | string | — | First message spoken when the call connects. |
| general_prompt | string | — | System prompt/instructions for the voice agent. Keep it call-ready and explicit. |
| model | string | — | LLM model. Options: gpt-4.1, gpt-4.1-mini, gpt-5, gpt-5-mini, gpt-5.5, claude-4.5-sonnet, claude-4.6-sonnet, claude-4.5-haiku, gemini-2.5-flash-lite, gemini-3.0-flash, gemini-3.1-flash-lite. |
No output schema declared.
No examples provided.
create_web_call ~425
Create a browser-based voice call session. Returns a web_call_link the user can open to talk to a Retell agent. WHEN TO USE: - User wants a voice call in their browser instead of their phone - Phone call route is blocked (e.g. phone number binding issue) - Testing or demoing an agent without using phone minutes EXAMPLE: { "agent_id": "agent_xxx", "agent_version": "latest", "retell_llm_dynamic_variables": { "customer_name": "Jane" } } COMMON MISTAKES: - Forgetting agent_version when testing a specific published version - Sharing an old web_call_link instead of creating a fresh session ERROR RECOVERY: - 401: API key is missing or invalid → configure_retell_api_key - 404: agent/version not found → list_agents, get_agent_versions, then publish_agent if needed - 422: bad dynamic variable shape → send a plain JSON object RELATED TOOLS: - list_agents/get_agent: Find the agent_id and response engine - update_retell_llm: Set the prompt before creating the test session - get_call: Retrieve transcript, analysis, and recording after the session RETURNS: call_id, web_call_link, status, agent_id, access_token. Share web_call_link with the user.
| Name | Type | Req | Description |
|---|---|---|---|
| agent_id | string | yes | Agent ID to handle the web call. Use list_agents/get_agent to verify it first. |
| agent_version | — | — | Agent version to use: number (0, 1, 2...) or tag (e.g. "latest", "prod"). Pass this when validating a specific published version. |
| metadata | object | — | Custom metadata for this call (CRM IDs, test labels, scenario names). |
| retell_llm_dynamic_variables | object | — | Dynamic prompt variables used by the Retell LLM prompt template. WARNING: Only works if the LLM prompt contains matching {{variable_name}} placeholders. Unmatched variables are silently dropped. Chec… |
No output schema declared.
No examples provided.
get_agent ~277
Get full configuration of a voice agent including voice, LLM, language, and versioning info. WHEN TO USE: - Before making a call, to check the agent's retell_llm_id (needed for update_retell_llm) - To verify which voice, language, or phone number an agent uses - To check the agent's current version and published state COMMON MISTAKES: - Updating the wrong LLM: use response_engine.llm_id from this tool before update_retell_llm - Assuming draft changes are live: use get_agent_versions/publish_agent to confirm ERROR RECOVERY: - 401: API key is missing or invalid → configure_retell_api_key - 404: agent_id not found → list_agents and retry with the returned ID RELATED TOOLS: - list_agents: Discover agent IDs - get_agent_versions: Inspect draft/published versions - update_retell_llm: Update the linked response_engine.llm_id - create_phone_call: Use this agent after validating config RETURNS: agent_id, agent_name, voice_id, response_engine.llm_id, language, version, published/versioning fields, phone number bindings when available.
| Name | Type | Req | Description |
|---|---|---|---|
| agent_id | string | yes | The agent ID to look up. Use list_agents if you only know the name. |
No output schema declared.
No examples provided.
get_agent_versions ~214
List all versions of an agent, including draft and published versions. WHEN TO USE: - To check which version is currently published/live - To find the version number of a draft before publishing - To debug version mismatch issues causing 404 errors on calls COMMON MISTAKES: - Using override_agent_id without checking the matching override_agent_version here - Publishing/calling a stale version after updating the draft ERROR RECOVERY: - 401: API key is missing or invalid → configure_retell_api_key - 404: agent_id not found → list_agents and retry RELATED TOOLS: - publish_agent: Publish a draft version returned here - create_phone_call: Pass override_agent_version from this list - get_agent: Inspect the agent tied to these versions RETURNS: versions, count. Each version includes version number, published/live status, creation/update timestamps, and description when available.
| Name | Type | Req | Description |
|---|---|---|---|
| agent_id | string | yes | Agent ID to list versions for. Use list_agents if unknown. |
No output schema declared.
No examples provided.
get_call ~244
Get details of a specific call including status, transcript, recording URL, and duration. WHEN TO USE: - After create_phone_call or create_web_call to monitor progress - To retrieve the full transcript after a call ends - To check call status: "registered" (queued), "ongoing" (live), "ended" (complete), "error" (failed) WORKFLOW: Poll every 5-10 seconds after creating a call until status is "ended" or "error". ERROR RECOVERY: - 401: API key is missing or invalid → configure_retell_api_key - 404: call_id not found → check the ID returned by create_phone_call/create_web_call or use list_calls RELATED TOOLS: - create_phone_call/create_web_call: Source of call_id - list_calls: Find recent call IDs if call_id is unknown - stop_call: End an ongoing call RETURNS: call_id, status, transcript, transcript_object, recording_url, call_analysis, duration_ms, disconnection_reason.
| Name | Type | Req | Description |
|---|---|---|---|
| call_id | string | yes | The call ID returned by create_phone_call/create_web_call or found via list_calls. |
No output schema declared.
No examples provided.
get_phone_number ~248
Get details of a specific phone number including its agent bindings. WHEN TO USE: - To check which agents are bound (inbound and outbound) to a specific number - To diagnose why create_phone_call returns 404 (missing outbound agent binding) - To confirm the bound agent_version before overriding call routing COMMON MISTAKES: - Checking only that the number exists; outbound calls require outbound_agents - Missing that the bound agent_version differs from the version you intend to use ERROR RECOVERY: - 401: API key is missing or invalid → configure_retell_api_key - 404: phone number not found → list_phone_numbers and use the exact E.164 value RELATED TOOLS: - list_phone_numbers: Discover available numbers - update_phone_number: Add/fix inbound or outbound bindings - get_agent_versions: Verify bound agent versions - create_phone_call: Use this phone_number as from_number RETURNS: phone_number, nickname, inbound_agents, outbound_agents, phone number config fields.
| Name | Type | Req | Description |
|---|---|---|---|
| phone_number | string | yes | Phone number in E.164 format exactly as returned by list_phone_numbers (e.g. +14155551234). |
No output schema declared.
No examples provided.
get_retell_llm ~246
Get details of a Retell LLM response engine (prompt, model, tools). WHEN TO USE: - Inspect current prompt/model before update_retell_llm - Confirm which prompt an agent will use before a call - Debug why an agent said the wrong thing COMMON MISTAKES: - Looking at the agent only; the actual call instructions live in the Retell LLM - Editing a different LLM than the one returned by get_agent.response_engine.llm_id ERROR RECOVERY: - 401: API key is missing or invalid → configure_retell_api_key - 404: llm_id not found → get_agent/list_retell_llms and retry RELATED TOOLS: - get_agent: Find response_engine.llm_id for an agent - update_retell_llm: Change the prompt/model - list_retell_llms: Browse available LLM configs RETURNS: llm_id, general_prompt, begin_message, model, model_temperature, general_tools, timestamps.
| Name | Type | Req | Description |
|---|---|---|---|
| llm_id | string | yes | The Retell LLM config ID. Usually get this from get_agent → response_engine.llm_id. |
No output schema declared.
No examples provided.
list_agents ~168
List all configured voice agents in your Retell account. WHEN TO USE: - Discover available agents before making calls - Find agent IDs by name - Inventory check COMMON MISTAKES: - Guessing agent IDs from names; use the returned agent_id exactly - Choosing an agent without checking its response_engine.llm_id and versions via get_agent ERROR RECOVERY: - 401: API key is missing or invalid → configure_retell_api_key RELATED TOOLS: - get_agent: Inspect full config for a returned agent_id - get_agent_versions: Check published versions - create_phone_call/create_web_call: Use a verified agent_id RETURNS: agents, count. Each agent usually includes agent_id, agent_name, voice_id, response_engine, and timestamps.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_calls ~392
List calls with filtering and pagination. Returns recent calls by default (newest first). WHEN TO USE: - Browse call history - Find calls by agent, date range, or status - Verify recent call activity FILTERING: - agent_id accepts an array of one or more agent IDs - filter_criteria timestamps accept Unix milliseconds (number) or a parseable date string (e.g. "2026-01-01"); date strings are converted to milliseconds before the API call - Example: { "limit": 20, "agent_id": ["agent_xxx"], "filter_criteria": { "after_start_timestamp": 1735689600000 } } COMMON MISTAKES: - Passing one agent_id as a string instead of an array - Using seconds for numeric timestamps; Retell expects milliseconds ERROR RECOVERY: - 401: API key is missing or invalid → configure_retell_api_key - 422: invalid filter shape → check agent_id is an array and numeric timestamps are milliseconds RELATED TOOLS: - get_call: Get transcript/recording/analysis for a returned call_id - list_agents: Find agent IDs for filtering - stop_call: End an ongoing call RETURNS: calls, count, pagination_key, has_more. Each call includes call_id, status, agent_id, timestamps, and call metadata.
| Name | Type | Req | Description |
|---|---|---|---|
| agent_id | array | — | Filter calls by one or more agent IDs. Must be an array, even for one agent: ["agent_xxx"]. |
| filter_criteria | object | — | Time-based filters for narrowing call results. |
| limit | integer | — | Max results (1-1000). Default: 50. |
| pagination_key | string | — | Pagination key from previous response for the next page. |
| sort_order | string | — | Sort by start time. Default: descending (newest first). |
No output schema declared.
No examples provided.
list_phone_numbers ~315
List all phone numbers in your Retell account with their agent bindings. WHEN TO USE: - Before create_phone_call, to find available from_numbers - To check which agents are bound to which numbers - To verify outbound agent configuration TIP: The phone_number field (E.164 format) is what you pass as from_number in create_phone_call. The outbound_agents array shows which agent(s) are bound for outbound calls from this number. Check each outbound agent's agent_version before calling; version mismatches are a common 404 cause. COMMON MISTAKES: - Using a number that exists but has no outbound_agents binding - Ignoring agent_version on the binding and then overriding only agent_id during create_phone_call ERROR RECOVERY: - 401: API key is missing or invalid → configure_retell_api_key - 422: invalid pagination params → keep limit between 1 and 1000 RELATED TOOLS: - get_phone_number: Inspect one number's bindings - update_phone_number: Bind or rebind agents - create_phone_call: Use returned phone_number as from_number - get_agent_versions: Verify bound versions RETURNS: phone_numbers, count, pagination_key, has_more. Each number includes phone_number, inbound_agents, outbound_agents, nickname/config when available.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | — | Max results to return (default: 50, max: 1000). |
| pagination_key | string | — | Pagination key from the previous response for the next page. |
No output schema declared.
No examples provided.
list_retell_llms ~270
List all Retell LLM response engine configurations. WHEN TO USE: - Find llm_id values before get_retell_llm/update_retell_llm - Inventory prompt/model configurations - Decide whether to reuse an LLM or create a new one COMMON MISTAKES: - Updating an arbitrary llm_id without checking which agent uses it - Assuming list order implies which LLM is active; use get_agent to confirm bindings ERROR RECOVERY: - 401: API key is missing or invalid → configure_retell_api_key - 422: invalid pagination params → keep limit between 1 and 1000 RELATED TOOLS: - get_retell_llm: Inspect one returned llm_id - update_retell_llm: Change prompt/model - get_agent/list_agents: See which agents reference each LLM - create_retell_llm: Create a separate config when reuse is unsafe RETURNS: llms, count, pagination_key, has_more. Each LLM includes llm_id, prompt/model fields, and timestamps when available.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | — | Max results to return (default: 50, max: 1000). |
| pagination_key | string | — | Pagination key from the previous response for the next page. |
No output schema declared.
No examples provided.
list_voices ~175
Browse all available TTS voices in Retell. WHEN TO USE: - Find voice IDs when creating or updating an agent - Compare providers/voice names before selecting a voice - Verify a voice_id still exists after a 404 from create_agent/update_agent COMMON MISTAKES: - Passing the display name instead of the exact voice_id - Reusing an old voice_id without checking it still exists ERROR RECOVERY: - 401: API key is missing or invalid → configure_retell_api_key RELATED TOOLS: - create_agent: Use a returned voice_id for a new agent - update_agent: Change an existing agent's voice_id RETURNS: voices, count. Each voice includes voice_id, voice_name/name, provider, accent/language/gender, and preview metadata when available.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
publish_agent ~346
Publish a specific agent version, making it the active/live version. WHEN TO USE: - After updating an agent's config or LLM, to make changes live - When create_phone_call returns 404 because the agent version is unpublished - When you need to activate a specific version CRITICAL: Agent updates go to the latest DRAFT version. They are NOT live until published. If calls fail with 404, check get_agent_versions and publish the correct version. WORKFLOW: 1. update_agent or update_retell_llm → changes the draft 2. get_agent_versions → find the version number of the draft 3. publish_agent → make it live COMMON MISTAKES: - Publishing the wrong version number; call get_agent_versions immediately before this - Assuming update_retell_llm alone publishes changes ERROR RECOVERY: - 401: API key is missing or invalid → configure_retell_api_key - 404: agent/version not found → list_agents/get_agent_versions - 422: version is invalid or not publishable → verify the draft version number RELATED TOOLS: - get_agent_versions: Find the version number to publish - update_agent/update_retell_llm: Make draft changes first - create_phone_call: Use the published version afterward RETURNS: ok, message confirming the agent_id and published version.
| Name | Type | Req | Description |
|---|---|---|---|
| agent_id | string | yes | Agent ID to publish. Use list_agents/get_agent if needed. |
| version | integer | yes | Version number to publish. Get the exact number from get_agent_versions. |
| version_description | string | — | Optional description of this version (e.g. what prompt/config changed). |
No output schema declared.
No examples provided.
stop_call ~173
Stop an ongoing call immediately. WHEN TO USE: - User wants to end a call in progress - Call is stuck or behaving unexpectedly - Emergency stop COMMON MISTAKES: - Calling this on an already ended call; use get_call first if unsure ERROR RECOVERY: - 401: API key is missing or invalid → configure_retell_api_key - 404: call_id not found or no longer active → verify with list_calls/get_call RELATED TOOLS: - get_call: Check whether status is "ongoing" before stopping - list_calls: Find the active call_id RETURNS: ok, message. Retell returns HTTP 204 on success.
| Name | Type | Req | Description |
|---|---|---|---|
| call_id | string | yes | The call ID of the ongoing call to stop. Confirm status with get_call when possible. |
No output schema declared.
No examples provided.
update_agent ~465
Update an existing agent's configuration (voice, name, response engine, language, etc.). WHEN TO USE: - Change voice, language, response engine, responsiveness, or backchannel behavior - Point an agent at a different Retell LLM NOTE: This updates the agent's latest DRAFT version. To make changes live, call publish_agent afterward. COMMON MISTAKES: - Updating the agent and immediately calling without publish_agent - Switching response_engine.llm_id without checking the LLM config first ERROR RECOVERY: - 401: API key is missing or invalid → configure_retell_api_key - 404: agent_id/voice_id/llm_id not found → use list_agents/list_voices/list_retell_llms - 422: invalid setting range → check numeric ranges on speed/responsiveness/sensitivity RELATED TOOLS: - get_agent: Inspect current config before changing - publish_agent/get_agent_versions: Publish and verify draft changes - update_retell_llm: Change prompt/model without replacing the response engine RETURNS: Updated agent object including agent_id, agent_name, voice_id, response_engine, language, draft/version fields.
| Name | Type | Req | Description |
|---|---|---|---|
| agent_id | string | yes | Agent ID to update. Use get_agent first when unsure. |
| agent_name | string | — | New display name. |
| ambient_sound | string | — | Background ambience sound. |
| boosted_keywords | array | — | Words to boost in speech recognition (names, brands, etc.). |
| enable_backchannel | boolean | — | Whether the agent says "yeah", "uh-huh" during user speech. |
| interruption_sensitivity | number | — | How easily user can interrupt (0=never, 1=easy). Default: 1. |
| language | string | — | New language code (e.g. "en-US", "es-ES"). |
| response_engine | object | — | Updated response engine config. |
| responsiveness | number | — | How quickly the agent responds (0=slow, 1=fast). Default: 1. |
| voice_id | string | — | New voice ID. Get IDs from list_voices. |
| voice_speed | number | — | Speech rate (0.5=slow, 2=fast). Default: 1. |
No output schema declared.
No examples provided.
update_phone_number ~440
Update agent bindings and settings for a phone number. WHEN TO USE: - To bind an agent to a phone number for outbound/inbound calls - To fix "404 Not Found" errors on create_phone_call (the number needs an outbound agent) - To change which agent handles calls on a number CRITICAL: After Retell's March 2026 update, phone numbers use weighted agent lists. Each binding needs agent_id, weight (must sum to 1), and optionally agent_version. EXAMPLE — bind agent to outbound calls: { "phone_number": "+14155551234", "outbound_agents": [{ "agent_id": "agent_xxx", "agent_version": 1, "weight": 1 }] } COMMON MISTAKES: - Omitting agent_version and accidentally binding the wrong/latest version - Setting weights that do not sum to 1 - Updating inbound_agents when the failure is outbound calling ERROR RECOVERY: - 401: API key is missing or invalid → configure_retell_api_key - 404: phone_number or agent_id not found → list_phone_numbers/list_agents - 422: invalid binding → include agent_id + weight, ensure weights sum to 1, verify agent_version RELATED TOOLS: - get_phone_number/list_phone_numbers: Inspect current bindings first - get_agent_versions: Choose a valid agent_version - publish_agent: Make the desired version live before binding - create_phone_call: Test outbound routing after updating RETURNS: phone_number, nickname, inbound_agents, outbound_agents, updated config fields.
| Name | Type | Req | Description |
|---|---|---|---|
| inbound_agents | array | — | Agents for inbound calls. Each item needs agent_id and weight; include agent_version when targeting a specific version. Weights must sum to 1. |
| nickname | string | — | Human-readable label for this number. |
| outbound_agents | array | — | Agents for outbound calls. Each item needs agent_id and weight; include agent_version to avoid version-binding mistakes. Weights must sum to 1. |
| phone_number | string | yes | Phone number in E.164 format exactly as returned by list_phone_numbers. |
No output schema declared.
No examples provided.
update_retell_llm ~775
Update a Retell LLM response engine's prompt, model, or behavior settings. WHEN TO USE: - Before making a call, to set the conversation instructions/prompt - To change the LLM model or temperature - To update the agent's opening message CRITICAL: This is the #1 most important step before any phone call. The general_prompt controls what the agent says. If you skip this, the agent will use the PREVIOUS call's prompt. WORKFLOW: 1. get_agent → find the agent's retell_llm_id (in response_engine.llm_id) 2. update_retell_llm → set the prompt and behavior 3. get_agent_versions/publish_agent if the agent version needs publishing 4. Wait 2-3 seconds for propagation 5. create_phone_call MODEL OPTIONS: gpt-4.1, gpt-4.1-mini, gpt-5, gpt-5-mini, gpt-5.5, claude-4.5-sonnet, claude-4.6-sonnet, claude-4.5-haiku, gemini-2.5-flash-lite, gemini-3.0-flash, gemini-3.1-flash-lite. EXAMPLE: { "llm_id": "llm_xxx", "general_prompt": "You are calling to confirm tomorrow's appointment. Be concise and polite.", "begin_message": "Hi, this is Alex calling to confirm your appointment.", "model": "gpt-5.5" } COMMON MISTAKES: - Skipping this before create_phone_call, causing the previous call's prompt to run - Updating the wrong llm_id; get it from get_agent.response_engine.llm_id - Forgetting to publish the agent/version after changing call behavior ERROR RECOVERY: - 401: API key is missing or invalid → configure_retell_api_key - 404: llm_id not found → get_agent or list_retell_llms - 422: invalid model/prompt/tools → use a listed model and valid JSON tool config RELATED TOOLS: - get_agent: Find the linked response_engine.llm_id - get_retell_llm: Inspect current prompt/model before changing - publish_agent/get_agent_versions: Make agent changes live - create_phone_call/create_web_call: Test the updated behavior RETURNS: llm_id, general_prompt, begin_message, model, model_temperature, general_tools, updated timestamps.
| Name | Type | Req | Description |
|---|---|---|---|
| begin_message | string | — | First message the agent speaks when the call connects (e.g. "Hi, this is Sarah from Acme Corp."). |
| general_prompt | string | — | System prompt/instructions for the voice agent. This controls what the agent says; update it before each call-specific scenario. |
| general_tools | array | — | Tools available to the LLM during calls (advanced). Must match Retell tool schema. |
| llm_id | string | yes | The LLM config ID to update. Get from get_agent → response_engine.llm_id or list_retell_llms. |
| model | string | — | LLM model. Options: gpt-4.1, gpt-4.1-mini, gpt-5, gpt-5-mini, gpt-5.5, claude-4.5-sonnet, claude-4.6-sonnet, claude-4.5-haiku, gemini-2.5-flash-lite, gemini-3.0-flash, gemini-3.1-flash-lite. |
| model_temperature | number | — | Temperature (0=deterministic, 2=creative). Default: varies by model. |
No output schema declared.
No examples provided.