get_recording
Retrieve the recording URL for a specific bot using its ID, enabling access to meeting or session recordings managed by the Attendee MCP Server.
Instructions
Get the recording URL for a bot
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| bot_id | Yes | ID of the bot to get recording for |
Implementation Reference
- src/index.ts:608-655 (handler)The handler function for the 'get_recording' tool. It validates the bot_id, fetches the recording data from the API endpoint `/api/v1/bots/${bot_id}/recording`, formats the file size and duration, and returns a formatted text response with the recording URL, size, and duration.private async getRecording(args: Record<string, unknown>) { const bot_id = args.bot_id as string; if (!bot_id || typeof bot_id !== 'string') { throw new Error("Missing or invalid required parameter: bot_id"); } const data = await this.makeApiRequest(`/api/v1/bots/${bot_id}/recording`); const formatFileSize = (bytes?: number) => { if (!bytes) return "Unknown size"; const sizes = ['B', 'KB', 'MB', 'GB']; const i = Math.floor(Math.log(bytes) / Math.log(1024)); return Math.round(bytes / Math.pow(1024, i) * 100) / 100 + ' ' + sizes[i]; }; const formatDuration = (ms?: number) => { if (!ms) return "Unknown duration"; const seconds = Math.floor(ms / 1000); const minutes = Math.floor(seconds / 60); const hours = Math.floor(minutes / 60); if (hours > 0) { return `${hours}h ${minutes % 60}m ${seconds % 60}s`; } else if (minutes > 0) { return `${minutes}m ${seconds % 60}s`; } else { return `${seconds}s`; } }; return { content: [ { type: "text", text: [ `🎥 Recording for bot ${bot_id}:`, "", `📁 URL: ${data.url}`, `📊 Size: ${formatFileSize(data.file_size)}`, `⏱️ Duration: ${formatDuration(data.duration_ms)}`, "", "💡 This is a short-lived URL that expires after a certain time.", ].join("\n"), }, ], }; }
- src/index.ts:329-338 (schema)The input schema definition for the 'get_recording' tool, specifying that it requires a 'bot_id' string parameter.inputSchema: { type: "object", properties: { bot_id: { type: "string", description: "ID of the bot to get recording for", }, }, required: ["bot_id"], },
- src/index.ts:419-420 (registration)The switch case in the CallToolRequest handler that dispatches to the getRecording method when the tool name is 'get_recording'.case "get_recording": return await this.getRecording(args);
- src/index.ts:326-339 (registration)The tool registration object added to the list of tools provided by the MCP server, including name, description, and input schema.{ name: "get_recording", description: "Get the recording URL for a bot", inputSchema: { type: "object", properties: { bot_id: { type: "string", description: "ID of the bot to get recording for", }, }, required: ["bot_id"], }, },