Skip to content

Commit 1108e74

Browse files
committed
Add mcp/elevenlabs
Signed-off-by: David Gageot <[email protected]>
1 parent b916208 commit 1108e74

File tree

3 files changed

+307
-0
lines changed

3 files changed

+307
-0
lines changed

prompts/catalog.yaml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2115,3 +2115,33 @@ registry:
21152115
- name: doit.api_key
21162116
prompts: 0
21172117
resources: {}
2118+
elevenlabs:
2119+
description: The official ElevenLabs MCP server
2120+
ref: github:docker/labs-ai-tools-for-devs?ref=main&path=prompts/mcp/elevenlabs.md
2121+
readme: github:docker/labs-ai-tools-for-devs?ref=main&path=prompts/mcp/readmes/elevenlabs.md
2122+
source: https://github.com/elevenlabs/elevenlabs-mcp/tree/refs/pull/17/merge
2123+
icon: https://avatars.githubusercontent.com/u/94471909?s=200&v=4
2124+
tools:
2125+
- name: add_knowledge_base_to_agent
2126+
- name: check_subscription
2127+
- name: create_agent
2128+
- name: create_voice_from_preview
2129+
- name: get_agent
2130+
- name: get_voice
2131+
- name: isolate_audio
2132+
- name: list_agents
2133+
- name: list_phone_numbers
2134+
- name: make_outbound_call
2135+
- name: play_audio
2136+
- name: search_voice_library
2137+
- name: search_voices
2138+
- name: speech_to_speech
2139+
- name: speech_to_text
2140+
- name: text_to_sound_effects
2141+
- name: text_to_speech
2142+
- name: text_to_voice
2143+
- name: voice_clone
2144+
secrets:
2145+
- name: elevenlabs.api_key
2146+
prompts: 0
2147+
resources: {}

prompts/mcp/elevenlabs.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
---
2+
mcp:
3+
- container:
4+
image: mcp/elevenlabs:latest
5+
workdir: /app
6+
secrets:
7+
elevenlabs.api_key: ELEVENLABS_API_KEY
8+
source:
9+
url: https://github.com/elevenlabs/elevenlabs-mcp/tree/refs/pull/17/merge
10+
---

prompts/mcp/readmes/elevenlabs.md

Lines changed: 267 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,267 @@
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**| ![Docker Scout Health Score](https://api.scout.docker.com/v1/policy/insights/org-image-score/badge/mcp/elevenlabs)
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

Comments
 (0)