elevenlabs-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ELEVENLABS_API_KEY | Yes | Your ElevenLabs API key. | |
| ELEVENLABS_MCP_OUTPUT_DIR | No | Where generated audio/media files are written. (ELEVENLABS_MCP_BASE_PATH is accepted as an alias.) | ~/Desktop |
| ELEVENLABS_DEFAULT_MODEL_ID | No | Default TTS model. | eleven_multilingual_v2 |
| ELEVENLABS_DEFAULT_VOICE_ID | No | Voice used when a tool call omits voice_id. | JBFqnCBsd6RMkjVDRZzb |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| text_to_speechA | Convert text to speech and save the audio to a file. Args: text: The text to synthesize. voice_id: ElevenLabs voice id (defaults to the configured default voice). model_id: TTS model id (default "eleven_multilingual_v2"). Other options include "eleven_flash_v2_5" (fast/cheap) and "eleven_turbo_v2_5". output_format: e.g. "mp3_44100_128", "mp3_44100_192", "pcm_44100", "wav_44100". language_code: ISO code to enforce a language (supported by some models). stability / similarity_boost / style / speed: voice setting overrides (0..1; speed ~0.7..1.2). use_speaker_boost: bool. seed: deterministic generation seed. output_filename: optional file name (extension inferred if omitted). Returns the absolute path of the saved audio file. |
| text_to_dialogueA | Generate multi-speaker dialogue audio from a list of turns. Args:
dialogue: list of turns, each Returns the absolute path of the saved audio file. |
| speech_to_speechA | Voice changer: transform speech in an audio file to a target voice. Args: audio_file_path: path to the source audio file. voice_id: target voice id (defaults to the configured default voice). model_id: STS model id (default "eleven_multilingual_sts_v2"). output_format: audio output format. remove_background_noise: strip background noise before conversion. output_filename: optional output file name. Returns the absolute path of the converted audio file. |
| sound_effectsA | Generate a sound effect from a text prompt. Args: text: description of the sound effect, e.g. "distant thunder rolling". duration_seconds: desired length (0.5..30). If omitted the model chooses. prompt_influence: 0..1 — how strictly to follow the prompt. loop: make the effect loopable. output_format: audio output format. output_filename: optional output file name. Returns the absolute path of the saved audio file. |
| audio_isolationA | Isolate speech from an audio file by removing background noise/music. Args: audio_file_path: path to the source audio file. output_filename: optional output file name. Returns the absolute path of the cleaned audio file. |
| compose_musicA | Compose music from a text prompt (ElevenLabs Music). Args: prompt: description of the music, e.g. "upbeat lofi hip hop, mellow piano". music_length_ms: desired length in milliseconds (e.g. 30000 for 30s). model_id: music model id (API default when omitted). output_format: audio output format. output_filename: optional output file name. Returns the absolute path of the saved audio file. |
| speech_to_textA | Transcribe an audio file to text (ElevenLabs Scribe). Args: audio_file_path: path to the audio file to transcribe. model_id: STT model id (default "scribe_v1"). language_code: optional ISO language hint. diarize: annotate which speaker said what. tag_audio_events: tag non-speech events like (laughter). num_speakers: hint for the expected number of speakers. Returns the transcription result as JSON (text, language, words with timings). |
| forced_alignmentA | Align a known transcript to audio, returning per-word/character timings. Args: audio_file_path: path to the audio file. text: the exact transcript of the audio. Returns alignment data as JSON. |
| design_voiceA | Design candidate voices from a text description (Voice Design). Generates preview voices and saves each preview's audio to a file. To keep a
preview permanently, call Args: voice_description: description of the desired voice, e.g. "an old British narrator with a warm, gravelly tone". text: sample text to speak in the previews (>=100 chars recommended). model_id: voice-design model id (API default when omitted). auto_generate_text: let ElevenLabs generate the preview text. Returns JSON listing each preview's generated_voice_id and saved audio path. |
| create_voice_from_previewA | Save a previously designed voice preview as a permanent voice. Args:
voice_name: name for the new voice.
voice_description: description of the voice.
generated_voice_id: id returned by Returns the new voice's id and name as JSON. |
| clone_voiceA | Instant voice clone: create a new voice from one or more audio samples. Args: name: name for the cloned voice. audio_file_paths: paths to clean sample recordings of the target voice. description: optional description. labels: optional dict of metadata labels. remove_background_noise: clean the samples before cloning. Returns the new voice's id as JSON. |
| list_voicesA | List the voices available in your account. Args: search: optional case-insensitive substring to filter by name/labels. Returns a JSON summary of each voice (id, name, category, labels). |
| get_voiceB | Get full details for a single voice, including its settings. Args: voice_id: the voice id. Returns the voice object as JSON. |
| search_voice_libraryA | Search the shared ElevenLabs voice library (community voices). Args: search: free-text search. category: e.g. "professional", "high_quality", "famous". gender: e.g. "male", "female". language: language filter. page_size: max results to return. Returns a JSON summary of matching shared voices. |
| get_default_voice_settingsA | Return the default voice settings used by ElevenLabs. |
| edit_voice_settingsA | Update the settings for a voice (only provided fields are changed). Args: voice_id: the voice id. stability / similarity_boost / style / speed: floats (0..1; speed ~0.7..1.2). use_speaker_boost: bool. Returns the updated settings as JSON. |
| delete_voiceC | Delete a voice from your account. Args: voice_id: the voice id to delete. |
| list_modelsA | List the available ElevenLabs models and their capabilities. |
| get_user_infoA | Get information about the authenticated ElevenLabs user. |
| check_subscriptionA | Check subscription tier and character usage/remaining for the account. |
| get_usage_statsA | Get character/credit usage statistics over a time window. Args: start_unix: window start (unix seconds). Defaults to 30 days ago. end_unix: window end (unix seconds). Defaults to now. metric: one of "credits", "tts_characters", "minutes_used", "request_count". breakdown_type: e.g. "none", "voice", "model", "api_keys". aggregation_interval: "hour", "day", "week", "month", or "cumulative". Returns usage data as JSON. |
| list_historyB | List recent generation history items. Args: page_size: number of items to return. voice_id: filter to a specific voice. search: free-text search over history. Returns a JSON summary of history items. |
| get_history_itemC | Get metadata for a single history item. Args: history_item_id: the history item id. |
| download_history_audioB | Download the audio for a history item and save it to a file. Args: history_item_id: the history item id. output_filename: optional output file name. Returns the absolute path of the saved audio file. |
| delete_history_itemB | Delete a history item. Args: history_item_id: the history item id to delete. |
| dub_audioA | Start a dubbing job to translate audio/video into another language. Provide either a local file or a source URL (e.g. YouTube). Dubbing runs
asynchronously — poll with Args: target_lang: target language code (e.g. "es", "fr", "de"). audio_file_path: path to a local audio/video file. source_url: URL of the source media (alternative to a file). source_lang: source language code (auto-detected if omitted). name: optional project name. num_speakers: expected number of speakers (0 = auto). watermark: apply ElevenLabs watermark. Returns the dubbing_id as JSON. |
| get_dubbing_statusC | Get the status and metadata of a dubbing job. Args: dubbing_id: the dubbing job id. |
| download_dubbed_audioA | Download the dubbed audio for a completed dubbing job. Args: dubbing_id: the dubbing job id. language_code: the target language code to download. output_filename: optional output file name. Returns the absolute path of the saved audio file. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 28 tools
Each tool has a clearly distinct purpose: text generation, voice cloning, dubbing, transcription, sound effects, music composition, etc. No significant overlap; even similar-sounding tools like text_to_speech, text_to_dialogue, and speech_to_speech are well-differentiated by their descriptions.
All tools use consistent snake_case naming with a verb_noun pattern (e.g., list_voices, delete_history_item, download_dubbed_audio). Minor deviations like forced_alignment are still in the same style, and there is no mixing of conventions like camelCase.
28 tools is on the higher side but appropriate given the breadth of ElevenLabs features (TTS, voice management, dubbing, sound effects, music, etc.). Each major capability has its own set of tools, so the count feels comprehensive rather than bloated.
The tool surface covers most key workflows: voice CRUD, generation (TTS, STS, sound effects, music), dubbing (start, status, download), transcription, alignment, and usage stats. Minor gaps exist (e.g., no list_dubbing_jobs tool, no rename_voice), but agents can work around them.