Voicegen Port

io.github.CloudCorpRecordsPublished by GitHub account CloudCorpRecordsv0.1.0Updated Nov 1, 2026

Generate speech, voices, and transcripts through the ElevenLabs API.

The publisher's own server: Port

VerifiedSTDIODesktop onlyMedia & DesignAI & ML

Overview

AI-generated overview

Local MCP server that uses the ElevenLabs API to generate speech and sound effects, transcribe audio, isolate voices, and manage a voice library.

What you can do
  • Generate speech from text with a chosen voice, model and output format, and create sound effects from a text description
  • Transcribe an audio file to text and isolate the voice track from a noisy recording
  • Browse the voice library: list, look up by ID, or search voices by keyword and category
  • Design a new voice from a written description, save a preview to the library, add a voice, or delete one by ID
  • Inspect available models, the account's subscription status and the API key owner's user info
  • Audio results come back as artifact summaries (byte count, base64 length, content type) rather than raw audio
When to use it
Useful when an assistant needs to produce spoken audio, sound effects or transcripts, or to curate an ElevenLabs voice library, from a local desktop client. It is a documented core subset of the official ElevenLabs MCP server, so conversational-AI, telephony, voice cloning and speech-to-speech tools are not included.
Requirements
Runs locally over stdio via npx (Node.js) or the Docker image, with the mcp subcommand. Requires an ElevenLabs account and an API key supplied in the ELEVENLABS_API_KEY environment variable; every call fails without it. Needs network access to the ElevenLabs API. Desktop only.
Before you install
The ElevenLabs API key is sent to the ElevenLabs API as the xi-api-key header, so it is shared with that third party. Calls consume ElevenLabs account quota and may incur charges depending on the plan. delete_voice permanently removes a voice from the library, and add_voice, create_voice_from_preview and text_to_voice change the library. Audio files are uploaded to ElevenLabs for transcription and isolation.

Installation

In SourceWeft

  1. Open Voicegen Port in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

voicegen-port

voicegen-port turns text into spoken audio, and audio back into text, through the ElevenLabs API. It can read a paragraph aloud in a chosen voice, invent a sound effect from a description, transcribe a recording, clean a noisy clip down to its voice, and manage the voice library itself — designing new voices from a written description and saving the ones worth keeping. It runs from the command line or as an MCP server for agents.

An ElevenLabs API key is required. Put it in the ELEVENLABS_API_KEY environment variable; the key is sent to the API as the xi-api-key header and never appears in output. When the variable is missing, every call fails with an error that names it.

Audio is binary, and this tool treats it honestly: generation calls report an artifact summary (byte count, base64 length, content type) instead of dumping raw audio into text output.

Install

bash
npx @reneturcios/voicegen-port voices

Or run the container image:

bash
docker run -i -e ELEVENLABS_API_KEY ghcr.io/cloudcorprecords/voicegen-port

The container defaults to the MCP server (see below). Pass CLI arguments to use it as a CLI instead.

CLI

bash
export ELEVENLABS_API_KEY="your ElevenLabs API key"
voicegen-port tts "Welcome to the show" --voice v_georgevoicegen-port sfx "rain on a tin roof" --duration 4voicegen-port stt interview.mp3 --language envoicegen-port isolate noisy-call.mp3voicegen-port voicesvoicegen-port voice v_rachelvoicegen-port search-voices "narrator" --page-size 5voicegen-port design "A calm British narrator" --text "Sample line"voicegen-port create-from-preview gen_1 "Calm Narrator"voicegen-port add-voice "Studio Voice" --description "Warm and close"voicegen-port delete-voice v_oldvoicegen-port modelsvoicegen-port subscriptionvoicegen-port user
voicegen-port --version

Exit codes: 0 on success, 1 when a call fails (including a missing ELEVENLABS_API_KEY or an API error), 2 for usage errors.

MCP server

One bin serves both faces. The mcp subcommand starts a stdio MCP server:

bash
npx -y @reneturcios/voicegen-port mcp

MCP client configuration:

json
{  "mcpServers": {    "voicegen-port": {      "command": "npx",      "args": ["-y", "@reneturcios/voicegen-port", "mcp"],      "env": { "ELEVENLABS_API_KEY": "your ElevenLabs API key" }    }  }}

Tools

This is the documented core subset (14 tools) of the official ElevenLabs MCP server. The conversational-AI and telephony tools (create_agent, list_agents, get_agent, delete_agent, add_knowledge_base_to_agent, make_outbound_call, list_phone_numbers) plus voice_clone, speech_to_speech, and play_audio are not implemented; see the build report.

ToolInputWhat it returns
text_to_speechtext (required), voice_id, model_id, output_format (optional)Audio artifact summary: bytes, base64 length, content type.
text_to_sound_effectstext (required), duration_seconds, prompt_influence (optional)Audio artifact summary for the generated effect.
speech_to_textfile_path (required), language_code, model_id (optional)The transcription payload, including its text.
isolate_audiofile_path (required)Audio artifact summary for the isolated voice track.
list_voices—All voices: id, name, and category per voice.
get_voicevoice_id (required)The full voice record.
search_voicessearch (required), category, page_size (optional)Matching voices in the same summary shape.
text_to_voiceprompt (required), text (optional)Voice design previews, including generated voice ids.
create_voice_from_previewgenerated_voice_id, voice_name (required), voice_description (optional)The saved voice record.
add_voicename (required), description (optional)The added voice record.
delete_voicevoice_id (required)The API's deletion response.
list_models—All models: id, name, and description per model.
check_subscription—The account's subscription record.
get_user_info—The API key owner's user record.

Calls go to https://api.elevenlabs.io/v1 with JSON bodies. speech_to_text and add_voice are multipart uploads upstream; this rebuild shapes them as JSON bodies naming the file / voice, a simplification recorded in the build report.

Development

bash
npm installnpm run build   # tsc -> dist/npm test        # node test runner over test/*.test.ts, no network (fake fetch fixtures)npm run dev     # run the CLI from source via tsx

License

MIT — see LICENSE.

Source: README.md at commit 776969a

Tools

14

text_to_speech

Convert text to speech using a specified voice.

Parameterstextrequiredmodel_idvoice_idoutput_format

text_to_sound_effects

Generate sound effects from a text description.

Parameterstextrequiredduration_secondsprompt_influence

speech_to_text

Transcribe speech from an audio file.

Parametersmodel_idfile_pathrequiredlanguage_code

isolate_audio

Isolate the voice in an audio file, removing background noise.

Parametersfile_pathrequired

list_voices

Get a list of all available voices.

Takes no parameters.

get_voice

Retrieve a specific voice by its ID.

Parametersvoice_idrequired

search_voices

Search through the voice library for a specific voice.

Parameterssearchrequiredcategorypage_size

text_to_voice

Design a voice from a text description and return previews.

Parameterstextpromptrequired

create_voice_from_preview

Save a voice preview from text_to_voice to the voice library.

Parametersvoice_namerequiredvoice_descriptiongenerated_voice_idrequired

add_voice

Add a new voice to the voice library.

Parametersnamerequireddescription

delete_voice

Delete a voice from the voice library by its ID.

Parametersvoice_idrequired

list_models

Get a list of all available models.

Takes no parameters.

check_subscription

Check the ElevenLabs subscription status for the account.

Takes no parameters.

get_user_info

Get user account information for the API key owner.

Takes no parameters.

Version history

1
  1. v0.1.0LatestNov 1, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts
  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Port integrations