retellai mcp server

Local 2025-09-01 01:06:01 0

A Model Context Protocol server implementation that enables AI assistants to interact with RetellAI's voice services for managing calls, agents, phone numbers, and voice options.


This is a Model Context Protocol (MCP) server implementation for RetellAI, allowing AI assistants to interact with RetellAI s voice services.

Features

The RetellAI MCP server provides tools for:

  • Call Management: Create and manage phone calls and web calls
  • Agent Management: Create and manage voice agents with different LLM configurations
  • Phone Number Management: Provision and configure phone numbers
  • Voice Management: Access and use different voice options

Claude Desktop Setup

  1. Open Claude Desktop and press CMD + , to go to Settings.
  2. Click on the Developer tab.
  3. Click on the Edit Config button.
  4. This will open the claude_desktop_config.json file in your file explorer.
  5. Get your Retell API key from the Retell dashboard (https://dashboard.retellai.com/apiKey).
  6. Add the following to your claude_desktop_config.json file. See here for more details.
  7. Restart the Claude Desktop after editing the config file.
{
  "mcpServers": {
    "retellai-mcp-server": {
      "command": "npx",
      "args": ["-y", "@abhaybabbar/retellai-mcp-server"],
      "env": {
        "RETELL_API_KEY": "<your_retellai_token>"
      }
    }
  }
}

Example use cases:

  1. List all the numbers I have in retellai
  2. List all the agents I have
  3. Tell me more about pizza delivery agent
  4. Creating agent and calling example:
  5. Create an agent that calls my local pizza shop, make sure to keep the conversation short and to the point.
  6. Order a margeritta pizza
  7. Payment will be done by cash on delivery
  8. Send it to
  9. The agent should pretend to be me. My name is
  10. Make an outbound call to my local pizza shop at , using the usa number

Repo Setup

  1. Install dependencies:
npm i
  1. Create a .env file with your RetellAI API key:
RETELL_API_KEY=your_api_key_here
  1. Run the server:
    node src/retell/index.js

Available Tools

Call Tools

  • list_calls: Lists all Retell calls
  • create_phone_call: Creates a new phone call
  • create_web_call: Creates a new web call
  • get_call: Gets details of a specific call
  • delete_call: Deletes a specific call

Agent Tools

  • list_agents: Lists all Retell agents
  • create_agent: Creates a new Retell agent
  • get_agent: Gets a Retell agent by ID
  • update_agent: Updates an existing Retell agent
  • delete_agent: Deletes a Retell agent
  • get_agent_versions: Gets all versions of a Retell agent

Phone Number Tools

  • list_phone_numbers: Lists all Retell phone numbers
  • create_phone_number: Creates a new phone number
  • get_phone_number: Gets details of a specific phone number
  • update_phone_number: Updates a phone number
  • delete_phone_number: Deletes a phone number

Voice Tools

  • list_voices: Lists all available Retell voices
  • get_voice: Gets details of a specific voice

License

MIT

[
  {
    "description": "Creates a new phone call",
    "name": "create_phone_call",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "direction": {
          "default": "outbound",
          "enum": [
            "inbound",
            "outbound"
          ],
          "type": "string"
        },
        "fromNumber": {
          "description": "The phone number to call from",
          "type": "string"
        },
        "metadata": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        },
        "optInSignedUrl": {
          "type": "boolean"
        },
        "optOutSensitiveDataStorage": {
          "type": "boolean"
        },
        "overrideAgentId": {
          "description": "For this particular call, override the agent used with this agent id",
          "type": "string"
        },
        "overrideAgentVersion": {
          "description": "For this particular call, override the agent version used with this version",
          "type": "number"
        },
        "retellLlmDynamicVariables": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Dynamic variables to pass to the LLM in key-value pairs",
          "type": "object"
        },
        "toNumber": {
          "description": "The phone number to call to",
          "type": "string"
        }
      },
      "required": [
        "fromNumber",
        "toNumber"
      ],
      "type": "object"
    }
  },
  {
    "description": "Creates a new web call",
    "name": "create_web_call",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "agentId": {
          "description": "The ID of the agent to use for the call",
          "type": "string"
        },
        "metadata": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        },
        "optInSignedUrl": {
          "type": "boolean"
        },
        "optOutSensitiveDataStorage": {
          "type": "boolean"
        },
        "retellLlmDynamicVariables": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Dynamic variables to pass to the LLM in key-value pairs",
          "type": "object"
        }
      },
      "required": [
        "agentId"
      ],
      "type": "object"
    }
  },
  {
    "description": "Gets a call by ID",
    "name": "get_call",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "callId": {
          "description": "The ID of the call to retrieve",
          "type": "string"
        }
      },
      "required": [
        "callId"
      ],
      "type": "object"
    }
  },
  {
    "description": "Lists all calls",
    "name": "list_calls",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "agentId": {
          "description": "Filter calls by agent ID",
          "type": "string"
        },
        "endTimestamp": {
          "description": "Filter calls before this timestamp",
          "type": "number"
        },
        "limit": {
          "description": "Maximum number of calls to return",
          "type": "number"
        },
        "offset": {
          "description": "Number of calls to skip",
          "type": "number"
        },
        "startTimestamp": {
          "description": "Filter calls after this timestamp",
          "type": "number"
        }
      },
      "required": null,
      "type": "object"
    }
  },
  {
    "description": "Updates an existing call",
    "name": "update_call",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "callId": {
          "description": "The ID of the call to update",
          "type": "string"
        },
        "dynamicVariables": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        },
        "metadata": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        }
      },
      "required": [
        "callId"
      ],
      "type": "object"
    }
  },
  {
    "description": "Deletes a call",
    "name": "delete_call",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "callId": {
          "description": "The ID of the call to delete",
          "type": "string"
        }
      },
      "required": [
        "callId"
      ],
      "type": "object"
    }
  },
  {
    "description": "Lists all Retell agents",
    "name": "list_agents",
    "parameters": {
      "additionalProperties": false,
      "properties": {},
      "required": null,
      "type": "object"
    }
  },
  {
    "description": "Creates a new Retell agent",
    "name": "create_agent",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "agent_name": {
          "description": "Name of the agent",
          "type": "string"
        },
        "language": {
          "enum": [
            "en-US",
            "en-IN",
            "en-GB",
            "en-AU",
            "en-NZ",
            "de-DE",
            "es-ES",
            "es-419",
            "hi-IN",
            "fr-FR",
            "fr-CA",
            "ja-JP",
            "pt-PT",
            "pt-BR",
            "zh-CN",
            "ru-RU",
            "it-IT",
            "ko-KR"
          ],
          "type": "string"
        },
        "response_engine": {
          "additionalProperties": false,
          "properties": {
            "llm_id": {
              "description": "ID of the Retell LLM Response Engine, if llm_id not mentioned by user, create a new one",
              "type": "string"
            },
            "type": {
              "const": "retell-llm",
              "type": "string"
            },
            "version": {
              "type": "number"
            }
          },
          "required": [
            "type",
            "llm_id"
          ],
          "type": "object"
        },
        "voice_id": {
          "description": "ID of the voice to use",
          "type": "string"
        },
        "voice_model": {
          "enum": [
            "eleven_turbo_v2",
            "eleven_flash_v2",
            "eleven_turbo_v2_5",
            "eleven_flash_v2_5",
            "eleven_multilingual_v2",
            "Play3.0-mini",
            "PlayDialog"
          ],
          "type": "string"
        }
      },
      "required": [
        "response_engine",
        "voice_id"
      ],
      "type": "object"
    }
  },
  {
    "description": "Gets a Retell agent by ID",
    "name": "get_agent",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "agentId": {
          "description": "The ID of the agent to retrieve",
          "type": "string"
        }
      },
      "required": [
        "agentId"
      ],
      "type": "object"
    }
  },
  {
    "description": "Updates an existing Retell agent",
    "name": "update_agent",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "agentId": {
          "description": "The ID of the agent to update",
          "type": "string"
        },
        "agent_name": {
          "type": "string"
        },
        "ambient_sound": {
          "type": "string"
        },
        "ambient_sound_volume": {
          "type": "number"
        },
        "backchannel_frequency": {
          "type": "number"
        },
        "backchannel_words": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "begin_message_delay_ms": {
          "type": "number"
        },
        "boosted_keywords": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "enable_backchannel": {
          "type": "boolean"
        },
        "enable_transcription_formatting": {
          "type": "boolean"
        },
        "enable_voicemail_detection": {
          "type": "boolean"
        },
        "end_call_after_silence_ms": {
          "type": "number"
        },
        "fallback_voice_ids": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "interruption_sensitivity": {
          "type": "number"
        },
        "language": {
          "type": "string"
        },
        "max_call_duration_ms": {
          "type": "number"
        },
        "normalize_for_speech": {
          "type": "boolean"
        },
        "opt_in_signed_url": {
          "type": "boolean"
        },
        "opt_out_sensitive_data_storage": {
          "type": "boolean"
        },
        "post_call_analysis_data": {
          "items": {
            "anyOf": [
              {
                "additionalProperties": false,
                "properties": {
                  "description": {
                    "type": "string"
                  },
                  "examples": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "name": {
                    "type": "string"
                  },
                  "type": {
                    "const": "string",
                    "type": "string"
                  }
                },
                "required": [
                  "type",
                  "name",
                  "description",
                  "examples"
                ],
                "type": "object"
              },
              {
                "additionalProperties": false,
                "properties": {
                  "choices": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "description": {
                    "type": "string"
                  },
                  "examples": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "name": {
                    "type": "string"
                  },
                  "type": {
                    "const": "enum",
                    "type": "string"
                  }
                },
                "required": [
                  "type",
                  "name",
                  "description",
                  "examples",
                  "choices"
                ],
                "type": "object"
              },
              {
                "additionalProperties": false,
                "properties": {
                  "description": {
                    "type": "string"
                  },
                  "examples": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "name": {
                    "type": "string"
                  },
                  "type": {
                    "const": "boolean",
                    "type": "string"
                  }
                },
                "required": [
                  "type",
                  "name",
                  "description",
                  "examples"
                ],
                "type": "object"
              },
              {
                "additionalProperties": false,
                "properties": {
                  "description": {
                    "type": "string"
                  },
                  "examples": {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "name": {
                    "type": "string"
                  },
                  "type": {
                    "const": "number",
                    "type": "string"
                  }
                },
                "required": [
                  "type",
                  "name",
                  "description",
                  "examples"
                ],
                "type": "object"
              }
            ]
          },
          "type": "array"
        },
        "post_call_analysis_model": {
          "enum": [
            "gpt-4o-mini",
            "gpt-4o"
          ],
          "type": "string"
        },
        "pronunciation_dictionary": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "alphabet": {
                "enum": [
                  "ipa",
                  "cmu"
                ],
                "type": "string"
              },
              "phoneme": {
                "type": "string"
              },
              "word": {
                "type": "string"
              }
            },
            "required": [
              "word",
              "alphabet",
              "phoneme"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "reminder_max_count": {
          "type": "number"
        },
        "reminder_trigger_ms": {
          "type": "number"
        },
        "response_engine": {
          "additionalProperties": false,
          "properties": {
            "llm_id": {
              "type": "string"
            },
            "type": {
              "const": "retell-llm",
              "type": "string"
            },
            "version": {
              "type": "number"
            }
          },
          "required": [
            "type"
          ],
          "type": "object"
        },
        "responsiveness": {
          "type": "number"
        },
        "ring_duration_ms": {
          "type": "number"
        },
        "stt_mode": {
          "enum": [
            "fast",
            "accurate"
          ],
          "type": "string"
        },
        "voice_id": {
          "type": "string"
        },
        "voice_model": {
          "type": "string"
        },
        "voice_speed": {
          "type": "number"
        },
        "voice_temperature": {
          "type": "number"
        },
        "voicemail_detection_timeout_ms": {
          "type": "number"
        },
        "voicemail_message": {
          "type": "string"
        },
        "volume": {
          "type": "number"
        },
        "webhook_url": {
          "type": "string"
        }
      },
      "required": [
        "agentId"
      ],
      "type": "object"
    }
  },
  {
    "description": "Deletes a Retell agent",
    "name": "delete_agent",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "agentId": {
          "description": "The ID of the agent to retrieve",
          "type": "string"
        }
      },
      "required": [
        "agentId"
      ],
      "type": "object"
    }
  },
  {
    "description": "Gets all versions of a Retell agent",
    "name": "get_agent_versions",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "agentId": {
          "description": "The ID of the agent to retrieve",
          "type": "string"
        }
      },
      "required": [
        "agentId"
      ],
      "type": "object"
    }
  },
  {
    "description": "Lists all Retell phone numbers",
    "name": "list_phone_numbers",
    "parameters": {
      "additionalProperties": false,
      "properties": {},
      "required": null,
      "type": "object"
    }
  },
  {
    "description": "Creates a new phone number",
    "name": "create_phone_number",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "areaCode": {
          "description": "Area code of the number to obtain",
          "type": "number"
        },
        "inboundAgentId": {
          "type": "string"
        },
        "inboundWebhookUrl": {
          "type": "string"
        },
        "nickname": {
          "type": "string"
        },
        "outboundAgentId": {
          "type": "string"
        }
      },
      "required": [
        "areaCode"
      ],
      "type": "object"
    }
  },
  {
    "description": "Gets details of a specific phone number",
    "name": "get_phone_number",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "phoneNumber": {
          "description": "The phone number to retrieve",
          "type": "string"
        }
      },
      "required": [
        "phoneNumber"
      ],
      "type": "object"
    }
  },
  {
    "description": "Updates a phone number",
    "name": "update_phone_number",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "inboundAgentId": {
          "type": "string"
        },
        "inboundWebhookUrl": {
          "type": "string"
        },
        "nickname": {
          "type": "string"
        },
        "outboundAgentId": {
          "type": "string"
        },
        "phoneNumber": {
          "description": "The phone number to update",
          "type": "string"
        }
      },
      "required": [
        "phoneNumber"
      ],
      "type": "object"
    }
  },
  {
    "description": "Deletes a phone number",
    "name": "delete_phone_number",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "phoneNumber": {
          "description": "The phone number to retrieve",
          "type": "string"
        }
      },
      "required": [
        "phoneNumber"
      ],
      "type": "object"
    }
  },
  {
    "description": "Lists all available Retell voices",
    "name": "list_voices",
    "parameters": {
      "additionalProperties": false,
      "properties": {},
      "required": null,
      "type": "object"
    }
  },
  {
    "description": "Gets details of a specific voice",
    "name": "get_voice",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "voiceId": {
          "description": "The ID of the voice to retrieve",
          "type": "string"
        }
      },
      "required": [
        "voiceId"
      ],
      "type": "object"
    }
  },
  {
    "description": "Lists all Retell LLMs",
    "name": "list_retell_llms",
    "parameters": {
      "additionalProperties": false,
      "properties": {},
      "required": null,
      "type": "object"
    }
  },
  {
    "description": "Creates a new Retell LLM",
    "name": "create_retell_llm",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "begin_message": {
          "description": "First utterance said by the agent in the call",
          "type": "string"
        },
        "default_dynamic_variables": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Default dynamic variables represented as key-value pairs of strings",
          "type": "object"
        },
        "general_prompt": {
          "description": "Prompt for the agent to follow",
          "type": "string"
        },
        "general_tools": {
          "description": "A list of tools the model may call",
          "items": {
            "anyOf": [
              {
                "additionalProperties": false,
                "properties": {
                  "description": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "type": {
                    "const": "end_call",
                    "type": "string"
                  }
                },
                "required": [
                  "type",
                  "name",
                  "description"
                ],
                "type": "object"
              },
              {
                "additionalProperties": false,
                "properties": {
                  "description": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "transfer_destination": {
                    "anyOf": [
                      {
                        "additionalProperties": false,
                        "properties": {
                          "number": {
                            "type": "string"
                          },
                          "type": {
                            "const": "predefined",
                            "type": "string"
                          },
                          "value": {
                            "enum": [
                              "voicemail",
                              "operator"
                            ],
                            "type": "string"
                          }
                        },
                        "required": [
                          "type",
                          "value",
                          "number"
                        ],
                        "type": "object"
                      },
                      {
                        "additionalProperties": false,
                        "properties": {
                          "description": {
                            "type": "string"
                          },
                          "prompt": {
                            "type": "string"
                          },
                          "type": {
                            "const": "inferred",
                            "type": "string"
                          }
                        },
                        "required": [
                          "type",
                          "description",
                          "prompt"
                        ],
                        "type": "object"
                      }
                    ]
                  },
                  "type": {
                    "const": "transfer_call",
                    "type": "string"
                  }
                },
                "required": [
                  "type",
                  "name",
                  "description",
                  "transfer_destination"
                ],
                "type": "object"
              },
              {
                "additionalProperties": false,
                "properties": {
                  "cal_api_key": {
                    "type": "string"
                  },
                  "calendar_url": {
                    "type": "string"
                  },
                  "description": {
                    "type": "string"
                  },
                  "event_type_id": {
                    "type": "number"
                  },
                  "name": {
                    "type": "string"
                  },
                  "type": {
                    "const": "check_availability_cal",
                    "type": "string"
                  }
                },
                "required": [
                  "type",
                  "name",
                  "description",
                  "calendar_url",
                  "cal_api_key",
                  "event_type_id"
                ],
                "type": "object"
              },
              {
                "additionalProperties": false,
                "properties": {
                  "cal_api_key": {
                    "type": "string"
                  },
                  "calendar_url": {
                    "type": "string"
                  },
                  "description": {
                    "type": "string"
                  },
                  "event_type_id": {
                    "type": "number"
                  },
                  "name": {
                    "type": "string"
                  },
                  "type": {
                    "const": "book_appointment_cal",
                    "type": "string"
                  }
                },
                "required": [
                  "type",
                  "name",
                  "description",
                  "calendar_url",
                  "cal_api_key",
                  "event_type_id"
                ],
                "type": "object"
              },
              {
                "additionalProperties": false,
                "properties": {
                  "description": {
                    "type": "string"
                  },
                  "digit": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "type": {
                    "const": "press_digit",
                    "type": "string"
                  }
                },
                "required": [
                  "type",
                  "name",
                  "description",
                  "digit"
                ],
                "type": "object"
              },
              {
                "additionalProperties": false,
                "properties": {
                  "description": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "speak_after_execution": {
                    "type": "boolean"
                  },
                  "speak_during_execution": {
                    "type": "boolean"
                  },
                  "type": {
                    "const": "custom",
                    "type": "string"
                  },
                  "url": {
                    "type": "string"
                  }
                },
                "required": [
                  "type",
                  "name",
                  "description",
                  "speak_after_execution",
                  "speak_during_execution",
                  "url"
                ],
                "type": "object"
              }
            ]
          },
          "type": "array"
        },
        "knowledge_base_ids": {
          "description": "A list of knowledge base ids to use for this resource",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "model": {
          "description": "Select the underlying text LLM. If not set, would default to gpt-4o",
          "enum": [
            "gpt-4o",
            "gpt-4o-mini",
            "gpt-4.1",
            "gpt-4.1-mini",
            "gpt-4.1-nano",
            "claude-3.7-sonnet",
            "claude-3.5-haiku",
            "gemini-2.0-flash",
            "gemini-2.0-flash-lite"
          ],
          "type": "string"
        },
        "model_high_priority": {
          "description": "If set to true, will use high priority pool with more dedicated resource",
          "type": "boolean"
        },
        "model_temperature": {
          "description": "If set, will control the randomness of the response. Value ranging from [0,1]",
          "type": "number"
        },
        "s2s_model": {
          "description": "Select the underlying speech to speech model. Can only set this or model, not both",
          "enum": [
            "gpt-4o-realtime",
            "gpt-4o-mini-realtime"
          ],
          "type": "string"
        },
        "starting_state": {
          "description": "Name of the starting state. Required if states is not empty",
          "type": "string"
        },
        "states": {
          "description": "States of the LLM",
          "items": {
            "additionalProperties": false,
            "properties": {
              "edges": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "description": {
                      "type": "string"
                    },
                    "destination_state_name": {
                      "type": "string"
                    },
                    "parameters": {
                      "additionalProperties": false,
                      "properties": {
                        "properties": {
                          "additionalProperties": {},
                          "type": "object"
                        },
                        "required": {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        "type": {
                          "const": "object",
                          "type": "string"
                        }
                      },
                      "required": [
                        "type",
                        "properties",
                        "required"
                      ],
                      "type": "object"
                    }
                  },
                  "required": [
                    "destination_state_name",
                    "description"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "name": {
                "type": "string"
              },
              "state_prompt": {
                "type": "string"
              },
              "tools": {
                "items": {
                  "anyOf": [
                    {
                      "additionalProperties": false,
                      "properties": {
                        "description": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        },
                        "type": {
                          "const": "end_call",
                          "type": "string"
                        }
                      },
                      "required": [
                        "type",
                        "name",
                        "description"
                      ],
                      "type": "object"
                    },
                    {
                      "additionalProperties": false,
                      "properties": {
                        "description": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        },
                        "transfer_destination": {
                          "anyOf": [
                            {
                              "additionalProperties": false,
                              "properties": {
                                "number": {
                                  "type": "string"
                                },
                                "type": {
                                  "const": "predefined",
                                  "type": "string"
                                },
                                "value": {
                                  "enum": [
                                    "voicemail",
                                    "operator"
                                  ],
                                  "type": "string"
                                }
                              },
                              "required": [
                                "type",
                                "value",
                                "number"
                              ],
                              "type": "object"
                            },
                            {
                              "additionalProperties": false,
                              "properties": {
                                "description": {
                                  "type": "string"
                                },
                                "prompt": {
                                  "type": "string"
                                },
                                "type": {
                                  "const": "inferred",
                                  "type": "string"
                                }
                              },
                              "required": [
                                "type",
                                "description",
                                "prompt"
                              ],
                              "type": "object"
                            }
                          ]
                        },
                        "type": {
                          "const": "transfer_call",
                          "type": "string"
                        }
                      },
                      "required": [
                        "type",
                        "name",
                        "description",
                        "transfer_destination"
                      ],
                      "type": "object"
                    },
                    {
                      "additionalProperties": false,
                      "properties": {
                        "cal_api_key": {
                          "type": "string"
                        },
                        "calendar_url": {
                          "type": "string"
                        },
                        "description": {
                          "type": "string"
                        },
                        "event_type_id": {
                          "type": "number"
                        },
                        "name": {
                          "type": "string"
                        },
                        "type": {
                          "const": "check_availability_cal",
                          "type": "string"
                        }
                      },
                      "required": [
                        "type",
                        "name",
                        "description",
                        "calendar_url",
                        "cal_api_key",
                        "event_type_id"
                      ],
                      "type": "object"
                    },
                    {
                      "additionalProperties": false,
                      "properties": {
                        "cal_api_key": {
                          "type": "string"
                        },
                        "calendar_url": {
                          "type": "string"
                        },
                        "description": {
                          "type": "string"
                        },
                        "event_type_id": {
                          "type": "number"
                        },
                        "name": {
                          "type": "string"
                        },
                        "type": {
                          "const": "book_appointment_cal",
                          "type": "string"
                        }
                      },
                      "required": [
                        "type",
                        "name",
                        "description",
                        "calendar_url",
                        "cal_api_key",
                        "event_type_id"
                      ],
                      "type": "object"
                    },
                    {
                      "additionalProperties": false,
                      "properties": {
                        "description": {
                          "type": "string"
                        },
                        "digit": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        },
                        "type": {
                          "const": "press_digit",
                          "type": "string"
                        }
                      },
                      "required": [
                        "type",
                        "name",
                        "description",
                        "digit"
                      ],
                      "type": "object"
                    },
                    {
                      "additionalProperties": false,
                      "properties": {
                        "description": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        },
                        "speak_after_execution": {
                          "type": "boolean"
                        },
                        "speak_during_execution": {
                          "type": "boolean"
                        },
                        "type": {
                          "const": "custom",
                          "type": "string"
                        },
                        "url": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "type",
                        "name",
                        "description",
                        "speak_after_execution",
                        "speak_during_execution",
                        "url"
                      ],
                      "type": "object"
                    }
                  ]
                },
                "type": "array"
              }
            },
            "required": [
              "name",
              "state_prompt"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "tool_call_strict_mode": {
          "description": "Only applicable when model is gpt-4o or gpt-4o mini. If set to true, will use structured output",
          "type": "boolean"
        },
        "version": {
          "description": "Version of the Retell LLM",
          "type": "number"
        }
      },
      "required": [
        "general_prompt"
      ],
      "type": "object"
    }
  },
  {
    "description": "Gets a Retell LLM by ID",
    "name": "get_retell_llm",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "llmId": {
          "description": "The ID of the Retell LLM to retrieve",
          "type": "string"
        }
      },
      "required": [
        "llmId"
      ],
      "type": "object"
    }
  },
  {
    "description": "Updates an existing Retell LLM",
    "name": "update_retell_llm",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "begin_message": {
          "type": "string"
        },
        "default_dynamic_variables": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        },
        "general_prompt": {
          "type": "string"
        },
        "general_tools": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "description": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "type": {
                "type": "string"
              }
            },
            "required": [
              "type",
              "name",
              "description"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "knowledge_base_ids": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "llmId": {
          "description": "The ID of the Retell LLM to update",
          "type": "string"
        },
        "model": {
          "enum": [
            "gpt-4o",
            "gpt-4o-mini",
            "gpt-4.1",
            "gpt-4.1-mini",
            "gpt-4.1-nano",
            "claude-3.7-sonnet",
            "claude-3.5-haiku",
            "gemini-2.0-flash",
            "gemini-2.0-flash-lite"
          ],
          "type": "string"
        },
        "model_high_priority": {
          "type": "boolean"
        },
        "model_temperature": {
          "type": "number"
        },
        "s2s_model": {
          "enum": [
            "gpt-4o-realtime",
            "gpt-4o-mini-realtime"
          ],
          "type": "string"
        },
        "tool_call_strict_mode": {
          "type": "boolean"
        },
        "version": {
          "type": "number"
        }
      },
      "required": [
        "llmId"
      ],
      "type": "object"
    }
  },
  {
    "description": "Deletes a Retell LLM",
    "name": "delete_retell_llm",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "llmId": {
          "description": "The ID of the Retell LLM to retrieve",
          "type": "string"
        }
      },
      "required": [
        "llmId"
      ],
      "type": "object"
    }
  }
]