MCP HubMCP Hub
mamertofabian

elevenlabs-mcp-server

by: mamertofabian

elevenlabs mcp server

73created 21/12/2024
Visit
elevenlabs
voice

📌Overview

Purpose: This framework serves to integrate ElevenLabs' text-to-speech API through a Model Context Protocol (MCP) server, enabling efficient voice generation management.

Overview: The ElevenLabs MCP Server comprises both server and client components, designed for seamless interaction with ElevenLabs’ text-to-speech functionalities. It allows users to generate audio from text, manage various voice settings, and maintain a history of voice generation tasks via a user-friendly web interface built with SvelteKit.

Key Features:

  • Audio Generation: Converts text to audio using ElevenLabs API, facilitating diverse applications in voice synthesis.

  • Multi-Voice Support: Enables users to utilize multiple voices and manage different script parts for more dynamic audio production.

  • Persistent History: Employs an SQLite database to store generation histories, allowing for easy access to previous audio output.

  • Web Client: Comes with a sample SvelteKit MCP Client, simplifying the user experience for tasks such as text-to-speech conversion and voice history playback.


ElevenLabs MCP Server

A Model Context Protocol (MCP) server that integrates with the 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

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

Using uvx (recommended)

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.

License

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