ElevenLabs MCP Server

offiziell

Der offizielle ElevenLabs MCP-Server

Dokumentation

export

Discord Community Twitter PyPI Tests

Offizieller ElevenLabs Model Context Protocol (MCP)-Server, der die Interaktion mit leistungsstarken Text-to-Speech- und Audioverarbeitungs-APIs ermöglicht. Dieser Server erlaubt es MCP-Clients wie Claude Desktop, Cursor, Windsurf, OpenAI Agents und anderen, Sprache zu generieren, Stimmen zu klonen, Audio zu transkribieren und vieles mehr.

Schnellstart mit Claude Desktop

  1. Holen Sie sich Ihren API-Schlüssel von ElevenLabs. Es gibt ein kostenloses Kontingent mit 10.000 Credits pro Monat.
  2. Installieren Sie uv (Python-Paketmanager), installieren Sie mit curl -LsSf https://astral.sh/uv/install.sh | sh oder sehen Sie sich das uv Repo für weitere Installationsmethoden an.
  3. Gehen Sie zu Claude > Einstellungen > Entwickler > Konfiguration bearbeiten > claude_desktop_config.json, um Folgendes einzufügen:
{
  "mcpServers": {
    "ElevenLabs": {
      "command": "uvx",
      "args": ["elevenlabs-mcp"],
      "env": {
        "ELEVENLABS_API_KEY": "<insert-your-api-key-here>"
      }
    }
  }
}

Wenn Sie Windows verwenden, müssen Sie den „Entwicklermodus“ in Claude Desktop aktivieren, um den MCP-Server zu nutzen. Klicken Sie auf „Hilfe“ im Hamburger-Menü oben links und wählen Sie „Entwicklermodus aktivieren“.

Andere MCP-Clients

Für andere Clients wie Cursor und Windsurf führen Sie aus:

  1. pip install elevenlabs-mcp
  2. python -m elevenlabs_mcp --api-key={{PUT_YOUR_API_KEY_HERE}} --print, um die Konfiguration zu erhalten. Fügen Sie diese in das entsprechende, von Ihrem MCP-Client angegebene Konfigurationsverzeichnis ein.

Das war's. Ihr MCP-Client kann nun über diese Werkzeuge mit ElevenLabs interagieren:

Beispielnutzung

⚠️ Warnung: Für die Nutzung dieser Werkzeuge werden ElevenLabs-Credits benötigt.

Versuchen Sie, Claude zu fragen:

  • „Erstelle einen KI-Agenten, der wie ein Film-Noir-Detektiv spricht und Fragen zu klassischen Filmen beantworten kann“
  • „Generiere drei Stimmvariationen für einen weisen, uralten Drachencharakter, dann wähle ich meine Lieblingsstimme aus, um sie meiner Stimmbibliothek hinzuzufügen“
  • „Wandle diese Aufnahme meiner Stimme so um, dass sie wie ein mittelalterlicher Ritter klingt“
  • „Erstelle eine Klangkulisse eines Gewitters in einem dichten Dschungel mit Tieren, die auf das Wetter reagieren“
  • „Wandle diese Sprache in Text um, identifiziere verschiedene Sprecher und wandle sie dann mit einzigartigen Stimmen für jede Person zurück“

Optionale Funktionen

Konfiguration der Dateiausgabe

Sie können konfigurieren, wie der MCP-Server Dateiausgaben handhabt, indem Sie diese Umgebungsvariablen in Ihrer claude_desktop_config.json verwenden:

  • ELEVENLABS_MCP_BASE_PATH: Gibt den Basispfad für Dateioperationen mit relativen Pfaden an (Standard: ~/Desktop)
  • ELEVENLABS_MCP_OUTPUT_MODE: Steuert, wie generierte Dateien zurückgegeben werden (Standard: files)

Ausgabemodi

