Pa Elevenlabs
FreeNot checkedA self-hosted HTTP MCP server wrapping the ElevenLabs speech-to-text API, enabling audio transcription with speaker diarization.
About
A self-hosted HTTP MCP server wrapping the ElevenLabs speech-to-text API, enabling audio transcription with speaker diarization.
README
A self-hosted HTTP MCP server wrapping the ElevenLabs speech-to-text API. Designed to be used with Claude Cowork plugins where the sandbox blocks direct outbound API calls. The MCP server runs on the host machine (outside the sandbox), so the API call goes through cleanly.
Tools exposed
| Tool | Description |
|---|---|
speech_to_text |
Transcribe an audio file using ElevenLabs Scribe v2 with speaker diarization |
list_models |
List available ElevenLabs models |
Local development with Docker Compose + ngrok
1. Set up environment variables
cp .env.example .env
Edit .env and fill in:
ELEVENLABS_API_KEY=sk_...
NGROK_AUTHTOKEN=your_ngrok_authtoken # get free token at https://ngrok.com
2. Start the server
docker compose up --build
This starts:
mcp-serveron port8000ngroktunnel on port4040(inspect UI)
3. Get your ngrok public URL
curl -s http://localhost:4040/api/tunnels | python3 -m json.tool | grep public_url
Or open http://localhost:4040 in your browser.
You'll get a URL like: https://abc123.ngrok-free.app
4. Test the health endpoint
curl https://abc123.ngrok-free.app/health
# {"status":"ok"}
Connect to a Cowork plugin
Add the following to your plugin's .mcp.json (or to claude_desktop_config.json for Claude Code):
{
"mcpServers": {
"elevenlabs-mcp": {
"type": "http",
"url": "https://abc123.ngrok-free.app/mcp"
}
}
}
Replace abc123.ngrok-free.app with your actual ngrok URL.
In your skill, call the tool like:
Use the elevenlabs-mcp speech_to_text tool with:
- file_path: /absolute/path/to/audio.mp3
- model_id: scribe_v2
- diarize: true
EC2 production deployment
For production, use the same docker-compose.yml but:
- Remove the
ngrokservice entirely - Point your domain to port
8000using nginx or Caddy as a reverse proxy - Use HTTPS (Let's Encrypt via Caddy is the easiest option)
Minimal Caddyfile:
your-domain.com {
reverse_proxy localhost:8000
}
Update .mcp.json to use your real domain:
{
"mcpServers": {
"elevenlabs-mcp": {
"type": "http",
"url": "https://your-domain.com/mcp"
}
}
}
Installing Pa Elevenlabs
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/rishabh-navadhiti/pa-elevenlabs-mcpFAQ
Is Pa Elevenlabs MCP free?
Yes, Pa Elevenlabs MCP is free — one-click install via Unyly at no cost.
Does Pa Elevenlabs need an API key?
No, Pa Elevenlabs runs without API keys or environment variables.
Is Pa Elevenlabs hosted or self-hosted?
A hosted option is available: Unyly runs the server in the cloud, no local setup required.
How do I install Pa Elevenlabs in Claude Desktop, Claude Code or Cursor?
Open Pa Elevenlabs on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
Omni Video
An MCP server that transforms LLM-enabled IDEs into professional video editors by pre-processing footage into text proxies, generating motion graphics via HTML/
by buildwithtazaARA
Generate images, video and audio from any AI agent — one connector.
by ARAYouTube
Transcripts, channel stats, search
by YouTubeEverArt
AI image generation using various models.
by modelcontextprotocolCompare Pa Elevenlabs with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All media MCPs
