Skip to main content
Glama

make_bot_speak

Generate speech for meeting bots using text-to-speech technology to vocalize text during video calls with customizable voice options.

Instructions

Make a bot speak text during a meeting using text-to-speech

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bot_idYesID of the bot that should speak
textYesText for the bot to speak
voice_language_codeNoVoice language code (optional, defaults to 'en-US')en-US
voice_nameNoVoice name (optional, defaults to 'en-US-Casual-K')en-US-Casual-K

Implementation Reference

  • The main handler function that validates inputs, constructs the speech data, makes the API POST request to /api/v1/bots/{bot_id}/speech, and returns a 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!`,
          },
        ],
      };
    }
  • The input schema defining parameters for the make_bot_speak tool, including required bot_id and text, and optional voice settings.
    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)
    The tool registration entry in the ListTools response, specifying name, description, and input schema.
    {
      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)
    The switch case in the CallToolRequest handler that dispatches calls to the makeBotSpeak handler.
    case "make_bot_speak":
      return await this.makeBotSpeak(args);

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/rexposadas/attendee-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server