Die Umgebungsvariable ELEVENLABS_MCP_OUTPUT_MODE unterstützt drei Modi:

  1. files (Standard): Dateien auf der Festplatte speichern und Dateipfade zurückgeben

    "env": {
      "ELEVENLABS_API_KEY": "your-api-key",
      "ELEVENLABS_MCP_OUTPUT_MODE": "files"
    }
    
  2. resources: Dateien als MCP-Ressourcen zurückgeben; Binärdaten werden base64-kodiert, Text wird als UTF-8-Text zurückgegeben

    "env": {
      "ELEVENLABS_API_KEY": "your-api-key",
      "ELEVENLABS_MCP_OUTPUT_MODE": "resources"
    }
    
  3. both: Dateien auf der Festplatte speichern UND als MCP-Ressourcen zurückgeben

    "env": {
      "ELEVENLABS_API_KEY": "your-api-key",
      "ELEVENLABS_MCP_OUTPUT_MODE": "both"
    }
    

Vorteile des Ressourcenmodus:

  • Dateien werden direkt in der MCP-Antwort als base64-kodierte Daten zurückgegeben
  • Kein Festplatten-I/O erforderlich – nützlich für containerisierte oder serverlose Umgebungen
  • MCP-Clients können sofort auf Dateiinhalte zugreifen, ohne Zugriff auf das Dateisystem
  • Im both-Modus können Ressourcen später über das URI-Muster elevenlabs://filename abgerufen werden

Anwendungsfälle:

  • files: Traditionelle dateibasierte Workflows, lokale Entwicklung
  • resources: Cloud-Umgebungen, MCP-Clients ohne Dateisystemzugriff
  • both: Maximale Flexibilität, Caching und Szenarien zur gemeinsamen Ressourcennutzung

Schlüssel für Datenresidenz

Sie können die Region der Datenresidenz mit der Umgebungsvariable ELEVENLABS_API_RESIDENCY festlegen. Standard ist "us".

Hinweis: Datenresidenz ist eine reine Enterprise-Funktion. Weitere Details finden Sie in der Dokumentation.

Mitwirken

Wenn Sie beitragen oder aus dem Quellcode ausführen möchten:

  1. Klonen Sie das Repository:
git clone https://github.com/elevenlabs/elevenlabs-mcp
cd elevenlabs-mcp
  1. Erstellen Sie eine virtuelle Umgebung und installieren Sie die Abhängigkeiten mit uv:
uv venv
source .venv/bin/activate
uv pip install -e ".[dev]"
  1. Kopieren Sie .env.example nach .env und fügen Sie Ihren ElevenLabs-API-Schlüssel hinzu:
cp .env.example .env
# Edit .env and add your API key
  1. Führen Sie die Tests aus, um sicherzustellen, dass alles funktioniert:
./scripts/test.sh
# Or with options
./scripts/test.sh --verbose --fail-fast
  1. Installieren Sie den Server in Claude Desktop: mcp install elevenlabs_mcp/server.py

  2. Debuggen und testen Sie lokal mit dem MCP Inspector: mcp dev elevenlabs_mcp/server.py

Fehlerbehebung

Protokolle bei der Ausführung mit Claude Desktop finden Sie unter:

  • Windows: %APPDATA%\Claude\logs\mcp-server-elevenlabs.log
  • macOS: ~/Library/Logs/Claude/mcp-server-elevenlabs.log

Timeouts bei der Verwendung bestimmter Werkzeuge

Bestimmte ElevenLabs-API-Operationen, wie Stimmdesign und Audio-Isolation, können lange dauern. Bei Verwendung des MCP Inspectors im Entwicklermodus können Timeout-Fehler auftreten, obwohl das Werkzeug seine beabsichtigte Aufgabe abgeschlossen hat.

Dies sollte bei Verwendung eines Clients wie Claude nicht vorkommen.

MCP ElevenLabs: spawn uvx ENOENT

Wenn der Fehler „MCP ElevenLabs: spawn uvx ENOENT“ auftritt, überprüfen Sie den absoluten Pfad, indem Sie diesen Befehl in Ihrem Terminal ausführen:

which uvx

Sobald Sie den absoluten Pfad erhalten haben (z. B. /usr/local/bin/uvx), aktualisieren Sie Ihre Konfiguration, um diesen Pfad zu verwenden (z. B. "command": "/usr/local/bin/uvx"). Dadurch wird sichergestellt, dass die korrekte ausführbare Datei referenziert wird.