create_meeting_bot
Create a bot to join video meetings and record or transcribe conversations. Automate meeting attendance for documentation purposes using Zoom, Google Meet, or Teams URLs.
Instructions
Create a bot to join a meeting and record/transcribe it
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| meeting_url | Yes | URL of the meeting (Zoom, Google Meet, or Teams) | |
| bot_name | No | Name for the bot (optional, defaults to 'Go Bot') | Go Bot |
Implementation Reference
- src/index.ts:447-468 (handler)The main handler function for the 'create_meeting_bot' tool. It validates input parameters, makes a POST request to the API to create a meeting bot, and returns a formatted response using formatBotCreated.private async createMeetingBot(args: Record<string, unknown>) { const meeting_url = args.meeting_url as string; const bot_name = (args.bot_name as string) || "Claude Bot"; if (!meeting_url || typeof meeting_url !== 'string') { throw new Error("Missing or invalid required parameter: meeting_url"); } const data = await this.makeApiRequest("/api/v1/bots", "POST", { meeting_url, bot_name, }); return { content: [ { type: "text", text: this.formatBotCreated(data), }, ], }; }
- src/index.ts:208-222 (schema)The input schema definition for the 'create_meeting_bot' tool, specifying the expected parameters and validation rules.inputSchema: { type: "object", properties: { meeting_url: { type: "string", description: "URL of the meeting (Zoom, Google Meet, or Teams)", }, bot_name: { type: "string", description: "Name for the bot (optional, defaults to 'Go Bot')", default: "Go Bot", }, }, required: ["meeting_url"], },
- src/index.ts:205-223 (registration)The tool registration in the ListTools response, including name, description, and schema.{ name: "create_meeting_bot", description: "Create a bot to join a meeting and record/transcribe it", inputSchema: { type: "object", properties: { meeting_url: { type: "string", description: "URL of the meeting (Zoom, Google Meet, or Teams)", }, bot_name: { type: "string", description: "Name for the bot (optional, defaults to 'Go Bot')", default: "Go Bot", }, }, required: ["meeting_url"], }, },
- src/index.ts:398-399 (registration)The dispatch case in the CallToolRequest handler that routes to the createMeetingBot function.case "create_meeting_bot": return await this.createMeetingBot(args);
- src/index.ts:129-140 (helper)Helper function used by the handler to format the creation response.private formatBotCreated(data: any): string { return [ "✅ Successfully created meeting bot!", "", `🤖 Bot ID: ${data.id}`, `🔗 Meeting URL: ${data.meeting_url}`, `📊 State: ${data.state}`, `📝 Transcription State: ${data.transcription_state}`, "", `💡 You can check the bot status using bot ID: ${data.id}`, ].join("\n"); }