elevenlabs_tts
Convert text to high-quality speech with AI voice synthesis, supporting multiple languages and voices for audio generation.
Instructions
Convert text to speech using ElevenLabs AI voice synthesis. Returns high-quality audio. Supports multiple languages and voices.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to convert to speech (max 5000 chars) | |
| voice_id | No | ElevenLabs voice ID (default: Rachel) | |
| model_id | No | Model: eleven_multilingual_v2 (default), eleven_turbo_v2 | |
| output_format | No | Audio format (default: mp3_44100_128) |
Implementation Reference
- src/index.ts:16-39 (handler)The handler function for all MCP tools, including 'elevenlabs_tts', which routes requests to a gateway service.
server.tool( tool.name, tool.description, tool.inputSchema.shape, async (params) => { const method = tool.method || "POST"; const result = await gatewayRequest(method, tool.endpoint, params as Record<string, unknown>); if (result.error) { return { content: [{ type: "text" as const, text: `Error (${result.status}): ${result.error}` }], isError: true, }; } const text = typeof result.data === "string" ? result.data : JSON.stringify(result.data, null, 2); return { content: [{ type: "text" as const, text }], }; }, ); - src/tools/elevenlabs.ts:8-14 (schema)Input schema definition for the elevenlabs_tts tool.
inputSchema: z.object({ text: z.string().describe("Text to convert to speech (max 5000 chars)"), voice_id: z.string().optional().describe("ElevenLabs voice ID (default: Rachel)"), model_id: z.string().optional().describe("Model: eleven_multilingual_v2 (default), eleven_turbo_v2"), output_format: z.enum(["mp3_44100_128", "mp3_22050_32", "pcm_16000", "pcm_44100"]).optional() .describe("Audio format (default: mp3_44100_128)"), }), - src/tools/elevenlabs.ts:4-16 (registration)Tool definition and registration for 'elevenlabs_tts'.
export const elevenlabsTools: ToolDef[] = [ { name: "elevenlabs_tts", description: "Convert text to speech using ElevenLabs AI voice synthesis. Returns high-quality audio. Supports multiple languages and voices.", inputSchema: z.object({ text: z.string().describe("Text to convert to speech (max 5000 chars)"), voice_id: z.string().optional().describe("ElevenLabs voice ID (default: Rachel)"), model_id: z.string().optional().describe("Model: eleven_multilingual_v2 (default), eleven_turbo_v2"), output_format: z.enum(["mp3_44100_128", "mp3_22050_32", "pcm_16000", "pcm_44100"]).optional() .describe("Audio format (default: mp3_44100_128)"), }), endpoint: "/v1/elevenlabs/tts", },