MCP App Store
by KeenEthics

Overview

VoiceLab is an AI voice platform for text-to-speech, speech-to-text, dubbing, meeting notetaking, and voice agents. Turn text into natural speech, transcribe and summarize meetings, localize audio with dubbing, and connect voice tools to agents via MCP.

Tools

chat_completions

ChatGPT
Create an LLM chat completion with optional reasoning controls (thinking, reasoning.enabled/effort, or reasoning_effort). Returns completion ID and text. Generates unique idempotency key if not provided. Model support varies.

create_isolation_export

ChatGPT
Create an export of isolated audio in specified format

create_meeting

ChatGPT
Submit a meeting recording for asynchronous transcription and notes (POST /v1/meetings). Provide exactly one audio source: audio_url (public HTTPS URL the API downloads; preferred for large files) or audio_base64 (small files only: the MCP request body is capped at 10 MiB, so base64 audio must be under ~7 MB). Returns 202 Accepted with meeting (status queued). Poll get_meeting until status is ready, transcribed, or failed — not queued or running. Requires meetings:write and a UUID Idempotency-Key (auto-generated if omitted). Optional title (1–160 chars, single line; defaults to filename) and language (auto or a capabilities code; default auto). Limits: 500 MiB, 0.5 seconds–24 hours, MP3/WAV/M4A/AAC/OGG/Opus/WebM/Opus/FLAC, 10 queued or running meetings per account. Personal workspace keys only. Developer responses never include audio playback URLs.

create_meeting_from_file

ChatGPT
ChatGPT only: create a VoiceLab meeting (transcript + notes) from an audio file the user attached in ChatGPT. VoiceLab downloads the file directly; poll get_meeting with the returned meeting id until status is ready, transcribed, or failed. Other clients should use create_meeting with audio_url or audio_base64.

create_realtime_ticket

ChatGPT
Create a short-lived WebSocket ticket for realtime TTS or STT. Tickets expire after ~2 minutes. For browser clients only; server clients can use xvl-api-key header directly on WebSocket handshake.

delete_meeting

ChatGPT
Delete a meeting and its results (DELETE /v1/meetings/{id}). Destructive. Requires meetings:write. Returns 204 No Content. Deleting a queued or running meeting releases its credit hold. Deleted meetings also disappear from the web app.

delete_transcription

ChatGPT
Delete a transcription and its audio (destructive)

delete_tts_generation

ChatGPT
Delete a TTS generation and its audio (destructive)

edit_transcription_document

ChatGPT
Atomically replace the complete transcription document (segments, speakers, title). Requires current revision from GET response to prevent conflicts. Returns 409 stt_edit_conflict on stale revision.

export_transcription

ChatGPT
Export transcription as TXT, JSON, SRT, or VTT. Returns content as base64-encoded data.

get_isolation

ChatGPT
Get voice isolation job status, processing stage, and audio URLs. Poll until BOTH status=completed AND audio_status=completed for the default MP3. Job can complete while MP3 preparation is still running. Signed URLs expire after ~10 minutes.

get_isolation_export

ChatGPT
Get export status and download URL

get_llm_request

ChatGPT
Get LLM request status, token usage, and credit details

get_meeting

ChatGPT
Read meeting status, speaker-labelled transcript, summary, decisions, and action items (GET /v1/meetings/{id}). Requires meetings:read. Poll every two seconds or follow Retry-After while status is queued or running. Terminal statuses: ready (transcript and notes complete), transcribed (transcript saved; notes failed — optionally regenerate_meeting_notes), failed (inspect failure.code). processing.transcription and processing.notes each report waiting/queued/running/ready/failed with retryable. Unknown, deleted, or another account's meetings return 404 meeting_not_found. Developer responses never include audio playback URLs.

get_meeting_translations

ChatGPT
Attempt to read meeting translations (GET /v1/meetings/{id}/translations). Docs state translations are not available with API keys; the dashboard uses JWT /api/v1/meetings/{id}/translations. The developer contract does not document this endpoint. Expect 403 insufficient_scope or 404. Included so agents can attempt the call; do not treat success as guaranteed.

get_profile

ChatGPT
Get authenticated user profile information (OpenAI profile tool)

get_transcription

ChatGPT
Get transcription status and results. Poll this after speech_to_text until status is completed.

get_tts_generation

ChatGPT
Get TTS generation details with audio URL

hide_isolation

ChatGPT
Hide isolation job from history (does not delete audio)

isolate_voice

ChatGPT
Remove background noise from audio with optional speech restoration. Returns job ID for polling. Generates unique idempotency key if not provided.

isolate_voice_batch

ChatGPT
Submit 1-4 audio files for batch noise removal with atomic validation and credit reservation. Processing options apply to all files. Returns batch ID and individual job IDs. Generates unique idempotency key if not provided.

list_isolations

ChatGPT
List voice isolation history

list_meeting_capabilities

ChatGPT
List Meeting AI supported recording languages and feature flags (GET /v1/meetings/capabilities). Requires meetings:read. Response data items have code, name, and native_name; allow unknown fields. Send one code as language on create_meeting, or omit language for automatic detection. Personal workspace keys only; team keys return 403 workspace_product_unavailable.

list_meetings

ChatGPT
List the account's meetings, newest first (GET /v1/meetings). Requires meetings:read. Optional limit defaults to 20 (1–50). Pass next_cursor as cursor for the next page. To refresh specific meetings, send ids as a comma-separated list of up to 50 meeting IDs instead of cursor. IDs that do not belong to the account are omitted. Invalid limit, cursor, or ids return 400 invalid_meeting_query.

list_models

ChatGPT
List available LLM models with pricing and limits

list_transcriptions

ChatGPT
List STT transcription history

list_tts_generations

ChatGPT
List TTS generation history

list_tts_languages

ChatGPT
List supported TTS languages and model capabilities

list_voices

ChatGPT
List available voices, optionally filtered by language

regenerate_meeting_notes

ChatGPT
Retry notes for a meeting whose notes generation failed (POST /v1/meetings/{id}/notes/generations). Requires meetings:write. Only meetings with status transcribed qualify; others return 409 meeting_notes_not_retryable. Billed again at the meeting's full duration. Returns 202 Accepted with meeting; poll get_meeting until status is no longer queued or running.

speech_to_text

ChatGPT
Transcribe audio asynchronously. Provide exactly one audio source: audio_url (public HTTPS URL the API downloads; preferred for large files) or audio_base64 (small files only: the MCP request body is capped at 10 MiB, so base64 audio must be under ~7 MB). Returns 202 Accepted with job ID for polling (even for short clips). Poll get_transcription until status is completed. Generates unique idempotency key if not provided.

text_to_speech

ChatGPT
Generate speech from text. Returns audio as base64-encoded WAV. Generates unique idempotency key if not provided.

transcribe_file

ChatGPT
ChatGPT only: transcribe an audio file the user attached in ChatGPT with VoiceLab speech-to-text. VoiceLab downloads the file directly; poll get_transcription with the returned id until status is completed. Other clients should use speech_to_text with audio_url or audio_base64.

update_transcription

ChatGPT
Update transcription title

Capabilities

Writes

Example Prompts

Click any prompt to copy it.

App Stats

34

Tools

3

Prompts

ChatGPT

Platforms

Works with

ChatGPT

Data refreshed daily