MCPGeneration-for-ElevenLabs
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DRY_RUN | No | Por padrão é true. Para ativar gerações pagas, defina DRY_RUN=false e ALLOW_PAID_GENERATIONS=true. | true |
| ALLOWED_ROOTS | No | Raízes permitidas para caminhos de entrada, juntamente com GENERATED_DIR. | |
| GENERATED_DIR | No | Diretório de saídas geradas. Caminhos de entrada são limitados a GENERATED_DIR e ALLOWED_ROOTS. | |
| ELEVENLABS_API_KEY | No | Chave de API ElevenLabs para operações remotas. O servidor inicia sem uma chave API para permitir descobrir as ferramentas e usar operações locais; chamadas remotas falham com missing_api_key. | |
| ALLOW_PAID_GENERATIONS | No | Por padrão é false. Para ativar gerações pagas, defina DRY_RUN=false e ALLOW_PAID_GENERATIONS=true. | false |
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": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_account_infoB | Read the authenticated ElevenLabs account profile. Makes a read-only API call. |
| get_subscriptionB | Read the account subscription and documented usage fields. This does not estimate generation cost. |
| list_modelsB | List models returned by ElevenLabs GET /v1/models. |
| list_voicesC | Search the authenticated voice catalog through ElevenLabs GET /v2/voices. |
| get_voiceC | Read a single voice by ID. |
| get_voice_settingsC | Read the saved settings for an ElevenLabs voice. |
| list_audio_effectsB | Read the documented audio effects catalog. |
| get_capabilitiesB | Combine local implementation flags with read-only account and model information. Plan access remains unknown unless the API reports it. |
| get_budget_statusB | Read local generation policy, observed local usage and unsettled reservations. |
| get_usage_reportB | Read local operation counts and explicit usage values returned by the API. Character counts are not converted into credits. |
| set_local_budgetC | Change local request, monthly and concurrency policy limits. This does not enable paid calls. |
| estimate_costC | Return an official estimate only when one is available. This local implementation does not invent per-character, per-second or per-generation prices. |
| generate_speechC | Generate and save speech audio. This may consume credits and is blocked by dry_run or either missing paid authorization gate. |
| generate_speech_streamC | Call the documented streaming TTS endpoint and save its resulting audio. Streaming does not bypass the paid-operation gates. |
| generate_speech_with_timestampsC | Generate speech with the documented alignment response. Audio and timing metadata are saved separately. |
| generate_speech_stream_with_timestampsC | Call streaming TTS with the documented alignment response. Audio and timing metadata are saved separately behind paid-operation gates. |
| generate_dialogueC | Generate a multi-voice dialogue in input order. Enforces the documented unique voice and length limits. Paid authorization is required. |
| generate_dialogue_streamC | Call the documented streaming endpoint for a multi-voice dialogue and save the completed response locally. |
| generate_dialogue_with_timestampsC | Generate multi-voice dialogue with segment timing data. Paid authorization is required. |
| generate_dialogue_stream_with_timestampsC | Call the streaming dialogue endpoint with the documented alignment response and save audio plus timing metadata. |
| get_sound_effect_presetsA | Return editable local starter prompts for common game-audio categories. This is local guidance and does not contact ElevenLabs. |
| generate_sound_effectB | Generate one sound effect from a text prompt. Official maximum duration is 30 seconds. Cost is not estimated by this MCP; explicit authorization is required. |
| generate_ambient_audioC | Generate an ambient sound loop using the documented loop flag. The API does not guarantee a seamless loop beyond its own generation behavior. |
| create_composition_planC | Ask the documented music planning endpoint to produce a structured plan. Official docs state this endpoint consumes no credits, but rate limits apply. |
| generate_musicB | Compose music from either a prompt or a chunk-based plan. The request is checked against current documented constraints and remains behind both paid-operation gates. |
| generate_music_streamC | Call the documented streaming music endpoint, then save the completed result locally behind both paid-operation gates. |
| generate_music_detailedC | Generate music using the detailed endpoint, which returns audio and structured JSON metadata in a multipart response. |
| generate_music_detailed_streamD | Call the detailed streaming music endpoint and save its multipart audio and metadata result locally. |
| generate_music_from_videoC | Generate music from one or more local videos using the documented video-to-music endpoint. Paid authorization is required. |
| separate_music_stemsC | Separate an uploaded music file, retain the returned ZIP, and extract each verified audio stem into GENERATED_DIR. |
| list_music_finetunesC | List music finetunes in the workspace. This optional module is disabled by default. |
| create_music_finetuneB | Create an optional music finetune from audio samples. Requires local enablement, rights confirmation, and both paid-operation gates. |
| get_music_finetuneB | Get metadata for one music finetune. The optional finetune module is disabled by default. |
| update_music_finetuneC | Update documented metadata fields for a music finetune. The optional module is disabled by default. |
| delete_music_finetuneA | Permanently delete one music finetune. Requires explicit confirmation and local module enablement. |
| upload_musicC | Upload music for the documented later inpainting workflow. The official endpoint charges the same as song generation, so both paid gates apply. |
| design_voiceB | Generate voice previews from a description. The API returns multiple sample audios; they are saved to local files and omitted from the tool response. This may consume credits. |
| create_voice_from_previewB | Save one previously generated preview as a reusable voice. Requires confirm_save=true and both paid-operation gates. |
| remix_voiceB | Create new voice previews from one of your saved voices. Preview generation may consume credits and requires both paid-operation gates. |
| get_voice_previewB | Download an existing generated voice preview to a local MP3 file without generating a new sample. |
| clone_voiceA | Create an instant voice clone from local audio samples. Requires explicit rights/consent confirmation, up to three sample files, and both paid authorization gates. |
| update_voice_settingsC | Update stored settings for one voice using the documented voice settings endpoint. |
| delete_voiceA | Permanently delete a voice from the account. Requires explicit confirm_delete=true. |
| change_voiceC | Transform a local recording into a target voice through the documented speech-to-speech endpoint. |
| transcribe_audioC | Transcribe a local audio or video file. Supports the API's model, diarization and timestamp controls. Cost is not estimated locally. |
| get_transcriptionC | Read an existing transcription job/result by its remote transcription ID. |
| align_audio_to_textC | Align supplied text to a local audio file using the documented forced-alignment endpoint. |
| isolate_voiceA | Isolate speech from a local audio recording. This is not a music stem separator. |
| transcript_to_subtitlesB | Convert a local JSON transcript with word timestamps into SRT or WebVTT. Writes one caption per timed word to preserve source alignment. |
| create_dubbing_projectB | Create a dubbing project from a local audio/video file. This operation may charge before an output is produced and requires both paid authorization gates. |
| add_dubbing_languageB | Add one target-language job to a dubbing project. A language target may incur separate charges. |
| list_dubbing_projectsC | List dubbing projects using the documented page-size, cursor and status filters. |
| get_dubbing_statusB | Read the current state and metadata of a dubbing project, reconciling a terminal job state with the local budget reservation. |
| download_dubbed_mediaA | Download one completed dubbing language output to a local file. The output is saved only after the API responds successfully and its audio signature is checked. |
| delete_dubbing_projectA | Permanently delete a dubbing project. Requires explicit confirm_delete=true. |
| list_generation_historyC | List ElevenLabs speech generation history with documented filters. |
| get_generation_history_itemB | Read metadata for one ElevenLabs history item. |
| download_history_audioC | Download the audio for one history item to local storage. |
| get_api_request_historyB | Query the workspace API request log. This is a read-only analytics query despite using POST. |
| get_remote_usage_reportB | Query official workspace product usage between Unix millisecond timestamps. The endpoint may require workspace permissions. |
| delete_history_itemA | Permanently delete one ElevenLabs history item. Requires explicit confirm_delete=true. |
| create_async_speechC | Create speech through the separate ElevenCreative async flow API. The request is validated against the checked-in current OpenAPI contract. |
| get_async_speechB | Read the status and result of one ElevenCreative async speech generation and reconcile terminal state locally. |
| list_flow_templatesB | List published ElevenCreative templates. |
| get_flow_templateC | Read a template definition and its input schema. |
| run_flow_templateB | Run a published template. Because its internal steps can generate media, cost is treated as unknown and both paid-operation gates are required. |
| get_flow_runC | Read a template run's status and reconcile its terminal state locally. |
| upload_assetB | Upload a local media file to the ElevenLabs Assets API. Requires rights confirmation and unknown-cost authorization because asset pricing is not estimated here. |
| list_assetsC | List uploaded assets in the authenticated ElevenLabs workspace. |
| get_assetC | Read metadata for one remote asset. |
| delete_assetA | Permanently delete an asset from the ElevenLabs workspace. Requires explicit confirm_delete=true. |
| generate_imageB | Queue an ElevenCreative image generation. Pass model-specific parameters; the checked-in OpenAPI discriminator schema validates the model and its fields before any remote call. Disabled by default. |
| generate_videoB | Queue an ElevenCreative video generation. Pass model-specific text, image, video or audio references; the official OpenAPI discriminator validates fields. Disabled by default. |
| list_image_generationsC | List image generations from the ElevenCreative API. |
| get_image_generationC | Read the status of one image generation. |
| download_imageA | Download completed image output from the official signed generation URL, validate the URL host and file signature, then save it locally. |
| list_video_generationsC | List video generations from the ElevenCreative API. |
| get_video_generationC | Read the status of one video generation. |
| download_videoA | Download completed video output from the official signed generation URL, validate the URL host and file signature, then save it locally. |
| inspect_mediaB | Inspect one local media file's size, hash, container, codec and duration when locally available. |
| convert_audioC | Convert a local audio file with FFmpeg. The requested output format is encoded and verified; changing an extension alone is not used. |
| normalize_audioC | Normalize local audio loudness using the FFmpeg loudnorm filter. |
| trim_audioC | Trim local audio using a start offset and duration in seconds. |
| create_audio_loopB | Repeat an audio file to a requested duration. The output is not claimed to have a seamless boundary. |
| split_audioC | Split local audio into segments of the requested maximum duration using FFmpeg. |
| merge_audioC | Concatenate local audio files through FFmpeg's audio concat filter. |
| export_to_godotB | Export one local audio asset to an explicitly supplied and authorized Godot project root. Requires that project root to be within ALLOWED_ROOTS. |
| list_generated_assetsC | List local files recorded in the asset registry. |
| extract_music_stemsB | Safely extract supported audio tracks from a generated ZIP. Rejects traversal, symlinks, non-audio entries, and oversized expansions. |
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 89 tools
The server has many intentionally parallel tools, especially non-streaming vs streaming vs timestamped variants for speech, dialogue, and music, plus several usage/budget/history read tools. Descriptions usually clarify boundaries, but the sheer number of near-duplicate generation paths makes misselection likely for an agent.
Tool names consistently use snake_case verb_noun patterns such as generate_speech, list_voices, get_asset, delete_asset, and update_voice_settings. Minor suffixes like _stream and _with_timestamps are predictable and coherent.
Eighty-nine tools is an extreme mismatch for a single MCP server, even one covering a broad media API. It far exceeds the practical 3-15 range and creates a large selection burden, duplicate pathways, and cognitive overhead.
The surface covers a very wide domain: TTS, dialogue, sound effects, music, dubbing, voices, history, assets, image/video generation, flows, and local FFmpeg operations. There are only minor lifecycle gaps, such as limited update operations for some resources, but no major dead ends.