Skip to main content
Glama
ElevenLabs MCP Server

ElevenLabs MCP Server

ElevenLabs MCP Server

A Model Context Protocol (MCP) server that integrates with ElevenLabs text-to-speech API, featuring both a server component and a sample web-based MCP Client (SvelteKit) for managing voice generation tasks.

Features

  • Generate audio from text using ElevenLabs API

  • Support for multiple voices and script parts

  • SQLite database for persistent history storage

  • Sample SvelteKit MCP Client for:

    • Simple text-to-speech conversion

    • Multi-part script management

    • Voice history tracking and playback

    • Audio file downloads

Related MCP server: ElevenLabs MCP Server

Installation

Installing via Smithery

To install ElevenLabs MCP Server for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install elevenlabs-mcp-server --client claude

When using uvx, no specific installation is needed.

Add the following configuration to your MCP settings file (e.g., cline_mcp_settings.json for Claude Desktop):

{
  "mcpServers": {
    "elevenlabs": {
      "command": "uvx",
      "args": ["elevenlabs-mcp-server"],
      "env": {
        "ELEVENLABS_API_KEY": "your-api-key",
        "ELEVENLABS_VOICE_ID": "your-voice-id",
        "ELEVENLABS_MODEL_ID": "eleven_flash_v2",
        "ELEVENLABS_STABILITY": "0.5",
        "ELEVENLABS_SIMILARITY_BOOST": "0.75",
        "ELEVENLABS_STYLE": "0.1",
        "ELEVENLABS_OUTPUT_DIR": "output"
      }
    }
  }
}

Development Installation

  1. Clone this repository

  2. Install dependencies:

    uv venv
  3. Copy .env.example to .env and fill in your ElevenLabs credentials

{
  "mcpServers": {
    "elevenlabs": {
      "command": "uv",
      "args": [
        "--directory",
        "path/to/elevenlabs-mcp-server",
        "run",
        "elevenlabs-mcp-server"
      ],
      "env": {
        "ELEVENLABS_API_KEY": "your-api-key",
        "ELEVENLABS_VOICE_ID": "your-voice-id",
        "ELEVENLABS_MODEL_ID": "eleven_flash_v2",
        "ELEVENLABS_STABILITY": "0.5",
        "ELEVENLABS_SIMILARITY_BOOST": "0.75",
        "ELEVENLABS_STYLE": "0.1",
        "ELEVENLABS_OUTPUT_DIR": "output"
      }
    }
  }
}

Using the Sample SvelteKit MCP Client

  1. Navigate to the web UI directory:

    cd clients/web-ui
  2. Install dependencies:

    pnpm install
  3. Copy .env.example to .env and configure as needed

  4. Run the web UI:

    pnpm dev
  5. Open http://localhost:5174 in your browser

Available Tools

  • generate_audio_simple: Generate audio from plain text using default voice settings

  • generate_audio_script: Generate audio from a structured script with multiple voices and actors

  • delete_job: Delete a job by its ID

  • get_audio_file: Get the audio file by its ID

  • list_voices: List all available voices

  • get_voiceover_history: Get voiceover job history. Optionally specify a job ID for a specific job.

Available Resources

  • voiceover://history/{job_id}: Get the audio file by its ID

  • voiceover://voices: List all available voices

License

This project is licensed under the MIT License - see the LICENSE file for details.

Available Tools

6 tools
delete_jobB

Delete a voiceover job and its associated files

Inputs: job_id (required).

generate_audio_scriptB

Generate audio from a structured script with multiple voices and actors. Accepts either: 1. Plain text string 2. JSON string with format: { "script": [ { "text": "Text to speak", "voice_id": "optional-voice-id", "actor": "optional-actor-name" }, ... ] }

Inputs: script (required).

generate_audio_simpleC

Generate audio from plain text using default voice settings

Inputs: text (required), voice_id.

get_audio_fileC

Get the audio file content for a specific job

Inputs: job_id (required).

get_voiceover_historyB

Get voiceover job history. Optionally specify a job ID for a specific job.

Inputs: job_id.

list_voicesB

Get a list of all available ElevenLabs voices with metadata

Inputs: no named parameters.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.6/5.0

    Scored across 6 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose with no ambiguity. delete_job removes jobs, generate_audio_script creates multi-voice audio from structured input, generate_audio_simple creates basic audio, get_audio_file retrieves audio content, get_voiceover_history accesses job history, and list_voices lists available voices. The two generation tools are clearly differentiated by complexity level.

    Naming Consistency5/5

    All tools follow a consistent verb_noun pattern throughout: delete_job, generate_audio_script, generate_audio_simple, get_audio_file, get_voiceover_history, list_voices. The naming convention is perfectly uniform with clear action-object relationships and no mixing of styles.

    Tool Count5/5

    Six tools is an ideal number for this audio generation domain. It provides complete coverage of core workflows (generation, retrieval, management, discovery) without being overwhelming. Each tool earns its place with clear utility in the voiceover job lifecycle.

    Completeness5/5

    The toolset provides complete CRUD/lifecycle coverage for ElevenLabs voiceover operations: create (two generation tools), read (get_audio_file, get_voiceover_history, list_voices), delete (delete_job). There are no obvious gaps - agents can create audio, retrieve results, manage jobs, and discover available voices.

    Maintenance

    ActivityMaintained
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers