|
| 1 | +# Elevenlabs MCP Server |
| 2 | + |
| 3 | +The official ElevenLabs MCP server |
| 4 | + |
| 5 | +[What is an MCP Server?](https://www.anthropic.com/news/model-context-protocol) |
| 6 | + |
| 7 | +## Characteristics |
| 8 | +Attribute|Details| |
| 9 | +|-|-| |
| 10 | +**Image Source**|Official Image |
| 11 | +|**Author**|[elevenlabs](https://github.com/elevenlabs) |
| 12 | +**Repository**|https://github.com/elevenlabs/elevenlabs-mcp |
| 13 | +**Dockerfile**|https://github.com/elevenlabs/elevenlabs-mcp/blob/refs/pull/17/merge/Dockerfile |
| 14 | +**Docker Image built by**|Docker Inc. |
| 15 | +**Docker Scout Health Score**|  |
| 16 | +**Licence**|MIT License |
| 17 | + |
| 18 | +## Available Tools |
| 19 | +Tools provided by this Server|Short Description |
| 20 | +-|- |
| 21 | +`add_knowledge_base_to_agent`|Add a knowledge base to ElevenLabs workspace.| |
| 22 | +`check_subscription`|Check the current subscription status.| |
| 23 | +`create_agent`|Create a conversational AI agent with custom configuration.| |
| 24 | +`create_voice_from_preview`|Add a generated voice to the voice library.| |
| 25 | +`get_agent`|Get details about a specific conversational AI agent| |
| 26 | +`get_voice`|Get details of a specific voice| |
| 27 | +`isolate_audio`|Isolate audio from a file and save the output audio file to a given directory.| |
| 28 | +`list_agents`|List all available conversational AI agents| |
| 29 | +`list_phone_numbers`|List all phone numbers associated with the ElevenLabs account| |
| 30 | +`make_outbound_call`|Make an outbound call via Twilio using an ElevenLabs agent.| |
| 31 | +`play_audio`|Play an audio file.| |
| 32 | +`search_voice_library`|Search for a voice across the entire ElevenLabs voice library.| |
| 33 | +`search_voices`|Search for existing voices, a voice that has already been added to the user's ElevenLabs voice library.| |
| 34 | +`speech_to_speech`|Transform audio from one voice to another using provided audio files.| |
| 35 | +`speech_to_text`|Transcribe speech from an audio file and either save the output text file to a given directory or return the text to the client directly.| |
| 36 | +`text_to_sound_effects`|Convert text description of a sound effect to sound effect with a given duration and save the output audio file to a given directory.| |
| 37 | +`text_to_speech`|Convert text to speech with a given voice and save the output audio file to a given directory.| |
| 38 | +`text_to_voice`|Create voice previews from a text prompt.| |
| 39 | +`voice_clone`|Clone a voice using provided audio files.| |
| 40 | + |
| 41 | +--- |
| 42 | +## Tools Details |
| 43 | + |
| 44 | +#### Tool: **`add_knowledge_base_to_agent`** |
| 45 | +Add a knowledge base to ElevenLabs workspace. Allowed types are epub, pdf, docx, txt, html. |
| 46 | + |
| 47 | + ⚠️ COST WARNING: This tool makes an API call to ElevenLabs which may incur costs. Only use when explicitly requested by the user. |
| 48 | +Parameters|Type|Description |
| 49 | +-|-|- |
| 50 | +`agent_id`|`string`|ID of the agent to add the knowledge base to. |
| 51 | +`knowledge_base_name`|`string`|Name of the knowledge base. |
| 52 | +`input_file_path`|`string` *optional*|Path to the file to add to the knowledge base. |
| 53 | +`text`|`string` *optional*|Text to add to the knowledge base. |
| 54 | +`url`|`string` *optional*|URL of the knowledge base. |
| 55 | + |
| 56 | +--- |
| 57 | +#### Tool: **`check_subscription`** |
| 58 | +Check the current subscription status. Could be used to measure the usage of the API. |
| 59 | +#### Tool: **`create_agent`** |
| 60 | +Create a conversational AI agent with custom configuration. |
| 61 | + |
| 62 | + ⚠️ COST WARNING: This tool makes an API call to ElevenLabs which may incur costs. Only use when explicitly requested by the user. |
| 63 | +Parameters|Type|Description |
| 64 | +-|-|- |
| 65 | +`first_message`|`string`|First message the agent will say i.e. "Hi, how can I help you today?" |
| 66 | +`name`|`string`|Name of the agent |
| 67 | +`system_prompt`|`string`|System prompt for the agent |
| 68 | +`asr_quality`|`string` *optional*|Quality of the ASR. `high` or `low`. |
| 69 | +`language`|`string` *optional*|ISO 639-1 language code for the agent |
| 70 | +`llm`|`string` *optional*|LLM to use for the agent |
| 71 | +`max_duration_seconds`|`integer` *optional*|Maximum duration of a conversation in seconds. Defaults to 600 seconds (10 minutes). |
| 72 | +`max_tokens`|`string` *optional*|Maximum number of tokens to generate. |
| 73 | +`model_id`|`string` *optional*|ID of the ElevenLabsmodel to use for the agent. |
| 74 | +`optimize_streaming_latency`|`integer` *optional*|Optimize streaming latency. Range is 0 to 4. |
| 75 | +`record_voice`|`boolean` *optional*|Whether to record the agent's voice. |
| 76 | +`retention_days`|`integer` *optional*|Number of days to retain the agent's data. |
| 77 | +`similarity_boost`|`number` *optional*|Similarity boost for the agent. Range is 0 to 1. |
| 78 | +`stability`|`number` *optional*|Stability for the agent. Range is 0 to 1. |
| 79 | +`temperature`|`number` *optional*|Temperature for the agent. The lower the temperature, the more deterministic the agent's responses will be. Range is 0 to 1. |
| 80 | +`turn_timeout`|`integer` *optional*|Timeout for the agent to respond in seconds. Defaults to 7 seconds. |
| 81 | +`voice_id`|`string` *optional*|ID of the voice to use for the agent |
| 82 | + |
| 83 | +--- |
| 84 | +#### Tool: **`create_voice_from_preview`** |
| 85 | +Add a generated voice to the voice library. Uses the voice ID from the `text_to_voice` tool. |
| 86 | + |
| 87 | + ⚠️ COST WARNING: This tool makes an API call to ElevenLabs which may incur costs. Only use when explicitly requested by the user. |
| 88 | +Parameters|Type|Description |
| 89 | +-|-|- |
| 90 | +`generated_voice_id`|`string`| |
| 91 | +`voice_description`|`string`| |
| 92 | +`voice_name`|`string`| |
| 93 | + |
| 94 | +--- |
| 95 | +#### Tool: **`get_agent`** |
| 96 | +Get details about a specific conversational AI agent |
| 97 | +Parameters|Type|Description |
| 98 | +-|-|- |
| 99 | +`agent_id`|`string`| |
| 100 | + |
| 101 | +--- |
| 102 | +#### Tool: **`get_voice`** |
| 103 | +Get details of a specific voice |
| 104 | +Parameters|Type|Description |
| 105 | +-|-|- |
| 106 | +`voice_id`|`string`| |
| 107 | + |
| 108 | +--- |
| 109 | +#### Tool: **`isolate_audio`** |
| 110 | +Isolate audio from a file and save the output audio file to a given directory. |
| 111 | + Directory is optional, if not provided, the output file will be saved to $HOME/Desktop. |
| 112 | + |
| 113 | + ⚠️ COST WARNING: This tool makes an API call to ElevenLabs which may incur costs. Only use when explicitly requested by the user. |
| 114 | +Parameters|Type|Description |
| 115 | +-|-|- |
| 116 | +`input_file_path`|`string`| |
| 117 | +`output_directory`|`string` *optional*| |
| 118 | + |
| 119 | +--- |
| 120 | +#### Tool: **`list_agents`** |
| 121 | +List all available conversational AI agents |
| 122 | +#### Tool: **`list_phone_numbers`** |
| 123 | +List all phone numbers associated with the ElevenLabs account |
| 124 | +#### Tool: **`make_outbound_call`** |
| 125 | +Make an outbound call via Twilio using an ElevenLabs agent. |
| 126 | + |
| 127 | + ⚠️ COST WARNING: This tool makes an API call to ElevenLabs which may incur costs. Only use when explicitly requested by the user. |
| 128 | +Parameters|Type|Description |
| 129 | +-|-|- |
| 130 | +`agent_id`|`string`|The ID of the agent that will handle the call |
| 131 | +`agent_phone_number_id`|`string`|The ID of the phone number to use for the call |
| 132 | +`to_number`|`string`|The phone number to call (E.164 format: +1xxxxxxxxxx) |
| 133 | + |
| 134 | +--- |
| 135 | +#### Tool: **`play_audio`** |
| 136 | +Play an audio file. Supports WAV and MP3 formats. |
| 137 | +Parameters|Type|Description |
| 138 | +-|-|- |
| 139 | +`input_file_path`|`string`| |
| 140 | + |
| 141 | +--- |
| 142 | +#### Tool: **`search_voice_library`** |
| 143 | +Search for a voice across the entire ElevenLabs voice library. |
| 144 | +Parameters|Type|Description |
| 145 | +-|-|- |
| 146 | +`page`|`integer` *optional*|Page number to return (0-indexed) |
| 147 | +`page_size`|`integer` *optional*|Number of voices to return per page (1-100) |
| 148 | +`search`|`string` *optional*|Search term to filter voices by |
| 149 | + |
| 150 | +--- |
| 151 | +#### Tool: **`search_voices`** |
| 152 | +Search for existing voices, a voice that has already been added to the user's ElevenLabs voice library. |
| 153 | + Searches in name, description, labels and category. |
| 154 | +Parameters|Type|Description |
| 155 | +-|-|- |
| 156 | +`search`|`string` *optional*|Search term to filter voices by. Searches in name, description, labels and category. |
| 157 | +`sort`|`string` *optional*|Which field to sort by. `created_at_unix` might not be available for older voices. |
| 158 | +`sort_direction`|`string` *optional*|Sort order, either ascending or descending. |
| 159 | + |
| 160 | +--- |
| 161 | +#### Tool: **`speech_to_speech`** |
| 162 | +Transform audio from one voice to another using provided audio files. |
| 163 | + |
| 164 | + ⚠️ COST WARNING: This tool makes an API call to ElevenLabs which may incur costs. Only use when explicitly requested by the user. |
| 165 | +Parameters|Type|Description |
| 166 | +-|-|- |
| 167 | +`input_file_path`|`string`| |
| 168 | +`output_directory`|`string` *optional*| |
| 169 | +`voice_name`|`string` *optional*| |
| 170 | + |
| 171 | +--- |
| 172 | +#### Tool: **`speech_to_text`** |
| 173 | +Transcribe speech from an audio file and either save the output text file to a given directory or return the text to the client directly. |
| 174 | + |
| 175 | + ⚠️ COST WARNING: This tool makes an API call to ElevenLabs which may incur costs. Only use when explicitly requested by the user. |
| 176 | +Parameters|Type|Description |
| 177 | +-|-|- |
| 178 | +`input_file_path`|`string`| |
| 179 | +`diarize`|`boolean` *optional*|Whether to diarize the audio file. If True, which speaker is currently speaking will be annotated in the transcription. |
| 180 | +`language_code`|`string` *optional*|ISO 639-3 language code for transcription (default: "eng" for English) |
| 181 | +`output_directory`|`string` *optional*|Directory where files should be saved. |
| 182 | +`return_transcript_to_client_directly`|`boolean` *optional*|Whether to return the transcript to the client directly. |
| 183 | +`save_transcript_to_file`|`boolean` *optional*|Whether to save the transcript to a file. |
| 184 | + |
| 185 | +--- |
| 186 | +#### Tool: **`text_to_sound_effects`** |
| 187 | +Convert text description of a sound effect to sound effect with a given duration and save the output audio file to a given directory. |
| 188 | + Directory is optional, if not provided, the output file will be saved to $HOME/Desktop. |
| 189 | + Duration must be between 0.5 and 5 seconds. |
| 190 | + |
| 191 | + ⚠️ COST WARNING: This tool makes an API call to ElevenLabs which may incur costs. Only use when explicitly requested by the user. |
| 192 | +Parameters|Type|Description |
| 193 | +-|-|- |
| 194 | +`text`|`string`|Text description of the sound effect |
| 195 | +`duration_seconds`|`number` *optional*|Duration of the sound effect in seconds |
| 196 | +`output_directory`|`string` *optional*|Directory where files should be saved. |
| 197 | + |
| 198 | +--- |
| 199 | +#### Tool: **`text_to_speech`** |
| 200 | +Convert text to speech with a given voice and save the output audio file to a given directory. |
| 201 | + Directory is optional, if not provided, the output file will be saved to $HOME/Desktop. |
| 202 | + Only one of voice_id or voice_name can be provided. If none are provided, the default voice will be used. |
| 203 | + |
| 204 | + ⚠️ COST WARNING: This tool makes an API call to ElevenLabs which may incur costs. Only use when explicitly requested by the user. |
| 205 | +Parameters|Type|Description |
| 206 | +-|-|- |
| 207 | +`text`|`string`| |
| 208 | +`output_directory`|`string` *optional*| |
| 209 | +`similarity_boost`|`number` *optional*| |
| 210 | +`speed`|`number` *optional*| |
| 211 | +`stability`|`number` *optional*| |
| 212 | +`style`|`number` *optional*| |
| 213 | +`use_speaker_boost`|`boolean` *optional*| |
| 214 | +`voice_id`|`string` *optional*| |
| 215 | +`voice_name`|`string` *optional*| |
| 216 | + |
| 217 | +--- |
| 218 | +#### Tool: **`text_to_voice`** |
| 219 | +Create voice previews from a text prompt. Creates three previews with slight variations. Saves the previews to a given directory. If no text is provided, the tool will auto-generate text. |
| 220 | + |
| 221 | + Voice preview files are saved as: voice_design_(generated_voice_id)_(timestamp).mp3 |
| 222 | + |
| 223 | + Example file name: voice_design_Ya2J5uIa5Pq14DNPsbC1_20250403_164949.mp3 |
| 224 | + |
| 225 | + ⚠️ COST WARNING: This tool makes an API call to ElevenLabs which may incur costs. Only use when explicitly requested by the user. |
| 226 | +Parameters|Type|Description |
| 227 | +-|-|- |
| 228 | +`voice_description`|`string`| |
| 229 | +`output_directory`|`string` *optional*| |
| 230 | +`text`|`string` *optional*| |
| 231 | + |
| 232 | +--- |
| 233 | +#### Tool: **`voice_clone`** |
| 234 | +Clone a voice using provided audio files. |
| 235 | + |
| 236 | + ⚠️ COST WARNING: This tool makes an API call to ElevenLabs which may incur costs. Only use when explicitly requested by the user. |
| 237 | +Parameters|Type|Description |
| 238 | +-|-|- |
| 239 | +`files`|`array`| |
| 240 | +`name`|`string`| |
| 241 | +`description`|`string` *optional*| |
| 242 | + |
| 243 | +--- |
| 244 | +## Use this MCP Server |
| 245 | + |
| 246 | +```json |
| 247 | +{ |
| 248 | + "mcpServers": { |
| 249 | + "elevenlabs": { |
| 250 | + "command": "docker", |
| 251 | + "args": [ |
| 252 | + "run", |
| 253 | + "-i", |
| 254 | + "--rm", |
| 255 | + "-e", |
| 256 | + "ELEVENLABS_API_KEY", |
| 257 | + "mcp/elevenlabs" |
| 258 | + ], |
| 259 | + "env": { |
| 260 | + "ELEVENLABS_API_KEY": "<insert-your-api-key-here>" |
| 261 | + } |
| 262 | + } |
| 263 | + } |
| 264 | +} |
| 265 | +``` |
| 266 | + |
| 267 | +[Why is it safer to run MCP Servers with Docker?](https://www.docker.com/blog/the-model-context-protocol-simplifying-building-ai-apps-with-anthropic-claude-desktop-and-docker/) |
0 commit comments