For AI agents

VoiceLabs MCP server

VoiceLabs exposes a remote MCP (Model Context Protocol) server, so an AI agent can generate speech, transcribe audio, and read your VoiceLabs data on your behalf. The transport is streamable HTTP and the server is stateless. Authorization is OAuth 2.1 — authorization code with PKCE and dynamic client registration — so the agent signs in as you and gets only what you consent to.

Connect

One command in Claude Code

claude mcp add --transport http voicelabs https://app.voicelabs.now/api/mcp

Any MCP client that supports streamable HTTP plus OAuth discovery works the same way: point it at https://app.voicelabs.now/api/mcp and it discovers the authorization server, registers itself, and walks you through consent in your browser.

Tools

Five tools, two scopes

TOOLSCOPEWHAT IT DOES
speakvoice:generateSynthesize speech from text in one of your voices. Asynchronous: it returns a generation id, which you poll with get_generation for the audio URL.
transcribevoice:generateTranscribe an audio clip (up to 10 MiB of base64) with VoiceLabs' Whisper, returning the transcript and the capture it created.
get_generationvoice:readPoll a generation by id for its status — generating, completed, or failed — and, once complete, its audio URL.
list_capturesvoice:readList your recent captures (dictations, recordings, uploads) with transcripts. Paginated.
list_voice_profilesvoice:readList your voice profiles — cloned voices and presets — with language, engine, and usage counts.

Because speak is asynchronous and polling happens through get_generation (a read tool), a client that generates should request both scopes.

Scopes

What you are consenting to

voice:read
Read your voices, profiles, and past generations.
voice:generate
Generate speech and transcribe audio on your behalf.

The OIDC scopes (openid, profile, email, offline_access) handle identity and token refresh; they grant no API access of their own.

Control

Consent, and revoke, at any time

Every connection starts with an explicit consent screen in your browser that names the agent and the scopes it asked for. You can disconnect an agent at any time from your connections page. Revocation is immediate: the next request from that agent is rejected even if its access token has not yet expired.

Discovery

Metadata endpoints

https://app.voicelabs.now/.well-known/oauth-protected-resource
RFC 9728 protected-resource metadata — points clients at the authorization server.
https://app.voicelabs.now/.well-known/oauth-authorization-server
OAuth 2.1 authorization-server metadata, including the dynamic client registration endpoint.

A request without a valid OAuth access token gets a 401 with a WWW-Authenticate header pointing at that resource metadata.

Limitations

What does not work yet

  • Browser-based (cross-origin) MCP clients are not supported yet. Use a native client such as Claude Code or Claude Desktop.
  • Generation requires a signed-in VoiceLabs account with an active free trial or subscription. Generation runs on our GPU servers and is metered server-side against your plan; an agent that runs out gets a structured QUOTA_EXCEEDED denial telling it where to fix that, never a raw upstream error.
  • Audio URLs returned by get_generation are short-lived signed links, scoped to that one generation for about 15 minutes. Fetch them promptly; polling again mints a fresh one.

You need an account with an active trial or subscription to generate.