create_meeting_bot
Join online meetings automatically to record and transcribe conversations. Specify a meeting URL from Zoom, Google Meet, or Microsoft Teams to deploy a bot that captures audio and generates text transcripts.
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:459-480 (handler)The handler function that executes the create_meeting_bot tool. It extracts parameters, validates meeting_url, calls the API to create the bot, and returns a formatted response.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)Input schema for the create_meeting_bot tool defining meeting_url as required string and bot_name as optional string.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)Tool registration in the ListToolsRequestHandler, 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:407-408 (registration)Dispatch registration in the CallToolRequestHandler switch statement that routes calls to the handler.case "create_meeting_bot": return await this.createMeetingBot(args);
- src/index.ts:129-140 (helper)Helper function to format the bot 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"); }