joinMeeting
Join Zoom, Google Meet, or Microsoft Teams meetings to capture transcripts and audio recordings for meeting analysis and documentation.
Instructions
Join a Zoom, Google Meet, or Microsoft Teams meeting using the provided meeting ID and password and capture transcript and audio recording
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| platform | Yes | The online conference platform (zoom, googlemeet, or teams) | |
| meetingId | Yes | The ID of the Zoom ('###########') or Google Meet ('xxx-xxx-xxx') or Microsoft Teams ('##########') meeting | |
| meetingPassword | No | The password or the passcode for the Zoom or Google Meet or Microsoft Teams meeting (optional) | |
| botName | Yes | The name of the bot | |
| webhookUrl | No | URL to receive webhook events for meeting status (optional) |
Implementation Reference
- src/index.ts:80-114 (handler)The handler function that implements the joinMeeting tool logic by making a POST request to the Chatterbox API to deploy a meeting bot and capture transcript/audio.async ({ platform, meetingId, meetingPassword, botName, webhookUrl }: { platform: string; meetingId: string; meetingPassword?: string; botName: string; webhookUrl?: string; }) => { try { const response = await fetch( `${CHATTERBOX_API_ENDPOINT}/join`, { method: 'POST', headers: { "Content-Type": "application/json", "Authorization": `Bearer ${CHATTERBOX_API_KEY}` }, body: JSON.stringify({ platform, meetingId, meetingPassword: meetingPassword || '', botName: botName || '', webhookUrl: webhookUrl || '' }) } ); const data = await response.json(); return { content: [{ type: "text", text: `Meeting bot deployed. Session ID: ${data.sessionId}` }] }; } catch (error) { return handleApiError(error, "joinMeeting"); } }
- src/index.ts:73-79 (schema)Zod schema defining the input parameters for the joinMeeting tool.{ platform: z.enum(["zoom", "googlemeet", "teams"]).describe("The online conference platform (zoom, googlemeet, or teams)"), meetingId: z.string().describe("The ID of the Zoom ('###########') or Google Meet ('xxx-xxx-xxx') or Microsoft Teams ('##########') meeting"), meetingPassword: z.string().optional().describe("The password or the passcode for the Zoom or Google Meet or Microsoft Teams meeting (optional)"), botName: z.string().describe("The name of the bot"), webhookUrl: z.string().optional().describe("URL to receive webhook events for meeting status (optional)"), },
- src/index.ts:70-72 (registration)Registration of the joinMeeting tool with MCP server, including name, description, and reference to schema/handler.server.tool( "joinMeeting", "Join a Zoom, Google Meet, or Microsoft Teams meeting using the provided meeting ID and password and capture transcript and audio recording",
- src/index.ts:35-57 (helper)Helper function for handling API errors in tool handlers, specifically invoked in joinMeeting with context 'joinMeeting'.function handleApiError(error: unknown, context: string): ToolResponse { console.error(`Error in ${context}:`, error); if (error instanceof Error) { return { content: [{ type: "text", text: error.message }], isError: true, _meta: { errorCode: "ERROR", errorMessage: error.message } }; } return { content: [{ type: "text", text: "Server error" }], isError: true, _meta: { errorCode: "ERROR", errorMessage: "Server error" } }; }