list_meeting_bots
Retrieve a list of all active AI meeting bots managed by the Attendee MCP Server to monitor and manage their participation, recording, transcription, and messaging across platforms like Zoom, Google Meet, and Microsoft Teams.
Instructions
List all active meeting bots
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- src/index.ts:520-553 (handler)The handler function that executes the tool: fetches list of bots from API /api/v1/bots, handles response format, formats a numbered list with status icons, and returns formatted text response.private async listMeetingBots() { const data = await this.makeApiRequest("/api/v1/bots"); // Handle both array response and object with bots property const bots = Array.isArray(data) ? data : (data.bots || []); if (bots.length === 0) { return { content: [ { type: "text", text: "📋 No active meeting bots found.", }, ], }; } const botList = bots .map((bot: any, index: number) => { const stateIcon = (bot.state === 'joining' || bot.state === 'joined' || bot.state === 'joined_recording') ? "✅" : "❌"; const transcriptIcon = bot.transcription_state === 'complete' ? "✅" : "⏳"; return `${index + 1}. Bot ID: ${bot.id}\n 📊 State: ${bot.state} ${stateIcon}\n 📝 Transcription: ${bot.transcription_state} ${transcriptIcon}\n 🔗 Meeting: ${bot.meeting_url.substring(0, 50)}...`; }) .join("\n\n"); return { content: [ { type: "text", text: `📋 Active Meeting Bots (${bots.length}):\n\n${botList}`, }, ], }; }
- src/index.ts:252-260 (registration)Tool registration in the ListTools response: defines name, description, and empty input schema (no parameters required).{ name: "list_meeting_bots", description: "List all active meeting bots", inputSchema: { type: "object", properties: {}, required: [], }, },
- src/index.ts:255-259 (schema)Input schema definition: empty object, no required properties.inputSchema: { type: "object", properties: {}, required: [], },
- src/index.ts:416-418 (registration)Dispatcher case in CallToolRequestSchema handler that routes calls to listMeetingBots() method.case "list_meeting_bots": return await this.listMeetingBots();
- src/index.ts:78-111 (helper)Helper method used by listMeetingBots to make the API request to fetch bots list.private async makeApiRequest( endpoint: string, method: string = "GET", body?: any ): Promise<any> { const url = `${API_BASE_URL}${endpoint}`; const headers: Record<string, string> = { "Content-Type": "application/json", }; if (API_KEY) { headers["Authorization"] = `Token ${API_KEY}`; } try { const response = await fetch(url, { method, headers, body: body ? JSON.stringify(body) : undefined, }); if (!response.ok) { const errorText = await response.text(); throw new Error(`API error ${response.status}: ${errorText}`); } return await response.json(); } catch (error) { if (error instanceof Error) { throw new Error(`Network error: ${error.message}`); } throw error; } }