ElevenLabs
공식공식 ElevenLabs MCP 서버
Eleven Labs MCP(으)로 무엇을 할 수 있나요?
- 텍스트에서 음성 생성 —
text_to_speech를 통해 ElevenLabs 음성을 사용하여 모든 텍스트를 음성 오디오로 변환합니다. - 사용자 정의 음성 디자인 —
design_voice를 사용하여 특정 캐릭터 특성, 억양 또는 스타일을 가진 새로운 합성 음성을 만듭니다. - 오디오에서 음성 복제 — 샘플 녹음을 업로드하고
clone_voice로 이를 모방하는 음성을 만듭니다. - 오디오를 텍스트로 변환 —
transcribe_speech를 사용하여 화자 분할 기능과 함께 음성 녹음을 텍스트 기록으로 변환합니다. - 음성 변환 적용 —
voice_conversion을 사용하여 하나의 음성 녹음을 다른 화자나 캐릭터처럼 들리도록 변환합니다. - 음향 효과 생성 —
generate_sound_effects를 통해 날씨나 주변 장면과 같은 텍스트 설명에서 오디오 사운드스케이프를 생성합니다.
문서
강력한 Text to Speech 및 오디오 처리 API와의 상호 작용을 가능하게 하는 공식 ElevenLabs Model Context Protocol (MCP) 서버입니다. 이 서버를 통해 Claude Desktop, Cursor, Windsurf, OpenAI Agents 등의 MCP 클라이언트가 음성 생성, 음성 복제, 오디오 전사 등의 작업을 수행할 수 있습니다.
Claude Desktop 빠른 시작
- ElevenLabs에서 API 키를 받으세요. 매월 1만 크레딧이 제공되는 무료 티어가 있습니다.
uv(Python 패키지 관리자)를 설치하고,curl -LsSf https://astral.sh/uv/install.sh | sh로 설치하거나 추가 설치 방법은uv저장소를 참조하세요.- Claude > 설정 > 개발자 > 설정 편집 > claude_desktop_config.json으로 이동하여 다음을 포함시키세요:
{
"mcpServers": {
"ElevenLabs": {
"command": "uvx",
"args": ["elevenlabs-mcp"],
"env": {
"ELEVENLABS_API_KEY": "<insert-your-api-key-here>"
}
}
}
}
Windows를 사용하는 경우, MCP 서버를 사용하려면 Claude Desktop에서 "개발자 모드"를 활성화해야 합니다. 왼쪽 상단의 햄버거 메뉴에서 "도움말"을 클릭하고 "개발자 모드 활성화"를 선택하세요.
기타 MCP 클라이언트
Cursor 및 Windsurf와 같은 다른 클라이언트의 경우 다음을 실행하세요:
pip install elevenlabs-mcppython -m elevenlabs_mcp --api-key={{PUT_YOUR_API_KEY_HERE}} --print을 실행하여 구성을 가져옵니다. MCP 클라이언트가 지정한 적절한 구성 디렉터리에 붙여넣으세요.
이제 MCP 클라이언트가 다음 도구들을 통해 ElevenLabs와 상호 작용할 수 있습니다:
사용 예시
⚠️ 경고: 이 도구들을 사용하려면 ElevenLabs 크레딧이 필요합니다.
Claude에게 다음과 같이 요청해 보세요:
- "필름 느와르 탐정처럼 말하고 고전 영화에 대한 질문에 답할 수 있는 AI 에이전트를 만들어 줘"
- "현명한 고대 드래곤 캐릭터를 위한 세 가지 음성 변형을 생성해 줘. 그중에서 마음에 드는 음성을 내 음성 라이브러리에 추가할게"
- "내 목소리 녹음을 중세 기사처럼 들리게 변환해 줘"
- "날씨에 반응하는 동물들이 있는 울창한 정글 속 천둥번개 소리 풍경을 만들어 줘"
- "이 음성을 텍스트로 변환하고, 다른 화자를 식별한 다음, 각 사람마다 고유한 음성을 사용하여 다시 변환해 줘"
선택적 기능
파일 출력 구성
claude_desktop_config.json에서 다음 환경 변수를 사용하여 MCP 서버가 파일 출력을 처리하는 방식을 구성할 수 있습니다:
ELEVENLABS_MCP_BASE_PATH: 상대 경로를 사용한 파일 작업의 기본 경로를 지정합니다 (기본값:~/Desktop)ELEVENLABS_MCP_OUTPUT_MODE: 생성된 파일이 반환되는 방식을 제어합니다 (기본값:files)
출력 모드
ELEVENLABS_MCP_OUTPUT_MODE 환경 변수는 세 가지 모드를 지원합니다:
-
files(기본값): 파일을 디스크에 저장하고 파일 경로를 반환합니다"env": { "ELEVENLABS_API_KEY": "your-api-key", "ELEVENLABS_MCP_OUTPUT_MODE": "files" } -
resources: 파일을 MCP 리소스로 반환합니다. 이진 데이터는 base64로 인코딩되고, 텍스트는 UTF-8 텍스트로 반환됩니다"env": { "ELEVENLABS_API_KEY": "your-api-key", "ELEVENLABS_MCP_OUTPUT_MODE": "resources" } -
both: 파일을 디스크에 저장하고 MCP 리소스로도 반환합니다"env": { "ELEVENLABS_API_KEY": "your-api-key", "ELEVENLABS_MCP_OUTPUT_MODE": "both" }
리소스 모드의 이점:
- 파일이 base64로 인코딩된 데이터로 MCP 응답에 직접 반환됩니다
- 디스크 I/O가 필요하지 않아 컨테이너화된 환경이나 서버리스 환경에 유용합니다
- MCP 클라이언트가 파일 시스템 접근 없이도 파일 콘텐츠에 즉시 접근할 수 있습니다
both모드에서는elevenlabs://filenameURI 패턴을 사용하여 나중에 리소스를 가져올 수 있습니다
사용 사례:
files: 전통적인 파일 기반 워크플로, 로컬 개발resources: 클라우드 환경, 파일 시스템 접근이 불가능한 MCP 클라이언트both: 최대의 유연성, 캐싱 및 리소스 공유 시나리오
데이터 상주 키
ELEVENLABS_API_RESIDENCY 환경 변수로 데이터 상주 지역을 지정할 수 있습니다. 기본값은 "us"입니다.
참고: 데이터 상주는 엔터프라이즈 전용 기능입니다. 자세한 내용은 문서를 참조하세요.
기여하기
기여하거나 소스에서 실행하려는 경우:
- 저장소를 복제합니다:
git clone https://github.com/elevenlabs/elevenlabs-mcp
cd elevenlabs-mcp
- 가상 환경을 만들고 uv를 사용하여 종속성을 설치합니다:
uv venv
source .venv/bin/activate
uv pip install -e ".[dev]"
.env.example을.env로 복사하고 ElevenLabs API 키를 추가합니다:
cp .env.example .env
# Edit .env and add your API key
- 테스트를 실행하여 모든 것이 제대로 작동하는지 확인합니다:
./scripts/test.sh
# Or with options
./scripts/test.sh --verbose --fail-fast
-
Claude Desktop에 서버를 설치합니다:
mcp install elevenlabs_mcp/server.py -
MCP Inspector로 로컬에서 디버그하고 테스트합니다:
mcp dev elevenlabs_mcp/server.py
문제 해결
Claude Desktop으로 실행할 때의 로그는 다음 위치에서 찾을 수 있습니다:
- Windows:
%APPDATA%\Claude\logs\mcp-server-elevenlabs.log - macOS:
~/Library/Logs/Claude/mcp-server-elevenlabs.log
특정 도구 사용 시 시간 초과
음성 디자인 및 오디오 분리와 같은 특정 ElevenLabs API 작업은 해결하는 데 오랜 시간이 걸릴 수 있습니다. 개발 모드에서 MCP 인스펙터를 사용할 때 도구가 의도한 작업을 완료했음에도 불구하고 시간 초과 오류가 발생할 수 있습니다.
Claude와 같은 클라이언트를 사용할 때는 이 문제가 발생하지 않아야 합니다.
MCP ElevenLabs: spawn uvx ENOENT
"MCP ElevenLabs: spawn uvx ENOENT" 오류가 발생하면 터미널에서 다음 명령을 실행하여 절대 경로를 확인하세요:
which uvx
절대 경로(예: /usr/local/bin/uvx)를 얻으면 해당 경로를 사용하도록 구성을 업데이트하세요(예: "command": "/usr/local/bin/uvx"). 이렇게 하면 올바른 실행 파일이 참조됩니다.