getMeetingInfo
Retrieve meeting details including transcripts and recordings from Zoom or Google Meet sessions to generate summaries.
Instructions
Get information about a meeting
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | The session ID to get information for |
Implementation Reference
- src/index.ts:123-167 (handler)The handler function for the 'getMeetingInfo' tool. It makes an API request to retrieve session data, processes the transcript into a readable format, and returns structured information including recording link, timestamps, and transcript. Handles errors using handleApiError.async ({ sessionId }: { sessionId: string }) => { try { const response = await fetch( `${CHATTERBOX_API_ENDPOINT}/session/${sessionId}`, { headers: { "Content-Type": "application/json", "Authorization": `Bearer ${CHATTERBOX_API_KEY}` } } ); const data = await response.json(); if(data.message) { return { content: [{ type: "text", text: data.message }], isError: true, _meta: { errorCode: "ERROR", errorMessage: data.message } }; } let transcript = ""; if(data.transcript) { transcript = data.transcript.map((utterance: any) => `${utterance.speaker}: ${utterance.text}` ).join('\n'); } else { transcript = "No transcript data available"; } return { content: [{ type: "text", text: JSON.stringify({ recordingLink: data.recordingLink, startTime: data.startTimestamp, endTime: data.endTimestamp, transcript: transcript }) }] }; } catch (error) { return handleApiError(error, "getMeetingInfo"); } }
- src/index.ts:120-122 (schema)Zod schema defining the input parameters for the 'getMeetingInfo' tool: requires a 'sessionId' string.{ sessionId: z.string().describe("The session ID to get information for"), },
- src/index.ts:117-168 (registration)Registration of the 'getMeetingInfo' tool using McpServer.tool(), specifying name, description, input schema, and inline handler function.server.tool( "getMeetingInfo", "Get information about a meeting", { sessionId: z.string().describe("The session ID to get information for"), }, async ({ sessionId }: { sessionId: string }) => { try { const response = await fetch( `${CHATTERBOX_API_ENDPOINT}/session/${sessionId}`, { headers: { "Content-Type": "application/json", "Authorization": `Bearer ${CHATTERBOX_API_KEY}` } } ); const data = await response.json(); if(data.message) { return { content: [{ type: "text", text: data.message }], isError: true, _meta: { errorCode: "ERROR", errorMessage: data.message } }; } let transcript = ""; if(data.transcript) { transcript = data.transcript.map((utterance: any) => `${utterance.speaker}: ${utterance.text}` ).join('\n'); } else { transcript = "No transcript data available"; } return { content: [{ type: "text", text: JSON.stringify({ recordingLink: data.recordingLink, startTime: data.startTimestamp, endTime: data.endTimestamp, transcript: transcript }) }] }; } catch (error) { return handleApiError(error, "getMeetingInfo"); } } );