About Ezkielyna Audio
Ezkielyna Audio is an MCP server for text-to-speech and transcription of local audio files through the Ezkielyna API. It is aimed at MCP client users who need audio output or transcripts, including Indonesian, with configurable voices and subtitle formats.
Key features
- 01Convert text to MP3 or WAV speech
- 02Transcribe local audio files
- 03Support text, SRT and VTT transcripts
- 04List audio models, prices and voices
- 05Save output locally without overwriting files
Use cases
- 01Create Indonesian speech from product text
- 02Transcribe a local voice note
- 03Generate SRT or VTT subtitles from audio
MCP support
The MCP server provides `text_to_speech`, `transcribe_audio`, and `list_audio_models` tools. It uses the Ezkielyna API, requiring an API key for paid speech and transcription calls.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y ezkielyna-audio-mcpEZKIELYNA_API_KEYSecretEzkielyna API key (Auto group, or a group that lists the audio models)EZKIELYNA_AUDIO_DIRFolder where speech files are saved (default ~/Music/Ezkielyna)EZKIELYNA_MAX_CALLSPaid calls per session (default 30)Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
3Saved tool list · updated 2d ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| text | string | Yes | The text to speak (max 4000 characters). |
| model | string | No | TTS model id (default edge-tts). See list_audio_models. |
| voice | string | No | Voice name for the model, e.g. id-ID-GadisNeural or id-ID-ArdiNeural (edge-tts), Kore (tts-gemini-3.1-flash). Empty = the model's default voice. Passed to the API as given. |
| format | enum | No | Audio format (default mp3). Some models only return MP3; the file extension follows the real audio type.mp3 | wav |
| filename | string | No | Optional file name (no folder). Existing files are never overwritten. |
Details
From the project READMEEzkielyna Audio MCP
An MCP server that gives your AI assistant text to speech (saved as local MP3/WAV files) and speech to text from local audio files, including Indonesian, through the Ezkielyna API. Works in Claude Desktop, Claude Code, Cursor, OpenCode and any other MCP client that runs local stdio servers.
Examples:
- "Transcribe
~/Downloads/voice-note.ogg(it's in Indonesian) and summarise it in three bullet points." - "Read this product description aloud in Indonesian and save it as promo-kopi."
🇮🇩 Bahasa Indonesia: lihat bagian di bawah.
- One file, no dependencies: only Node.js 18 or newer. No
npm install. - Audio is saved in one folder and existing files are never overwritten.
- Paid calls are capped per session and the API key is never printed.
Requirements
- Node.js 18+ (
node -v). Get the LTS from nodejs.org. - An Ezkielyna API key whose group includes the audio models. The simplest choice is Auto. According to the public price list (checked 11 Nov 2026) the speech models are enabled for the Standard and Premium groups, and
edge-ttsalso for Hemat; the Media group (image and video) did not list them.list_audio_modelsshows the groups per model and, with a key set, whether your key can use each one. Buy API Credit at ezkielyna.store/beli-api-key (from $0.5, QRIS/DANA/GoPay/USDT), redeem it under Wallet at api.ezkielyna.store, then create a key under API Keys.
Tools
| Tool | What it does | Cost |
|---|---|---|
text_to_speech | Text (max 4,000 characters) to speech, saved in EZKIELYNA_AUDIO_DIR. model default edge-tts, voice (default per model, see below), format mp3 (default) or wav, optional filename. | per input character |
transcribe_audio | Transcribes a local file (mp3, m4a, mp4, wav, ogg, oga, opus, webm, flac, aac, mpga, mpeg; max 25 MB). model default whisper-large-v3, optional language (e.g. id, en), response_format text (default), srt or vtt, optional prompt with names or terms. | by audio length |
list_audio_models | TTS and STT models from the public price list with price, key groups, voices and formats. With a key set, marks which ones your key can use. | free |
Price examples (public price list, 11 Nov 2026, list prices in USD): edge-tts $1 per 1M characters, so a 4,000-character text is about $0.004; whisper-large-v3 is listed at $12 per 1M audio tokens and billed by audio length (see Usage Logs on api.ezkielyna.store for the exact charge).
Voices
The voice is passed to the OpenAI-format POST /v1/audio/speech endpoint as you give it. Defaults, taken from the model descriptions in the public price list (11 Nov 2026):
| Model | Default voice | Other voices named in the price list |
|---|---|---|
edge-tts | id-ID-GadisNeural (Indonesian, female) | id-ID-ArdiNeural (Indonesian, male), en-US-AriaNeural, other Edge voice ids, or an OpenAI voice name. MP3 only. |
tts-gemini-3.1-flash | Kore | Puck, Charon, Aoede, Zephyr, Fenrir, Leda, Orus |
tts-xai-v1 | eve | ara, leo, rex, luna, orion, sirius |
tts-kokoro | af_heart | af_bella, am_adam, bf_emma (no Indonesian) |
| other models | see list_audio_models | any model not in the built-in table defaults to alloy |
If the model returns a different format than requested (for example edge-tts only returns MP3), the file is saved with the extension of the audio it really contains and the answer says so.
Install
With npx (recommended): nothing to install. The configs below run npx -y ezkielyna-audio-mcp.
From source:
git clone https://github.com/EzkielynaGroup/ezkielyna-audio-mcp.git
cd ezkielyna-audio-mcp
node --test test/ # optional: local mock server, no network, no cost
Then use "command": "node" with "args": ["/full/path/to/ezkielyna-audio-mcp.mjs"] instead of npx.
Windows: if the app cannot start npx, use "command": "cmd" with "args": ["/c", "npx", "-y", "ezkielyna-audio-mcp"]. Write paths in JSON with forward slashes (C:/Users/you/Music/Ezkielyna).
Add it to your app
Replace sk-... with your key.
Claude Code
claude mcp add ezkielyna-audio -e EZKIELYNA_API_KEY=sk-... -- npx -y ezkielyna-audio-mcp
Add --scope user to make it available in every project.
Claude Desktop: Settings → Developer → Edit Config (claude_desktop_config.json), then quit and reopen Claude Desktop.
{
"mcpServers": {
"ezkielyna-audio": {
"command": "npx",
"args": ["-y", "ezkielyna-audio-mcp"],
"env": { "EZKIELYNA_API_KEY": "sk-..." }
}
}
}
Cursor: ~/.cursor/mcp.json or .cursor/mcp.json, same JSON as Claude Desktop.
OpenCode: opencode.json in the project, or ~/.config/opencode/opencode.json.
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"ezkielyna-audio": {
"type": "local",
"command": ["npx", "-y", "ezkielyna-audio-mcp"],
"enabled": true,
"environment": { "EZKIELYNA_API_KEY": "sk-..." }
}
}
}
Configuration (environment)
| Variable | Required | Default | Notes |
|---|---|---|---|
EZKIELYNA_API_KEY | yes (except list_audio_models) | key in group Auto (or Standard/Premium, see above) | |
EZKIELYNA_BASE_URL | no | https://api.ezkielyna.store/v1 | API address |
EZKIELYNA_AUDIO_DIR | no | ~/Music/Ezkielyna | where speech files are saved (created if missing) |
EZKIELYNA_MAX_CALLS | no | 30 | paid calls per session (text_to_speech + transcribe_audio); restart the app to reset |
EZKIELYNA_TIMEOUT_MS | no | 300000 | request timeout |
Safety and limits
- Reads only audio files with a known extension, up to 25 MB; URLs are refused (local files only). A bare file name is also looked up in the audio folder, so a file
text_to_speechjust saved can be transcribed again. - Writes only inside
EZKIELYNA_AUDIO_DIR, sanitises file names and never overwrites (name.mp3,name-1.mp3, ...). An answer that is not audio is refused and nothing is saved. - Text is limited to 4,000 characters per call; transcripts longer than 100,000 characters are truncated.
- The session cap is checked before anything is sent. Calls the gateway clearly refused give their slot back.
- The key is scrubbed from every answer and log line. Logs go to stderr; stdout carries only MCP messages.
Data source
Model list, prices, groups and voice names come at runtime from the public endpoint https://api.ezkielyna.store/api/pricing (no key, cached 10 minutes). Price per 1M units = model_ratio × 2 × lowest group multiplier (New API convention), matching https://api.ezkielyna.store/llms-full.txt (checked 11 Nov 2026). Nothing is bundled. The voice table above was copied from the same price list on 11 Nov 2026; models and voices can change, so list_audio_models is the current source.
FAQ
How can I transcribe an Indonesian voice note with Claude?
Add this server, then ask "transcribe ~/Downloads/note.ogg, language id". Claude calls transcribe_audio with whisper-large-v3 and gets the text back.
Is there an Indonesian text-to-speech voice for Claude Desktop or Cursor?
Yes. The default edge-tts voice is id-ID-GadisNeural (female); use id-ID-ArdiNeural for a male voice.
Can I make subtitles (SRT/VTT) from a video's audio?
Yes, set response_format to srt or vtt. Extract the audio first (for example ffmpeg -i video.mp4 -vn -b:a 64k audio.mp3) if the file is over 25 MB.
Where are the audio files saved?
In ~/Music/Ezkielyna unless you set EZKIELYNA_AUDIO_DIR. Existing files are never overwritten.
Is Ezkielyna affiliated with Microsoft, OpenAI or Google? No. Ezkielyna is an independent API gateway and is not affiliated with the model vendors or the MCP client makers.
Development
node --test test/
The tests spawn the server over stdio against a local mock gateway: no internet, no cost.
Bahasa Indonesia
Server MCP agar asisten AI Anda (Claude Desktop, Claude Code, Cursor, OpenCode) bisa mengubah teks jadi suara (disimpan sebagai file MP3/WAV) dan mengubah file audio di komputer jadi teks, termasuk bahasa Indonesia, lewat Ezkielyna API.
Contoh:
- "Transkrip
~/Downloads/vn-pelanggan.ogg(bahasa Indonesia), lalu ringkas jadi 3 poin." - "Bacakan deskripsi produk ini dengan suara perempuan bahasa Indonesia, simpan sebagai promo-kopi."
Yang dibutuhkan
- Node.js 18+. Cukup satu file, tanpa
npm install. - API key Ezkielyna yang grupnya mencakup model audio. Paling mudah: grup Auto. Menurut daftar harga publik (dicek 11 Nov 2026), model suara aktif di grup Standard dan Premium, dan
edge-ttsjuga di Hemat; grup Media (gambar/video) tidak mencantumkannya. Beli API Credit mulai $0.5 lewat QRIS/DANA/GoPay/USDT di ezkielyna.store/beli-api-key, tukarkan di menu Wallet di api.ezkielyna.store, lalu buat key di menu API Keys.
Tool
| Tool | Fungsi | Biaya |
|---|---|---|
text_to_speech | Teks (maks 4.000 karakter) jadi suara, disimpan di EZKIELYNA_AUDIO_DIR (default ~/Music/Ezkielyna). Default edge-tts dengan suara id-ID-GadisNeural; suara laki-laki: id-ID-ArdiNeural. Format mp3 atau wav. | per karakter |
transcribe_audio | File audio lokal (maks 25 MB) jadi teks. Default whisper-large-v3, opsional language (mis. id), hasil text, srt atau vtt (subtitle). | per durasi audio |
list_audio_models | Daftar model TTS/STT dengan harga, grup key, suara, dan format. | gratis |
Contoh harga (daftar harga publik, 11 Nov 2026): edge-tts $1 per 1 juta karakter, jadi 4.000 karakter sekitar $0.004. Biaya pasti ada di Usage Logs dashboard.
Pemasangan
Claude Code:
claude mcp add ezkielyna-audio -e EZKIELYNA_API_KEY=sk-... -- npx -y ezkielyna-audio-mcp
Claude Desktop, Cursor dan OpenCode: pakai contoh JSON di bagian Inggris di atas, cukup ganti sk-.... Di Windows, jika npx tidak jalan, pakai "command": "cmd" dan "args": ["/c", "npx", "-y", "ezkielyna-audio-mcp"].
Keamanan dan batas
EZKIELYNA_MAX_CALLS(default 30): batas panggilan berbayar per sesi, dicek sebelum permintaan dikirim.- Hanya membaca file audio (maks 25 MB), bukan link. Hanya menulis di folder audio dan tidak pernah menimpa file yang sudah ada.
- Key tidak pernah ditampilkan di jawaban maupun log.
Tanya jawab
Bagaimana cara transkrip voice note WhatsApp berbahasa Indonesia dengan Claude? Simpan voice note (.ogg/.opus) ke komputer, pasang server ini, lalu minta "transkrip file ini, bahasa id".
Apakah ada suara Indonesia untuk text to speech?
Ada: id-ID-GadisNeural (perempuan, default) dan id-ID-ArdiNeural (laki-laki) di edge-tts.
Apakah Ezkielyna berafiliasi dengan Microsoft, OpenAI atau Google? Tidak. Ezkielyna adalah API gateway independen.
License
MIT, Copyright (c) 2026 Ezekiel Lieberhart (Ezkielyna). Ezkielyna is an independent API gateway and is not affiliated with the model vendors or the MCP client makers.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.