make_bot_speak
Enable a bot to speak specified text during meetings using text-to-speech. Customize voice language and name to enhance communication clarity and adaptability.
Instructions
Make a bot speak text during a meeting using text-to-speech
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| bot_id | Yes | ID of the bot that should speak | |
| text | Yes | Text for the bot to speak | |
| voice_language_code | No | Voice language code (optional, defaults to 'en-US') | en-US |
| voice_name | No | Voice name (optional, defaults to 'en-US-Casual-K') | en-US-Casual-K |
Implementation Reference
- src/index.ts:527-561 (handler)The main handler function that executes the make_bot_speak tool logic. Validates bot_id and text parameters, optionally uses voice_language_code and voice_name, sends POST request to API /api/v1/bots/{bot_id}/speech with TTS settings, returns formatted success message.private async makeBotSpeak(args: Record<string, unknown>) { const bot_id = args.bot_id as string; const text = args.text as string; const voice_language_code = (args.voice_language_code as string) || "en-US"; const voice_name = (args.voice_name as string) || "en-US-Casual-K"; if (!bot_id || typeof bot_id !== 'string') { throw new Error("Missing or invalid required parameter: bot_id"); } if (!text || typeof text !== 'string') { throw new Error("Missing or invalid required parameter: text"); } const speechData = { text, text_to_speech_settings: { google: { voice_language_code, voice_name } } }; await this.makeApiRequest(`/api/v1/bots/${bot_id}/speech`, "POST", speechData); return { content: [ { type: "text", text: `✅ Bot ${bot_id} will speak: "${text}"\n\n🔊 Voice: ${voice_name} (${voice_language_code})\n💡 The bot should now be speaking in the meeting!`, }, ], }; }
- src/index.ts:269-292 (schema)Input schema for make_bot_speak tool defining parameters: bot_id (required string), text (required string), voice_language_code (optional string default 'en-US'), voice_name (optional string default 'en-US-Casual-K').inputSchema: { type: "object", properties: { bot_id: { type: "string", description: "ID of the bot that should speak", }, text: { type: "string", description: "Text for the bot to speak", }, voice_language_code: { type: "string", description: "Voice language code (optional, defaults to 'en-US')", default: "en-US", }, voice_name: { type: "string", description: "Voice name (optional, defaults to 'en-US-Casual-K')", default: "en-US-Casual-K", }, }, required: ["bot_id", "text"], },
- src/index.ts:266-293 (registration)Tool registration entry in the ListTools response array, including name 'make_bot_speak', description, and inputSchema.{ name: "make_bot_speak", description: "Make a bot speak text during a meeting using text-to-speech", inputSchema: { type: "object", properties: { bot_id: { type: "string", description: "ID of the bot that should speak", }, text: { type: "string", description: "Text for the bot to speak", }, voice_language_code: { type: "string", description: "Voice language code (optional, defaults to 'en-US')", default: "en-US", }, voice_name: { type: "string", description: "Voice name (optional, defaults to 'en-US-Casual-K')", default: "en-US-Casual-K", }, }, required: ["bot_id", "text"], }, },
- src/index.ts:410-411 (registration)Dispatch case in CallToolRequest handler switch statement that routes 'make_bot_speak' calls to the makeBotSpeak method.case "make_bot_speak": return await this.makeBotSpeak(args);