ElevenLabs MCP + CLI Lets You Make Voiceovers and Music From Chat
When the user wants you to operate their ElevenLabs account directly, use this skill to generate audio, images and video, or to build and troubleshoot agents such as a voice support agent. ElevenLabs offers two official ways in:
- MCP: a server hosted by ElevenLabs at
https://api.elevenlabs.io/v1/mcp. It signs in with OAuth, so no API key is needed, and nothing has to be installed locally. - CLI: the open-source
@elevenlabs/cli(MIT). Every API can be called as a subcommand. It can also save agent configs as local JSON, which you push and pull like code. ElevenLabs recommends installing the companion ElevenLabs Skills (MIT) as well.
Triggers
Users say things like "Make a voiceover with ElevenLabs", "Read this text out loud", "Make a background music track", "Generate a sound effect for me", "Build a voice support agent", "Which calls dropped this week?", or "Change the agent's opening line". They may also want to add ElevenLabs to a project.
Choosing a path
| Situation | Use |
|---|---|
| The user chats in Claude, ChatGPT or Cursor and wants audio made or agents managed directly | MCP |
| The user only wants to look at data and not change anything (checking call logs or comparing configs) | MCP, and grant read-only access when signing in |
| Working in a terminal or code project, to generate in bulk, write scripts, or run in CI | CLI |
| Agent configs need to live in Git, go through branches, or be worked on by a team | CLI's Agents as Code |
| Writing code in your own app that calls ElevenLabs | CLI plus the companion Skills (they include Python and JS SDK examples) |
You can install both. If unsure, start with MCP. It needs no key and is the easiest option.
Hard rules
- Generation costs money. Voiceovers, music and video all use up credits on the user's account. For large jobs such as long text, a full song or a video, say what you will generate and roughly how long it is, and wait for the user to confirm before you start.
- Confirm before deleting or overwriting. Before you delete an agent, tool or test, list what will be deleted and wait for the user to agree.
agents pushforce-overwrites the live main branch and any registered branches, so run--dry-runfirst and show the user the changes. - Explain the impact of changing a live agent. Changes to the prompt, voice or tools take effect right away on an agent that is taking calls. Show the user a before and after comparison, and push only after they confirm.
- Clone only voices the person has agreed to. Do not clone a celebrity's or anyone else's voice, and do not make audio that impersonates a real person.
- Never echo keys. Put the API key only in an environment variable or the project's
.env, and make sure.envis in.gitignore. Do not write the key into replies, logs or commits. - Base conclusions on real data. When answering "which calls had problems", rely on the call transcripts, latency and outcomes, not on impressions.
Install: MCP
First check whether it is already installed (Claude Code):
claude mcp list 2>/dev/null | grep -i elevenlabs || echo "not installed"
If it is not installed, tell the user which server address you will add, and proceed once they agree:
| Client | How to install |
|---|---|
| Claude Code | claude mcp add --transport http elevenlabs https://api.elevenlabs.io/v1/mcp, then type /mcp in the session to sign in |
| Claude (web or desktop) | In Customize → Connectors, add a custom connector. Name it ElevenLabs and enter https://api.elevenlabs.io/v1/mcp as the URL |
| Hermes | hermes mcp add elevenlabs --url https://api.us.elevenlabs.io/v1/mcp --auth oauth |
| ChatGPT, Cursor | Find ElevenLabs in each app's plugin directory and install it with one click |
When signing in, the browser opens an ElevenLabs authorization page where the user picks a workspace and permissions. The user can revoke access at any time.
There is also an open-source local version, elevenlabs-mcp. It runs on your own machine and needs an API key, so it suits developers. Most users should use the hosted version above.
Install: CLI and companion Skills
First check:
elevenlabs --version 2>/dev/null || echo "not installed"
If it is not installed, explain that you will install a global npm package, and proceed once the user agrees:
npm i -g @elevenlabs/cli
elevenlabs auth login
npx skills add elevenlabs/skills
auth login opens a browser sign-in. You can skip it and use an API key instead, by setting the ELEVENLABS_API_KEY environment variable or by putting it in a .env file in the current directory. The CLI reads it automatically. On macOS and Linux you can also install with brew install elevenlabs/tap/elevenlabs. On Windows, use Scoop.
The companion Skills come to 12 in total. They cover text to speech, speech to text, Agents, sound effects, music, voice changing, vocal separation, dubbing, real-time voice, new project setup (onboarding) and API key troubleshooting (setup-api-key). For a specific task, read the matching one.
Common CLI commands
| Task | Command |
|---|---|
| See available commands | elevenlabs --help, and elevenlabs <resource> --help for one group |
| Read a sentence aloud | elevenlabs say "build finished" |
| Save as an audio file | elevenlabs say "save it" --output out.mp3 |
| Change the default voice or model | elevenlabs say config voice <voice_id>, elevenlabs say config model <model_id> |
| Generate an image and wait for the result | elevenlabs flows image create-and-wait --json '{"model_id": "...", "prompt": "..."}' |
| Create a new agent project | elevenlabs agents init |
| Create an agent from a template | elevenlabs agents add <name> --template <template> |
| List the agents configured locally | elevenlabs agents status |
| Preview the changes to push | elevenlabs agents push --dry-run |
| Push and pull configs | elevenlabs agents push, elevenlabs agents pull |
| Run an agent's tests | elevenlabs agents test <agent_id> |
| Get the web embed code | elevenlabs agents widget embed <agent_id> |
| Switch the data residency region | elevenlabs residency eu-residency |
A few things to note:
agents listlists the agents in the live workspace. For local ones, useagents status.agents delete --agent-id <id>deletes only the live agent. You must delete the local config file yourself.- Any API command accepts
--dry-run, which prints the request without sending it. - The CLI sends anonymous usage tags by default. If the user does not want that, set
ELEVENLABS_TELEMETRY=off. - Playing audio needs a local player (ffplay, mpv, or afplay, which macOS includes). If none is installed, tell the user to install ffmpeg or mpv.
What MCP can do
According to the official page, MCP can:
- Create a voice or chat agent from a one-sentence description.
- Change the system prompt, voice and opening line.
- List, compare, duplicate or delete agents.
- Estimate LLM usage and cost.
- Get the config and share link for the web widget.
- Find failed calls from transcripts, latency and outcomes.
- Call more than 50 models through the same connector to generate voiceovers, music, sound effects, images and video.
Output format
- For generation tasks: the file path or link, which voice and model were used, and roughly how many credits were used (when available).
- For agent changes: which fields changed, a before and after comparison, and whether the change has been pushed live.
- For troubleshooting: a list of problem calls (time, agent, cause) and the suggested fix.
In one line
Use the hosted MCP in chat, and the CLI with the official Skills in the terminal and projects. Get the user's approval before anything that spends money, deletes, or changes a live agent.

Comments (0)
No comments yet. Start the conversation.